about summary refs log tree commit diff
path: root/gn
diff options
context:
space:
mode:
Diffstat (limited to 'gn')
-rw-r--r--gn/packages/bioinformatics.scm58
1 files changed, 58 insertions, 0 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 3734a79..a404c7b 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -4973,3 +4973,61 @@ today's most advanced CPUs.")
    (description "This package provides Python bindings for the
 parasail C library.")
    (license license:bsd-2)))
+
+(define-public liftoff
+  (package
+    (name "liftoff")
+    (version "1.6.3")
+    (source
+     ;; The PyPI tarball is missing the tests.
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/agshumate/Liftoff")
+              (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18840vdv75nsq0fw5hzvrp7l0k6ciamlzkhgxxhnjh23ghih71dx"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'relax-version-requirements
+                 (lambda _
+                   (substitute* "setup.py"
+                     (("==") ">=")))))))
+    (inputs
+     (list python-biopython
+           python-gffutils
+           python-interlap
+           python-networkx
+           python-numpy
+           python-parasail
+           python-pyfaidx
+           python-pysam
+           python-ujson))
+    (native-inputs
+     (list minimap2
+           python-pytest
+           python-setuptools
+           python-wheel))
+    (home-page "https://github.com/ashumate/Liftoff")
+    (synopsis "GFF3/GTF lift over pipeline")
+    (description "Liftoff is a tool that accurately maps annotations
+in GFF or GTF between assemblies of the same, or closely-related
+species.  Unlike current coordinate lift-over tools which require a
+pre-generated “chain” file as input, Liftoff is a standalone tool that
+takes two genome assemblies and a reference annotation as input and
+outputs an annotation of the target genome.  Liftoff uses minimap2 to
+align the gene sequences from a reference genome to the target genome.
+Rather than aligning whole genomes, aligning only the gene sequences
+allows genes to be lifted over even if there are many structural
+differences between the two genomes.  For each gene, Liftoff finds the
+alignments of the exons that maximize sequence identity while
+preserving the transcript and gene structure.  If two genes incorrectly
+map to overlapping loci, Liftoff determines which gene is most-likely
+mis-mapped, and attempts to re-map it.  Liftoff can also find
+additional gene copies present in the target assembly that are not
+annotated in the reference.")
+    (license license:gpl3+)))