From 208dbf74a4f765ec00537ccd7ce0e99fe3b030b7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Nov 2019 04:02:15 -0600 Subject: gn: Add graphaligner, mummer. * gn/packages/bioinformatics.scm (graphaligner, mummer): New variables. --- gn/packages/bioinformatics.scm | 87 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) (limited to 'gn/packages/bioinformatics.scm') 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))) -- cgit v1.2.3