tcztzy / relatepy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Relate Python

Motivation

MyersGroup's Relate is written in C++. Frankly, I am not good at C++. So, I decide to write a wrapper over this project. Maybe I will refactor them all in Python/Cython is the performance loss is acceptable. Maybe I will integrate output file handling (e.g. plotting) in this project.

Install

$ pip install relatepy  # or
$ pip install git+https://github.com/tcztzy/relatepy

Build from source

Build requirements:

  1. C++ compiler support C++17
  2. Python interpreter and <Python.h> headers
  3. zlib
  4. Any build tools support PEP 517, such as build.

CMake is not required since we have Python's build tool chain.

$ git clone https://github.com/tcztzy/relatepy
$ cd relatepy
$ git submodule init
$ # C++20 had a <version> header, so you should remove the version file in gzstream directory
$ rm relate/include/src/gzstream/version
$ pip install build  # Any tools support PEP 517 would work
$ pip -m build

Environments

Set RELATEPY_RESOURCE_USAGE to enable the resource usage report (also need --verbosity=DEBUG).

Roadmap

  • Refactoring
    • Chunk data
      • Manually
      • AnnData/Dask chunk
    • Paint
      • Logically equivalence
      • Simplified
      • Speed up
    • Build topology
    • Find equivalent branches
    • Get branch length
    • Combine sections
    • Finalize
  • Visualizing scripting
    • Final results plotting
      • Effective population size
    • Intermediate process plotting
      • Painting

About


Languages

Language:Python 89.3%Language:Cython 4.5%Language:C++ 4.5%Language:Rust 1.6%