Installation

System requirements

Software dependency

  • python >= 3.10 (raised in v1.0.9; 3.9 is EOL and the networkx>=3.3 dependency requires >=3.10)

  • numpy >= 1.22.0

  • gffutils >= 0.10.1

  • biopython>=1.76

  • cigar >= 0.1.3

  • parasail>=1.2.4

  • intervaltree>=3.1.0

  • networkx>=3.3

  • interlap>=0.2.6

  • miniprot >= 0.10.0 (external binary — see below)

  • minimap2 >= 2.17 (external binary — see below)

  • pyfaidx>=0.5.8

  • pysam>=0.19.1

  • ujson>=3.2.0

  • duckdb>=1.0,!=1.5.3,!=1.5.4

  • pyarrow>=14

  • mappy (installed by pip; used only by the explicitly enabled native Liftoff path)

These dependencies are resolved automatically when you pip install lifton (a bioconda recipe has been submitted and is under review). On macOS / Apple Silicon, install the compiled dependencies via conda first (see the note below), then pip install lifton. LiftOn declares mappy as a runtime dependency so supported pip installs are ready for the --native plus LIFTON_NATIVE_LIFTOFF_ALIGN=1 path; ordinary runs do not activate that path. The two external binaries miniprot and minimap2 are not on PyPI and must be installed manually and be on your PATH (LiftOn preflight-checks both at startup and exits with a clear message if either is missing). Please see the miniprot installation guide and the minimap2 installation guide on GitHub. (miniprot drives the protein-to-genome alignment; minimap2 drives the Liftoff DNA lift-over.)

Version warning

LiftOn requires Python >= 3.10 (v1.0.9 raised the floor from 3.6 to 3.10; 3.9 is EOL and the networkx>=3.3 dependency requires >=3.10).

DuckDB 1.5.3 and 1.5.4 have an upstream GEOMETRY append bug that can affect large --stream miniprot results. Pip will avoid those releases. In an existing environment, use DuckDB 1.5.2 or set LIFTON_DISABLE_RTREE=1; LiftOn's results are unchanged because region queries fall back to the standard B-tree index.

If your numpy version is >= 1.25.0, then it requires Python version >= 3.9.

Check out the scientific python ecosystem coordination guideline SPEC 0 — Minimum Supported Versions to configure the package version compatibility.

Native dependencies — use conda

Several runtime dependencies ship as compiled extensions (parasail, pysam, pyfaidx, gffutils, duckdb, pyarrow). On macOS / Apple Silicon (ARM), pip install parasail fails to build from source — install via conda (bioconda / conda-forge) instead, which ships pre-built wheels:

$ conda create -n lifton -y python=3.11
$ conda activate lifton
$ conda install -y -c bioconda -c conda-forge \
      parasail-python pysam pyfaidx gffutils intervaltree \
      biopython networkx ujson cigar duckdb pyarrow
$ pip install mappy     # preinstall the declared native-path dependency
$ pip install lifton

mappy is declared in LiftOn's package metadata, but it is used only when --native and LIFTON_NATIVE_LIFTOFF_ALIGN=1 explicitly select the experimental Liftoff alignment path. Otherwise LiftOn keeps the proven subprocess path. If a manually managed environment lacks mappy, the opt-in path falls back gracefully.

The vendored gffbase backend runs pure-Python by default (no pre-built .so ships in the package), so no Rust toolchain is required to install or run LiftOn.


There are three ways that you can install LiftOn:

Install through pip

LiftOn is on PyPi now. Check out all the releases here. Pip automatically resolves and installs any dependencies required by LiftOn.

$ pip install LiftOn

Install through conda

A bioconda recipe for LiftOn has been submitted and is under review. Once it is merged, the command below will install LiftOn together with all of its dependencies:

$ conda install -c bioconda lifton

Install from source

You can also install LiftOn from source. Check out the latest version on GitHub !

$ git clone https://github.com/Kuanhao-Chao/LiftOn

$ python setup.py install

Check LiftOn installation

Run the following command to make sure LiftOn is properly installed:

$ lifton -h

Now, you are ready to go !

Please continue to the Quick Start Guide.