aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm318
1 files changed, 205 insertions, 113 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 91bb94c549..1e04081ceb 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -136,24 +136,23 @@
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
- (lambda _
- (zero? (system* "gcc"
- "-O3"
- "-ffast-math"
- "-finline-functions"
- "-o"
- "aragorn"
- (string-append "aragorn" ,version ".c")))))
+ (lambda _
+ (invoke "gcc"
+ "-O3"
+ "-ffast-math"
+ "-finline-functions"
+ "-o"
+ "aragorn"
+ (string-append "aragorn" ,version ".c"))
+ #t))
(replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (man (string-append out "/share/man/man1")))
- (mkdir-p bin)
- (install-file "aragorn" bin)
- (mkdir-p man)
- (install-file "aragorn.1" man))
- #t)))))
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "aragorn" bin)
+ (install-file "aragorn.1" man))
+ #t)))))
(home-page "http://mbio-serv2.mbioekol.lu.se/ARAGORN")
(synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences")
(description
@@ -168,15 +167,16 @@ structure of the predicted RNA.")
(name "bamm")
(version "1.7.3")
(source (origin
- (method url-fetch)
+ (method git-fetch)
;; BamM is not available on pypi.
- (uri (string-append
- "https://github.com/Ecogenomics/BamM/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (git-reference
+ (url "https://github.com/Ecogenomics/BamM.git")
+ (commit version)
+ (recursive? #t)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1f35yxp4pc8aadsvbpg6r4kg2jh4fkjci0iby4iyljm6980sac0s"))
+ "1p83ahi984ipslxlg4yqy1gdnya9rkn1v71z8djgxkm9d2chw4c5"))
(modules '((guix build utils)))
(snippet
`(begin
@@ -198,11 +198,12 @@ structure of the predicted RNA.")
(lambda _
(with-directory-excursion "c"
(let ((sh (which "sh")))
+ (for-each make-file-writable (find-files "." ".*"))
;; Use autogen so that 'configure' works.
(substitute* "autogen.sh" (("/bin/sh") sh))
(setenv "CONFIG_SHELL" sh)
- (substitute* "configure" (("/bin/sh") sh))
- (zero? (system* "./autogen.sh"))))))
+ (invoke "./autogen.sh")))
+ #t))
(delete 'build)
;; Run tests after installation so compilation only happens once.
(delete 'check)
@@ -230,7 +231,8 @@ structure of the predicted RNA.")
;; There are 2 errors printed, but they are safe to ignore:
;; 1) [E::hts_open_format] fail to open file ...
;; 2) samtools view: failed to open ...
- (zero? (system* "nosetests")))))))
+ (invoke "nosetests")
+ #t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@@ -335,15 +337,16 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
(define-public bedops
(package
(name "bedops")
- (version "2.4.33")
+ (version "2.4.35")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/bedops/bedops/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bedops/bedops.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0kx4awrwby8f33wqyx8w7ms7v25xhf0d421csgf96a3hfzn2mb0m"))))
+ "0mmgsgwz5r9w76hzgxkxc9s9lkdhhaf7vr6i02b09vbswvs1fyqx"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@@ -365,9 +368,9 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
;; Unpack the tarballs to benefit from shebang patching.
(with-directory-excursion "third-party"
- (and (zero? (system* "tar" "xvf" "jansson-2.6.tar.bz2"))
- (zero? (system* "tar" "xvf" "zlib-1.2.7.tar.bz2"))
- (zero? (system* "tar" "xvf" "bzip2-1.0.6.tar.bz2"))))
+ (invoke "tar" "xvf" "jansson-2.6.tar.bz2")
+ (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2")
+ (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2"))
;; Disable unpacking of tarballs in Makefile.
(substitute* "system.mk/Makefile.linux"
(("^\tbzcat .*") "\t@echo \"not unpacking\"\n")
@@ -453,6 +456,20 @@ BED, GFF/GTF, VCF.")
(find-files "bin" ".*")))
#t)))))))
+;; Needed for pybedtools.
+(define-public bedtools-2.26
+ (package (inherit bedtools)
+ (name "bedtools")
+ (version "2.26.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/arq5x/bedtools2/releases/"
+ "download/v" version "/"
+ "bedtools-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jhavwifnf7lmkb11h9y7dynr8d699h0rd2l52j1pfgircr2zwv5"))))))
+
(define-public ribotaper
(package
(name "ribotaper")
@@ -582,29 +599,54 @@ input/output delimiter. When the new functionality is not used, bioawk is
intended to behave exactly the same as the original BWK awk.")
(license license:x11)))
-(define-public python2-pybedtools
+(define-public python-pybedtools
(package
- (name "python2-pybedtools")
- (version "0.6.9")
+ (name "python-pybedtools")
+ (version "0.7.10")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/p/pybedtools/pybedtools-"
- version ".tar.gz"))
+ (uri (pypi-uri "pybedtools" version))
(sha256
(base32
- "1ldzdxw1p4y3g2ignmggsdypvqkcwqwzhdha4rbgpih048z5p4an"))))
+ "0l2b2wrnj85azfqgr0zwr60f7j58vlla1hcgxvr9rwikpl8j72ji"))))
(build-system python-build-system)
- (arguments `(#:python ,python-2)) ; no Python 3 support
- (inputs
- `(("python-matplotlib" ,python2-matplotlib)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; See https://github.com/daler/pybedtools/issues/261
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ ;; This test (pybedtools.test.test_scripts.test_venn_mpl) needs a
+ ;; graphical environment.
+ (substitute* "pybedtools/test/test_scripts.py"
+ (("def test_venn_mpl")
+ "def _do_not_test_venn_mpl"))
+ ;; Requires internet access.
+ (substitute* "pybedtools/test/test_helpers.py"
+ (("def test_chromsizes")
+ "def _do_not_test_chromsizes"))
+ ;; FIXME: these two fail for no good reason.
+ (substitute* "pybedtools/test/test1.py"
+ (("def test_issue_157")
+ "def _do_not_test_issue_157")
+ (("def test_to_dataframe")
+ "def _do_not_test_to_dataframe"))
+ #t)))))
(propagated-inputs
- `(("bedtools" ,bedtools)
- ("samtools" ,samtools)))
+ ;; Tests don't pass with Bedtools 2.27.1.
+ ;; See https://github.com/daler/pybedtools/issues/260
+ `(("bedtools" ,bedtools-2.26)
+ ("samtools" ,samtools)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pysam" ,python-pysam)
+ ("python-pyyaml" ,python-pyyaml)))
(native-inputs
- `(("python-cython" ,python2-cython)
- ("python-pyyaml" ,python2-pyyaml)
- ("python-nose" ,python2-nose)))
+ `(("python-numpy" ,python-numpy)
+ ("python-pandas" ,python-pandas)
+ ("python-cython" ,python-cython)
+ ("python-nose" ,python-nose)
+ ("kentutils" ,kentutils) ; for bedGraphToBigWig
+ ("python-six" ,python-six)))
(home-page "https://pythonhosted.org/pybedtools/")
(synopsis "Python wrapper for BEDtools programs")
(description
@@ -614,6 +656,36 @@ pybedtools extends BEDTools by offering feature-level manipulations from with
Python.")
(license license:gpl2+)))
+(define-public python2-pybedtools
+ (let ((pkg (package-with-python2 python-pybedtools)))
+ (package (inherit pkg)
+ (arguments
+ `(#:modules ((ice-9 ftw)
+ (srfi srfi-1)
+ (srfi srfi-26)
+ (guix build utils)
+ (guix build python-build-system))
+ ;; See https://github.com/daler/pybedtools/issues/192
+ ,@(substitute-keyword-arguments (package-arguments pkg)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'check
+ (lambda _
+ (let ((cwd (getcwd)))
+ (setenv "PYTHONPATH"
+ (string-append cwd "/build/"
+ (find (cut string-prefix? "lib" <>)
+ (scandir (string-append cwd "/build")))
+ ":" (getenv "PYTHONPATH"))))
+ ;; The tests need to be run from elsewhere...
+ (mkdir-p "/tmp/test")
+ (copy-recursively "pybedtools/test" "/tmp/test")
+ (with-directory-excursion "/tmp/test"
+ (invoke "nosetests"
+ ;; This test fails for unknown reasons
+ "--exclude=.*test_getting_example_beds"))
+ #t))))))))))
+
(define-public python-biom-format
(package
(name "python-biom-format")
@@ -999,15 +1071,12 @@ package provides command line tools using the Bio++ library.")
#:parallel-build? #f ; not supported
#:phases
(modify-phases %standard-phases
- (add-before
- 'configure 'set-HOME
+ (add-before 'configure 'set-HOME
;; $HOME needs to be set at some point during the configure phase
(lambda _ (setenv "HOME" "/tmp") #t))
- (add-after
- 'unpack 'enter-dir
+ (add-after 'unpack 'enter-dir
(lambda _ (chdir "c++") #t))
- (add-after
- 'enter-dir 'fix-build-system
+ (add-after 'enter-dir 'fix-build-system
(lambda _
(define (which* cmd)
(cond ((string=? cmd "date")
@@ -1055,31 +1124,31 @@ package provides command line tools using the Bio++ library.")
(("action=/bin/") "action=")
(("export PATH") ":"))
#t))
- (replace
- 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (lib (string-append (assoc-ref outputs "lib") "/lib"))
- (include (string-append (assoc-ref outputs "include")
- "/include/ncbi-tools++")))
- ;; The 'configure' script doesn't recognize things like
- ;; '--enable-fast-install'.
- (zero? (system* "./configure.orig"
- (string-append "--with-build-root=" (getcwd) "/build")
- (string-append "--prefix=" out)
- (string-append "--libdir=" lib)
- (string-append "--includedir=" include)
- (string-append "--with-bz2="
- (assoc-ref inputs "bzip2"))
- (string-append "--with-z="
- (assoc-ref inputs "zlib"))
- (string-append "--with-pcre="
- (assoc-ref inputs "pcre"))
- ;; Each library is built twice by default, once
- ;; with "-static" in its name, and again
- ;; without.
- "--without-static"
- "--with-dll"))))))))
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (lib (string-append (assoc-ref outputs "lib") "/lib"))
+ (include (string-append (assoc-ref outputs "include")
+ "/include/ncbi-tools++")))
+ ;; The 'configure' script doesn't recognize things like
+ ;; '--enable-fast-install'.
+ (invoke "./configure.orig"
+ (string-append "--with-build-root=" (getcwd) "/build")
+ (string-append "--prefix=" out)
+ (string-append "--libdir=" lib)
+ (string-append "--includedir=" include)
+ (string-append "--with-bz2="
+ (assoc-ref inputs "bzip2"))
+ (string-append "--with-z="
+ (assoc-ref inputs "zlib"))
+ (string-append "--with-pcre="
+ (assoc-ref inputs "pcre"))
+ ;; Each library is built twice by default, once
+ ;; with "-static" in its name, and again
+ ;; without.
+ "--without-static"
+ "--with-dll")
+ #t))))))
(outputs '("out" ; 21 MB
"lib" ; 226 MB
"include")) ; 33 MB
@@ -1204,15 +1273,16 @@ errors at the end of reads.")
(define-public bowtie
(package
(name "bowtie")
- (version "2.3.2")
+ (version "2.3.4.3")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/BenLangmead/bowtie2/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/BenLangmead/bowtie2.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0hwa5r9qbglppb7sz5z79rlmmddr3n51n468jb3wh8rwjgn3yr90"))
+ "1zl3cf327y2p7p03cavymbh7b00djc7lncfaqih33n96iy9q8ibp"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1222,14 +1292,6 @@ errors at the end of reads.")
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
#t))))
(build-system gnu-build-system)
- (inputs
- `(("perl" ,perl)
- ("perl-clone" ,perl-clone)
- ("perl-test-deep" ,perl-test-deep)
- ("perl-test-simple" ,perl-test-simple)
- ("python" ,python-2)
- ("tbb" ,tbb)
- ("zlib" ,zlib)))
(arguments
'(#:make-flags
(list "allall"
@@ -1239,11 +1301,21 @@ errors at the end of reads.")
(modify-phases %standard-phases
(delete 'configure)
(replace 'check
- (lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "perl"
- "scripts/test/simple_tests.pl"
- "--bowtie2=./bowtie2"
- "--bowtie2-build=./bowtie2-build")))))))
+ (lambda _
+ (invoke "perl"
+ "scripts/test/simple_tests.pl"
+ "--bowtie2=./bowtie2"
+ "--bowtie2-build=./bowtie2-build")
+ #t)))))
+ (inputs
+ `(("tbb" ,tbb)
+ ("zlib" ,zlib)
+ ("python" ,python-wrapper)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("perl-clone" ,perl-clone)
+ ("perl-test-deep" ,perl-test-deep)
+ ("perl-test-simple" ,perl-test-simple)))
(home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
(synopsis "Fast and sensitive nucleotide sequence read aligner")
(description
@@ -1638,29 +1710,35 @@ databases.")
(define-public clipper
(package
(name "clipper")
- (version "1.1")
+ (version "1.2.1")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/YeoLab/clipper/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/YeoLab/clipper.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0pflmsvhbf8izbgwhbhj1i7349sw1f55qpqj8ljmapp16hb0p0qi"))
+ "0fja1rj84wp9vpj8rxpj3n8zqzcqq454m904yp9as1w4phccirjb"))
(modules '((guix build utils)))
(snippet
'(begin
;; remove unnecessary setup dependency
(substitute* "setup.py"
(("setup_requires = .*") ""))
- (for-each delete-file
- '("clipper/src/peaks.so"
- "clipper/src/readsToWiggle.so"))
- (delete-file-recursively "dist/")
#t))))
(build-system python-build-system)
- (arguments `(#:python ,python-2)) ; only Python 2 is supported
+ (arguments
+ `(#:python ,python-2 ; only Python 2 is supported
+ #:phases
+ (modify-phases %standard-phases
+ ;; This is fixed in upstream commit
+ ;; f6c2990198f906bf97730d95695b4bd5a6d01ddb.
+ (add-after 'unpack 'fix-typo
+ (lambda _
+ (substitute* "clipper/src/readsToWiggle.pyx"
+ (("^sc.*") ""))
+ #t)))))
(inputs
`(("htseq" ,python2-htseq)
("python-pybedtools" ,python2-pybedtools)
@@ -1985,7 +2063,21 @@ trees (phylogenies) and characters.")
(license license:bsd-3)))
(define-public python2-dendropy
- (package-with-python2 python-dendropy))
+ (let ((base (package-with-python2 python-dendropy)))
+ (package
+ (inherit base)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'remove-failing-test
+ (lambda _
+ ;; This test fails when the full test suite is run, as documented
+ ;; at https://github.com/jeetsukumaran/DendroPy/issues/74
+ (substitute* "tests/test_dataio_nexml_reader_tree_list.py"
+ (("test_collection_comments_and_annotations")
+ "do_not_test_collection_comments_and_annotations"))
+ #t)))
+ ,@(package-arguments base))))))
(define-public python-py2bit
(package