Practical orientation

Installation and usage

nevelib is a standard Python package. Some modules wrap external bioinformatics tools that must be on PATH.

Python

Package metadata currently declares Python 3.11 or newer.

Interfaces

Each module is exposed through a CLI command and importable Python functions.

Status

The library is currently marked alpha in package classifiers. Public wording on this site follows that status.

Installation

Install from source and choose only the extras you need

The commands below assume a checkout of the nevelib repository. Optional extras are exposed directly in package metadata.

Core install
git clone https://github.com/davide-colombo/nevelib.git
cd nevelib
pip install -e .
Optional extras
pip install -e ".[all]"
pip install -e ".[dev]"

Execution

Run a module with a YAML config

The current module CLIs take a single configuration file. Start from the installed sample configs and adapt them to the task you are running.

CLI examples
nevelib-reads path/to/config.yaml
nevelib-assembly path/to/config.yaml
nevelib-search path/to/config.yaml
nevelib-clustering path/to/config.yaml
nevelib-msa path/to/config.yaml
nevelib-mapping path/to/config.yaml
Sample config files
cp $(python3 -c "import nevelib.reads; print(nevelib.reads.__path__[0])")/config.sample.yaml my-reads-config.yaml
cp $(python3 -c "import nevelib.search; print(nevelib.search.__path__[0])")/config.sample.yaml my-search-config.yaml

Python usage

The same package can be imported directly

Downstream applications do not need to shell out to the CLI layer if direct Python composition is a better fit.

Import examples
from nevelib.search.blast import run_blastn
from nevelib.clustering.mmseqs import run_mmseqs_linclust
from nevelib.msa.mafft import run_mafft

External tools

Tool requirements vary by module

Several capabilities are wrappers around standard bioinformatics tools. A complete environment therefore depends on the module combination you actually intend to run.

ModuleTools on PATH
readssamtools, fastp, fastqc, pigz
assemblybbnorm.sh (BBTools), spades.py, mosdepth, blastn, samtools, pigz
searchblastn, blastx, makeblastdb
clusteringmmseqs
msamafft
mappingminimap2

Practical notes

Notes

nevelib is evolving research software, not a hardened platform.

Alpha-stage package

Marked as alpha in package classifiers. APIs may change between minor versions.

Module-specific environments

You may not need the full external toolchain if you are using only one or two capability families.

Downstream applications may pin versions

Projects such as nexteve-app can depend on nevelib while still adding their own environment constraints and workflow assumptions.