diff options
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r-- | gnu/packages/bioinformatics.scm | 178 |
1 files changed, 97 insertions, 81 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9986a4a563..6caeec80f7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -373,7 +373,7 @@ single executable called @code{bam}.") (define-public bcftools (package (name "bcftools") - (version "1.12") + (version "1.14") (source (origin (method url-fetch) (uri (string-append "https://github.com/samtools/bcftools/" @@ -381,12 +381,11 @@ single executable called @code{bam}.") version "/bcftools-" version ".tar.bz2")) (sha256 (base32 - "1x94l1hy2pi3lbz0sxlbw0g6q5z5apcrhrlcwda94ns9n4r6a3ks")) + "1jqrma16fx8kpvb3c0462dg0asvmiv5yi8myqmc5ddgwi6p8ivxp")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled htslib. - (delete-file-recursively "htslib-1.12") - #t)))) + (delete-file-recursively "htslib-1.14"))))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -397,8 +396,7 @@ single executable called @code{bam}.") (add-before 'check 'patch-tests (lambda _ (substitute* "test/test.pl" - (("/bin/bash") (which "bash"))) - #t))))) + (("/bin/bash") (which "bash")))))))) (native-inputs (list htslib perl)) (inputs @@ -412,9 +410,25 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") ;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1. (license (list license:gpl3+ license:expat)))) +(define-public bcftools-1.12 + (package/inherit bcftools + (version "1.12") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/samtools/bcftools/" + "releases/download/" + version "/bcftools-" version ".tar.bz2")) + (sha256 + (base32 + "1x94l1hy2pi3lbz0sxlbw0g6q5z5apcrhrlcwda94ns9n4r6a3ks")) + (modules '((guix build utils))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.12"))))) + (native-inputs (list htslib-1.12 perl)))) + (define-public bcftools-1.10 - (package (inherit bcftools) - (name "bcftools") + (package/inherit bcftools (version "1.10") (source (origin (method url-fetch) @@ -427,11 +441,8 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") (modules '((guix build utils))) (snippet '(begin ;; Delete bundled htslib. - (delete-file-recursively "htslib-1.10") - #t)))) - (build-system gnu-build-system) - (native-inputs - (list htslib-1.10 perl)))) + (delete-file-recursively "htslib-1.10"))))) + (native-inputs (list htslib-1.10 perl)))) (define-public bedops (package @@ -1064,13 +1075,7 @@ Python.") (("^(.+)def test_from_hdf5_issue_731" m indent) (string-append indent "@npt.dec.skipif(True, msg='Guix')\n" - m))))) - - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each (lambda (file) (chmod file #o644)) - (find-files out "\\.gz")))))))) + m)))))))) (propagated-inputs (list python-anndata python-numpy @@ -2316,7 +2321,7 @@ has several key features: (define-public python-pysam (package (name "python-pysam") - (version "0.16.0.1") + (version "0.18.0") (source (origin (method git-fetch) ;; Test data is missing on PyPi. @@ -2326,11 +2331,10 @@ has several key features: (file-name (git-file-name name version)) (sha256 (base32 - "168bwwm8c2k22m7paip8q0yajyl7xdxgnik0bgjl7rhqg0majz0f")) + "042ca27r6634xg2ixgvq1079cp714wmm6ml7bwc1snn0wxxzywfg")) (modules '((guix build utils))) (snippet '(begin - ;; Drop bundled htslib. TODO: Also remove samtools - ;; and bcftools. + ;; FIXME: Unbundle samtools and bcftools. (delete-file-recursively "htslib"))))) (build-system python-build-system) (arguments @@ -2347,35 +2351,24 @@ has several key features: (setenv "CFLAGS" "-D_CURSES_LIB=1"))) (replace 'check (lambda* (#:key tests? #:allow-other-keys) - ;; FIXME: These tests fail with "AttributeError: 'array.array' - ;; object has no attribute 'tostring'". - (delete-file "tests/AlignmentFile_test.py") (when tests? ;; Step out of source dir so python does not import from CWD. (with-directory-excursion "tests" (setenv "HOME" "/tmp") (invoke "make" "-C" "pysam_data") (invoke "make" "-C" "cbcf_data") - (invoke "pytest" "-k" - (string-append - ;; requires network access. - "not FileHTTP" - ;; bug in test suite with samtools update - ;; https://github.com/pysam-developers/pysam/issues/961 - " and not TestHeaderBAM" - " and not TestHeaderCRAM" - " and not test_text_processing"))))))))) + ;; The FileHTTP test requires network access. + (invoke "pytest" "-k" "not FileHTTP")))))))) (propagated-inputs - (list htslib-1.10)) ; Included from installed header files. + (list htslib)) ; Included from installed header files. (inputs (list ncurses curl zlib)) (native-inputs (list python-cython python-pytest ;; Dependencies below are are for tests only. - samtools-1.10 - bcftools-1.10 - python-nose)) + samtools + bcftools)) (home-page "https://github.com/pysam-developers/pysam") (synopsis "Python bindings to the SAMtools C API") (description @@ -2584,13 +2577,6 @@ databases.") `(#:tests? #false #:phases (modify-phases %standard-phases - (add-before 'reset-gzip-timestamps 'make-files-writable - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure .gz files are writable so that the - ;; 'reset-gzip-timestamps' phase can do its work. - (let ((out (assoc-ref outputs "out"))) - (for-each make-file-writable - (find-files out "\\.gz$"))))) (add-after 'unpack 'use-python3-for-cython (lambda _ (substitute* "setup.py" @@ -4786,7 +4772,7 @@ performance.") (define-public htslib (package (name "htslib") - (version "1.12") + (version "1.14") (source (origin (method url-fetch) (uri (string-append @@ -4794,7 +4780,7 @@ performance.") version "/htslib-" version ".tar.bz2")) (sha256 (base32 - "1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012")))) + "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))) (build-system gnu-build-system) ;; Let htslib translate "gs://" and "s3://" to regular https links with ;; "--enable-gcs" and "--enable-s3". For these options to work, we also @@ -4820,9 +4806,20 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and ;; the rest is released under the Expat license (license (list license:expat license:bsd-3)))) +(define-public htslib-1.12 + (package/inherit htslib + (version "1.12") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/samtools/htslib/releases/download/" + version "/htslib-" version ".tar.bz2")) + (sha256 + (base32 + "1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012")))))) + (define-public htslib-1.10 - (package (inherit htslib) - (name "htslib") + (package/inherit htslib (version "1.10") (source (origin (method url-fetch) @@ -4834,8 +4831,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and "0wm9ay7qgypj3mwx9zl1mrpnr36298b1aj5vx69l4k7bzbclvr3s")))))) (define-public htslib-1.9 - (package (inherit htslib) - (name "htslib") + (package/inherit htslib (version "1.9") (source (origin (method url-fetch) @@ -4848,8 +4844,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and ;; This package should be removed once no packages rely upon it. (define htslib-1.3 - (package - (inherit htslib) + (package/inherit htslib (version "1.3.1") (source (origin (method url-fetch) @@ -4861,8 +4856,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and "1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9")))))) (define htslib-for-samtools-1.2 - (package - (inherit htslib) + (package/inherit htslib (version "1.2.1") (source (origin (method url-fetch) @@ -6148,7 +6142,7 @@ to the user's query of interest.") (define-public samtools (package (name "samtools") - (version "1.12") + (version "1.14") (source (origin (method url-fetch) @@ -6157,40 +6151,21 @@ to the user's query of interest.") version "/samtools-" version ".tar.bz2")) (sha256 (base32 - "1jrdj2idpma5ja9cg0rr73b565vdbr9wyy6zig54bidicc2pg8vd")) + "0x3xdda78ac5vx66b3jdsv9sfhyz4npl4znl1zbaf3lbm6xdlhck")) (modules '((guix build utils))) (snippet '(begin ;; Delete bundled htslib. - (delete-file-recursively "htslib-1.12") - #t)))) + (delete-file-recursively "htslib-1.14"))))) (build-system gnu-build-system) (arguments - `(#:modules ((ice-9 ftw) - (ice-9 regex) - (guix build gnu-build-system) - (guix build utils)) - #:configure-flags (list "--with-ncurses") + `(#:configure-flags (list "--with-ncurses") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-tests (lambda _ (substitute* "test/test.pl" ;; The test script calls out to /bin/bash - (("/bin/bash") (which "bash"))) - #t)) - (add-after 'install 'install-library - (lambda* (#:key outputs #:allow-other-keys) - (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) - (install-file "libbam.a" lib) - #t))) - (add-after 'install 'install-headers - (lambda* (#:key outputs #:allow-other-keys) - (let ((include (string-append (assoc-ref outputs "out") - "/include/samtools/"))) - (for-each (lambda (file) - (install-file file include)) - (scandir "." (lambda (name) (string-match "\\.h$" name)))) - #t)))))) + (("/bin/bash") (which "bash")))))))) (native-inputs (list pkg-config)) (inputs (list htslib ncurses perl python zlib)) @@ -6203,6 +6178,47 @@ variant calling (in conjunction with bcftools), and a simple alignment viewer.") (license license:expat))) +(define-public samtools-1.12 + (package/inherit samtools + (version "1.12") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/samtools/samtools/" + version "/samtools-" version ".tar.bz2")) + (sha256 + (base32 + "1jrdj2idpma5ja9cg0rr73b565vdbr9wyy6zig54bidicc2pg8vd")) + (modules '((guix build utils))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.12"))))) + (arguments + (substitute-keyword-arguments (package-arguments samtools) + ((#:modules _ #f) + '((ice-9 ftw) + (ice-9 regex) + (guix build gnu-build-system) + (guix build utils))) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'install 'install-library + (lambda* (#:key outputs #:allow-other-keys) + (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) + (install-file "libbam.a" lib)))) + (add-after 'install 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (let ((include (string-append (assoc-ref outputs "out") + "/include/samtools/"))) + (for-each (lambda (file) + (install-file file include)) + (scandir "." (lambda (name) + (string-match "\\.h$" name))))))))))) + (native-inputs (list pkg-config)) + (inputs + (list htslib-1.12 ncurses perl python zlib)))) + (define-public samtools-1.10 (package (inherit samtools) (name "samtools") |