-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
prot2exon ships as a single package containing both a C++ binary (the index and map commands) and a Python wrapper (the fetch / plot commands, the Mapper API, and the DataFrame helpers). pip and bioconda both give you the whole thing.
| Method | Ships the binary | Best for |
|---|---|---|
| pip | ✅ pre-built wheels (Linux + macOS) | Most users. |
| bioconda / pixi | ✅ built by conda | conda/mamba users; pinned scientific stacks. |
| build from source | ✅ you compile it | Development, custom builds, Windows (via WSL). |
pip install prot2exon
# optional extras:
pip install "prot2exon[html]" # plotly interactive HTML
pip install "prot2exon[all]" # html + benchmarks + notebooksThe wheel bundles the compiled binary (as prot2exon/_bin/prot2exon-core), so all four commands work immediately — nothing else to install:
prot2exon --version
prot2exon fetch listPre-built py3-none wheels are published for Linux (manylinux x86_64) and macOS (Intel + Apple Silicon), and work on any Python 3.9+. On platforms without a wheel — notably Windows — pip falls back to the source distribution, which compiles the C++ on install and therefore needs a C++17 toolchain + CMake (the smoothest Windows path is WSL or conda). To point the wrapper at a binary other than the bundled one, set PROT2EXON_BIN:
export PROT2EXON_BIN=/path/to/prot2exon-coreDiscovery order: $PROT2EXON_BIN, then the wheel-bundled _bin/prot2exon-core, then ./build/prot2exon in a source checkout, then prot2exon-core on $PATH.
conda install -c bioconda -c conda-forge prot2exon
# or, faster:
mamba install -c bioconda -c conda-forge prot2exonconda compiles the binary as part of the recipe, so all four commands land on your PATH just like the pip install.
pixi resolves from the same conda channels:
pixi add -c bioconda -c conda-forge prot2exon # in a project
pixi global install -c bioconda -c conda-forge prot2exon # as a global toolRequirements:
- C++17 toolchain (g++ ≥ 9, clang ≥ 10, or MSVC ≥ 2019)
- CMake ≥ 3.16
- OpenMP (optional — enables
--threads; the binary still runs single-threaded without it)
git clone https://github.com/SotoLF/Prot2Exon.git
cd Prot2Exon
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)The binary lands at build/prot2exon. Then install the Python wrapper editable so fetch/plot and the API are available too:
cd ..
pip install -e .The repo's bin/prot2exon wrapper finds build/prot2exon automatically, so you can run the four commands straight from the checkout.
A Dockerfile at the repo root bundles both the binary and the wrapper:
docker build -t prot2exon .
docker run --rm -v "$(pwd):/work" prot2exon \
map --index /work/human.idx --bed /work/queries.bed \
--out-dir /work/out --output allprot2exon --version # C++ binary, prints the index format version
prot2exon plot --help # Python plotter
prot2exon fetch list # pre-built indexes + GTF-build presetsThen run the test suite from a source checkout (dev deps + wrapper + pytest):
pip install -r tests/requirements-dev.txt
pip install -e python/
pytest -q # expects "N passed"Once installed, head to Building an index. Tuning flags for large runs live on Performance and Benchmarking.
1 - How to install
2 - Building an index
(fastCDS index, fastCDS fetch)
3 - Mapping
(fastCDS map)
4 - Plotting
(fastCDS plot)
6 - Performance and benchmarking
7 - Reference