about summary refs log tree commit diff
path: root/gn/packages/bioinformatics.scm
diff options
context:
space:
mode:
authorEfraim Flashner2019-11-24 04:02:15 -0600
committerEfraim Flashner2019-11-24 04:02:15 -0600
commit208dbf74a4f765ec00537ccd7ce0e99fe3b030b7 (patch)
tree03a7d93547396e7a0148c1ee1005549ae78ef0f2 /gn/packages/bioinformatics.scm
parent1b8c84a6c3eeb6de9cee988d919fdfb40284daff (diff)
downloadguix-bioinformatics-208dbf74a4f765ec00537ccd7ce0e99fe3b030b7.tar.gz
gn: Add graphaligner, mummer.
* gn/packages/bioinformatics.scm (graphaligner, mummer): New variables.
Diffstat (limited to 'gn/packages/bioinformatics.scm')
-rw-r--r--gn/packages/bioinformatics.scm87
1 files changed, 87 insertions, 0 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index d8f4803..5660470 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -15,6 +15,7 @@
   #:use-module (guix build-system waf)
   #:use-module (gnu packages)
   #:use-module (gnu packages bioinformatics)
+  #:use-module (gn packages boost)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
@@ -23,9 +24,12 @@
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages imagemagick)
+  #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
@@ -1062,3 +1066,86 @@ dictionaries to record a queryable version of the graph.")
       (synopsis "")
       (description "")
       (license license:lgpl2.0+)))) ; README just says "lpgl".
+
+;; TODO: Unbundle BBHash, concurrentqueue, parallel-hashmap zstr
+(define-public graphaligner
+  (package
+   (name "graphaligner")
+   (version "1.0.10")
+   (source (origin
+     (method url-fetch)
+     (uri (string-append "https://github.com/maickrau/GraphAligner/files/"
+                         "3879798/GraphAligner.tar.gz"))
+     (file-name (string-append name "-" version ".tar.gz"))
+     (sha256
+      (base32 "0sk0cfjw44wslmlgplzwcqi0w4862vhf75p4x6syalvyi34pw3ck"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f ; no tests
+      #:make-flags '("all")
+      #:phases
+      (modify-phases %standard-phases
+        (add-after 'unpack 'patch-source
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((sdsl (assoc-ref inputs "sdsl-lite")))
+              (substitute* "makefile"
+                (("VERSION .*") (string-append "VERSION = " ,version "\n"))
+                (("`pkg-config --libs libdivsufsort`")
+                 (string-append sdsl "/lib/libdivsufsort.a"))
+                (("`pkg-config --libs libdivsufsort64`")
+                 (string-append sdsl "/lib/libdivsufsort64.a"))))
+            #t))
+        (delete 'configure) ; no configure phase
+        (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (for-each
+                (lambda (program)
+                  (install-file program (string-append out "/bin")))
+                (find-files "bin" "."))
+              (for-each
+                (lambda (header)
+                  (install-file header (string-append out "/include")))
+                (find-files "src" "\\.h(pp)?$")))
+            #t)))))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)
+      ("protobuf" ,protobuf "static")
+      ("sdsl-lite" ,sdsl-lite-gn)
+      ("sparsehash" ,sparsehash)
+      ("zlib" ,zlib "static")))
+   (inputs
+    `(("boost" ,boost-static)
+      ("jemalloc" ,jemalloc)
+      ("mummer" ,mummer)
+      ("protobuf" ,protobuf)
+      ("zlib" ,zlib)))
+   (home-page "https://github.com/maickrau/GraphAligner")
+   (synopsis "Seed-and-extend program for aligning  genome graphs")
+   (description "Seed-and-extend program for aligning long error-prone reads to
+genome graphs.  For a description of the bitvector alignment extension
+algorithm, see
+@url{https://academic.oup.com/bioinformatics/advance-article/doi/10.1093/bioinformatics/btz162/5372677
+here}.")
+   (license license:expat)))
+
+(define-public mummer
+  (package
+    (name "mummer")
+    (version "4.0.0beta2")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/mummer4/mummer/releases/"
+                            "download/v" version "/mummer-" version ".tar.gz"))
+        (sha256
+         (base32
+          "14qvrmf0gkl4alnh8zgxlzmvwc027arfawl96i7jk75z33j7dknf"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gnuplot" ,gnuplot)
+       ("perl" ,perl)))
+    (home-page "http://mummer.sourceforge.net/")
+    (synopsis "Efficient sequence alignment of full genomes")
+    (description "MUMmer is a versatil alignment tool for DNA and protein sequences.")
+    (license license:artistic2.0)))