diff options
-rw-r--r-- | gn/packages/bioinformatics.scm | 480 |
1 files changed, 0 insertions, 480 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index 040373c..00eab03 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -222,486 +222,6 @@ data. For whole genome sequencing data analysis, the program can also use mappability data (files created by GEM). ") (license license:gpl2+))) -(define-public tabixpp - (package - (name "tabixpp") - (version "1.0.0") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/tabixpp/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn")))) - (build-system gnu-build-system) - (inputs - `(("htslib" ,htslib) - ("zlib" ,zlib))) - (arguments - `(#:tests? #f ; There are no tests to run. - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - ;; The build phase needs overriding the location of htslib. - (replace 'build - (lambda* (#:key inputs #:allow-other-keys) - (let ((htslib-ref (assoc-ref inputs "htslib"))) - (zero? - (system* "make" - (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a") - "HTS_HEADERS=" ; No need to check for headers here. - (string-append "LIBPATH=-L. -L" htslib-ref "/include")))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "tabix++" bin))))))) - (home-page "https://github.com/ekg/tabixpp") - (synopsis "C++ wrapper around tabix project") - (description "This is a C++ wrapper around the Tabix project which abstracts -some of the details of opening and jumping in tabix-indexed files.") - (license license:expat))) - -;; This version works with FreeBayes while the released version doesn't. The -;; released creates a variable with the name "vcf" somewhere, which is also the -;; name of a namespace in vcflib. -(define-public tabixpp-freebayes - (let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7")) - (package (inherit tabixpp) - (name "tabixpp-freebayes") - (version (string-append "0-1." (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/tabixpp/archive/" - commit ".tar.gz")) - (file-name (string-append name "-" version "-checkout.tar.gz")) - (sha256 - (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77"))))))) - -(define-public smithwaterman - ;; TODO: Upgrading smithwaterman breaks FreeBayes. - (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1")) - (package - (name "smithwaterman") - (version (string-append "0-1." (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/smithwaterman/archive/" - commit ".tar.gz")) - (file-name (string-append name "-" version "-checkout.tar.gz")) - (sha256 - (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; There are no tests to run. - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "smithwaterman" bin))))))) - (home-page "https://github.com/ekg/smithwaterman") - (synopsis "Implementation of the Smith-Waterman algorithm") - (description "Implementation of the Smith-Waterman algorithm.") - ;; The project contains a license file for the GPLv2. The source files - ;; do not contain a license notice, so GPLv2-only is assumed here. - (license license:gpl2)))) - -(define-public multichoose - (package - (name "multichoose") - (version "1.0.3") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/multichoose/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l")))) - (build-system gnu-build-system) - (native-inputs - `(("python" ,python-2) - ("node" ,node))) - (arguments - `(#:tests? #f ; There are no tests to run. - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - ;; TODO: There are Python modules for these programs too. - (install-file "multichoose" bin) - (install-file "multipermute" bin))))))) - (home-page "https://github.com/ekg/multichoose") - (synopsis "Library for efficient loopless multiset combination generation -algorithm") - (description "A library implements an efficient loopless multiset -combination generation algorithm which is (approximately) described in -\"Loopless algorithms for generating permutations, combinations, and other -combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM), -1973. (Algorithm 7.)") - (license license:expat))) - -(define-public fsom - (let ((commit "a6ef318fbd347c53189384aef7f670c0e6ce89a3")) - (package - (name "fsom") - (version (string-append "0-1." (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/fsom/archive/" - "a6ef318fbd347c53189384aef7f670c0e6ce89a3" ".tar.gz")) - (file-name (string-append name "-" version "-checkout.tar.gz")) - (sha256 - (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; There are no tests to run. - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "fsom" bin))))))) - (home-page "https://github.com/ekg/fsom") - (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks") - (description "Program for managing SOM (Self-Organizing Maps) neural networks.") - (license license:gpl3)))) - -(define-public filevercmp - (let ((commit "1a9b779b93d0b244040274794d402106907b71b7")) - (package - (name "filevercmp") - (version (string-append "0-1." (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/filevercmp/archive/" - commit ".tar.gz")) - (file-name "filevercmp-src.tar.gz") - (sha256 - (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; There are no tests to run. - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "filevercmp" bin))))))) - (home-page "https://github.com/ekg/filevercmp") - (synopsis "Program to compare version strings") - (description "A program to compare version strings. It intends to be a -replacement for strverscmp.") - (license license:gpl3+)))) - -(define-public fastahack ; guix ready - (let ((commit "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd")) - (package - (name "fastahack") - (version (string-append "0-1." (string-take commit 7))) - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/ekg/fastahack/archive/" - commit ".tar.gz")) - (file-name (string-append name "-" version "-checkout.tar.gz")) - (sha256 - (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; There are no tests to run. - #:phases - (modify-phases %standard-phases - (delete 'configure) ; There is no configure phase. - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "fastahack" bin))))))) - (home-page "https://github.com/ekg/fastahack") - (synopsis "Program for indexing and sequence extraction from FASTA files") - (description "Fastahack is a small application for indexing and extracting -sequences and subsequences from FASTA files. The included Fasta.cpp library -provides a FASTA reader and indexer that can be embeddedinto applications which -would benefit from directly reading subsequences from FASTA files. The library -automatically handles index file generation and use.") - ;; There is no specific license for fastahack. - ;; A part of the program is licensed GPLv2. - (license (list license:non-copyleft license:gpl2))))) - -(define-public vcflib - (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")) - (package - (name "vcflib") - (version (string-append "1.0.2-1." (string-take commit 7))) - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/vcflib/vcflib/archive/" - "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92" ".tar.gz")) - (file-name "vcflib-5ac0913.tar.gz") - (sha256 - (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8")))) - (build-system gnu-build-system) - (native-inputs - `(("htslib" ,htslib) - ("zlib" ,zlib) - ("python" ,python-2) - ("perl" ,perl) - ("r" ,r) - ("node" ,node) - ("tabixpp-src" ,(package-source tabixpp-freebayes)) - ("smithwaterman-src" ,(package-source smithwaterman)) - ("multichoose-src" ,(package-source multichoose)) - ("fsom-src" ,(package-source fsom)) - ("filevercmp-src" ,(package-source filevercmp)) - ("fastahack-src" ,(package-source fastahack)) - ("intervaltree-src" - ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ekg/intervaltree/archive/" - "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz")) - (file-name "intervaltree-src.tar.gz") - (sha256 - (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks")))))) - (arguments - `(#:tests? #f - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'check) - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (source target) - (with-directory-excursion target - (zero? (system* "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1")))))) - (and - (unpack "intervaltree-src" "intervaltree") - (unpack "fastahack-src" "fastahack") - (unpack "filevercmp-src" "filevercmp") - (unpack "fsom-src" "fsom") - (unpack "multichoose-src" "multichoose") - (unpack "smithwaterman-src" "smithwaterman") - (unpack "tabixpp-src" "tabixpp"))))) - (add-after 'unpack-submodule-sources 'fix-makefile - (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("Makefile") - (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0")))) - (replace - 'build - (lambda* (#:key inputs make-flags #:allow-other-keys) - (with-directory-excursion "tabixpp" - (zero? (system* "make"))) - (zero? (system* "make" "CC=gcc" - (string-append "CFLAGS=\"" "-Itabixpp " - "-I" (assoc-ref inputs "htslib") "/include " "\"") "all")))) - (replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin")) - ;;(include (string-append (assoc-ref outputs "out") "/include")) - (lib (string-append (assoc-ref outputs "out") "/lib"))) - (for-each (lambda (file) - (install-file file bin)) - (find-files "bin" ".*")) - ;; The header files do not correspond to libvcflib.a, therefore - ;; I left them out. - ;;(for-each (lambda (file) - ;; (install-file file include)) - ;; (find-files "src" "\\.h$")) - (install-file "libvcflib.a" lib))))))) - (home-page "https://github.com/vcflib/vcflib/") - (synopsis "Library for parsing and manipulating VCF files") - (description "Vcflib provides methods to manipulate and interpret -sequence variation as it can be described by VCF. It is both an API for parsing -and operating on records of genomic variation as it can be described by the VCF -format, and a collection of command-line utilities for executing complex -manipulations on VCF files.") - (license license:expat)))) - -(define-public bash-tap ; guix license issue - (package - (name "bash-tap") - (version "1.0.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/illusori/bash-tap/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0qs1qi38bl3ns4mpagcawv618dsk2q1lgrbddgvs0wl3ia12cyz5")))) - (build-system trivial-build-system) - (native-inputs `(("source" ,source) - ("tar" ,tar) - ("gzip" ,gzip))) - (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let ((tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) - (path (string-append (assoc-ref %build-inputs "gzip") "/bin")) - (bin (string-append %output "/bin")) - (source (string-append (assoc-ref %build-inputs "source")))) - (setenv "PATH" path) - (mkdir-p bin) - (with-directory-excursion bin - (zero? (system* tar "xvf" source - "--strip-components=1" - "--no-anchored" - "bash-tap" - "bash-tap-bootstrap" - "bash-tap-mock"))))))) - (home-page "http://www.illusori.co.uk/projects/bash-tap/") - (synopsis "Bash port of a Test::More/Test::Builder-style TAP-compliant -test library") - (description "Bash TAP is a TAP-compliant Test::More-style testing library -for Bash shell scripts and functions. Along with the Test::More-style testing -helpers it provides helper functions for mocking commands and functions and -in-process output capturing.") - ;; The author didn't specify a license. - (license license:public-domain))) - -(define-public freebayes ; guix dependent package issues - (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb") - (revision "1")) - (package - (name "freebayes") - (version (string-append "1.0.2-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ekg/freebayes.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2")))) - (build-system gnu-build-system) - (inputs - `(("zlib" ,zlib) - ("htslib" ,htslib))) - (native-inputs - `(("bc" ,bc) ; Needed for running tests. - ("samtools" ,samtools) ; Needed for running tests. - ("parallel" ,parallel) ; Needed for running tests. - ("procps" ,procps) ; Needed for running tests. - ("bamtools" ,bamtools) - ("cmake" ,cmake) - ("python" ,python-2) - ("node" ,node) - ("r" ,r) - ("perl" ,perl) - ("bamtools-src" ,(package-source bamtools)) - ("vcflib-src" ,(package-source vcflib)) - ;; These are submodules for the vcflib version used in freebayes - ("tabixpp-src" ,(package-source tabixpp-freebayes)) - ("smithwaterman-src" ,(package-source smithwaterman)) - ("multichoose-src" ,(package-source multichoose)) - ("fsom-src" ,(package-source fsom)) - ("filevercmp-src" ,(package-source filevercmp)) - ("fastahack-src" ,(package-source fastahack)) - ("intervaltree-src" - ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/ekg/intervaltree/archive/" - "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz")) - (file-name "intervaltree-src.tar.gz") - (sha256 - (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks")))) - ;; These submodules are needed to run the tests. - ("bash-tap-src" ,(package-source bash-tap)) - ;; ,(origin - ;; (method url-fetch) - ;; (uri (string-append "https://github.com/illusori/bash-tap/archive/" - ;; "c38fbfa401600cc81ccda66bfc0da3ea56288d03" ".tar.gz")) - ;; (file-name "bash-tap-src.tar.gz") - ;; (sha256 - ;; (base32 "07ijb1p0aa65ajpg9nkghc183iha6lwiydkckay8pghapa01j6nz")))) - ("test-simple-bash-src" - ,(origin - (method url-fetch) - (uri (string-append "https://github.com/ingydotnet/test-simple-bash/archive/" - "124673ff204b01c8e96b7fc9f9b32ee35d898acc" ".tar.gz")) - (file-name "test-simple-bash-src.tar.gz") - (sha256 - (base32 "016xf3wbgqbav9dncvfdx5k0f10z5xwq8jdszajzmcvnhz5wis14")))))) - (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'unpack-submodule-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((unpack (lambda (source target) - (with-directory-excursion target - (zero? (system* "tar" "xvf" - (assoc-ref inputs source) - "--strip-components=1")))))) - (and - (unpack "bamtools-src" "bamtools") - (unpack "vcflib-src" "vcflib") - ;;(unpack "intervaltree-src" "intervaltree") - (unpack "fastahack-src" "vcflib/fastahack") - (unpack "filevercmp-src" "vcflib/filevercmp") - (unpack "fsom-src" "vcflib/fsom") - (unpack "intervaltree-src" "vcflib/intervaltree") - (unpack "multichoose-src" "vcflib/multichoose") - (unpack "smithwaterman-src" "vcflib/smithwaterman") - (unpack "tabixpp-src" "vcflib/tabixpp") - (unpack "test-simple-bash-src" "test/test-simple-bash") - (unpack "bash-tap-src" "test/bash-tap"))))) - (add-after 'unpack-submodule-sources 'fix-makefile - (lambda* (#:key inputs #:allow-other-keys) - ;; We don't have the .git folder to get the version tag from. - ;; For this checkout of the code, it's v1.0.0. - (substitute* '("vcflib/Makefile") - (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0")))) - (replace 'build - (lambda* (#:key inputs make-flags #:allow-other-keys) - (and - ;; Compile Bamtools before compiling the main project. - (with-directory-excursion "bamtools" - (system* "mkdir" "build") - (with-directory-excursion "build" - (and (zero? (system* "cmake" "../")) - (zero? (system* "make"))))) - ;; Compile vcflib before we compiling the main project. - (with-directory-excursion "vcflib" - (with-directory-excursion "tabixpp" - (let ((htslib-ref (assoc-ref inputs "htslib"))) - (zero? - (system* "make" "HTS_HEADERS=" - (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a") - (string-append "LIBPATH=-L. -L" htslib-ref "/include"))))) - (zero? (system* "make" "CC=gcc" - (string-append "CFLAGS=\"" "-Itabixpp " - "-I" (assoc-ref inputs "htslib") "/include " "\"") "all"))) - (with-directory-excursion "src" - (zero? (system* "make")))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (install-file "bin/freebayes" bin) - (install-file "bin/bamleftalign" bin)))) - ;; There are three tests that fail. All because of the -P - ;; (--perl-regexp) option in grep, which is not compiled into the - ;; version of grep in Guix. - (replace 'check - (lambda* (#:key inputs #:allow-other-keys) - (system* "make" "test")))))) - (home-page "https://github.com/ekg/freebayes") - (synopsis "Haplotype-based variant detector") - (description "FreeBayes is a Bayesian genetic variant detector designed to -find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms), -indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and -complex events (composite insertion and substitution events) smaller than the -length of a short-read sequencing alignment.") - (license license:expat)))) - (define-public plink2 (package (name "plink2") |