diff options
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r-- | gnu/packages/bioinformatics.scm | 457 |
1 files changed, 284 insertions, 173 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 64fc6173db..e4a01ca208 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -60,6 +60,7 @@ #:use-module (guix build-system trivial) #:use-module (guix deprecation) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages assembly) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) @@ -106,6 +107,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages logging) + #:use-module (gnu packages lsof) #:use-module (gnu packages machine-learning) #:use-module (gnu packages man) #:use-module (gnu packages maths) @@ -125,6 +127,7 @@ #:use-module (gnu packages python-build) #:use-module (gnu packages python-check) #:use-module (gnu packages python-compression) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -4671,7 +4674,7 @@ experiments and provide highly stable thresholds based on reproducibility.") (define-public jellyfish (package (name "jellyfish") - (version "2.2.10") + (version "2.3.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/gmarcais/Jellyfish/" @@ -4679,14 +4682,15 @@ experiments and provide highly stable thresholds based on reproducibility.") "/jellyfish-" version ".tar.gz")) (sha256 (base32 - "1k4pc3fvv6w1km2yph4m5sd78fbxp21d6xyzgmy0gjihzc6mb249")))) + "0npa62wzasdibas5zp3n8j3armsci4kyvh0jw7jr0am4gg7vg5g1")))) (build-system gnu-build-system) (outputs '("out" ;for library "ruby" ;for Ruby bindings "python")) ;for Python bindings (arguments `(#:configure-flags - (list (string-append "--enable-ruby-binding=" + (list "--without-sse" ; configure script probes for CPU features when SSE is enabled. + (string-append "--enable-ruby-binding=" (assoc-ref %outputs "ruby")) (string-append "--enable-python-binding=" (assoc-ref %outputs "python"))) @@ -4696,13 +4700,12 @@ experiments and provide highly stable thresholds based on reproducibility.") (lambda _ ;; generator_manager.hpp either uses /bin/sh or $SHELL ;; to run tests. - (setenv "SHELL" (which "bash")) - #t))))) + (setenv "SHELL" (which "bash"))))))) (native-inputs `(("bc" ,bc) ("time" ,time) ("ruby" ,ruby) - ("python" ,python-2) + ("python" ,python-wrapper) ("pkg-config" ,pkg-config))) (inputs `(("htslib" ,htslib))) @@ -4718,9 +4721,8 @@ command, or queried for specific k-mers with @code{jellyfish query}.") (home-page "http://www.genome.umd.edu/jellyfish.html") ;; JELLYFISH seems to be 64-bit only. (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux")) - ;; The combined work is published under the GPLv3 or later. Individual - ;; files such as lib/jsoncpp.cpp are released under the Expat license. - (license (list license:gpl3+ license:expat)))) + ;; One of these licenses may be picked + (license (list license:gpl3+ license:bsd-3)))) (define-public khmer (package @@ -4833,7 +4835,7 @@ experiments.") (define-public macs (package (name "macs") - (version "2.2.6") + (version "2.2.7.1") (source (origin ;; The PyPi tarball does not contain tests. (method git-fetch) @@ -4843,7 +4845,7 @@ experiments.") (file-name (git-file-name name version)) (sha256 (base32 - "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15")) + "08zsgh65xbpv1md2s3wqmrk9g2mz6izmn59ryw5lbac54120p291")) (modules '((guix build utils))) ;; Remove files generated by Cython (snippet @@ -4854,8 +4856,7 @@ experiments.") (when (file-exists? generated-file) (delete-file generated-file)))) (find-files "." "\\.pyx$")) - (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c") - #t)))) + (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c"))))) (build-system python-build-system) (arguments `(#:phases @@ -4864,8 +4865,7 @@ experiments.") (lambda* (#:key tests? inputs outputs #:allow-other-keys) (when tests? (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-v")) - #t))))) + (invoke "pytest" "-v"))))))) (inputs `(("python-numpy" ,python-numpy))) (native-inputs @@ -8355,41 +8355,57 @@ replacement for strverscmp.") (define-public multiqc (package (name "multiqc") - (version "1.5") + (version "1.10.1") (source (origin (method url-fetch) (uri (pypi-uri "multiqc" version)) (sha256 (base32 - "02iihfl0w0hpnr4pa0sbd1y9qxrg3ycyhjp5lidkcrqh1lmzs3zy")))) + "0y9sgjca3bp0kk3ngry4zf4q2diyzp5bvzsx5l23nsysfbfkigm4")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key inputs outputs tests? #:allow-other-keys) + (when tests? + (setenv "HOME" "/tmp") + (let ((here (getcwd))) + (copy-recursively (assoc-ref inputs "tests") "/tmp/tests") + ;; ModuleNotFoundError: No module named 'multiqc.modules.ccs' + (delete-file "/tmp/tests/unit_tests/test_ccs.py") + (with-directory-excursion "/tmp/tests" + (setenv "PYTHONPATH" (string-append here ":" (getenv "PYTHONPATH"))) + (invoke "python" "-munittest" "discover"))))))))) (propagated-inputs - `(("python-jinja2" ,python-jinja2) - ("python-simplejson" ,python-simplejson) - ("python-pyyaml" ,python-pyyaml) - ("python-click" ,python-click) - ("python-spectra" ,python-spectra) - ("python-requests" ,python-requests) - ("python-markdown" ,python-markdown) + `(("python-click" ,python-click) + ("python-coloredlogs" ,python-coloredlogs) + ("python-future" ,python-future) + ("python-jinja2" ,python-jinja2) ("python-lzstring" ,python-lzstring) + ("python-markdown" ,python-markdown) ("python-matplotlib" ,python-matplotlib) + ("python-networkx" ,python-networkx) ("python-numpy" ,python-numpy) - ;; MultQC checks for the presence of nose at runtime. - ("python-nose" ,python-nose))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "setup.py" - ;; MultiQC 1.5 ‘requires’ a version of python-matplotlib older - ;; than the one in Guix, but should work fine with 2.2.2. - ;; See <https://github.com/ewels/MultiQC/issues/725> and - ;; <https://github.com/ewels/MultiQC/issues/732> for details. - (("['\"]matplotlib.*?['\"]") - "'matplotlib'")) - #t))))) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests) + ("python-rich" ,python-rich) + ("python-simplejson" ,python-simplejson) + ("python-spectra" ,python-spectra))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("tests" + ,(let ((commit "02272d48a382beb27489fcf9e6308a0407dc3c2e")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ewels/MultiQC_TestData") + (commit commit))) + (file-name (git-file-name "multiqc-test-data" commit)) + (sha256 + (base32 + "1bha64wanrigczw4yn81din56396n61j5gqdrkslhslmskcafi91"))))))) (home-page "https://multiqc.info") (synopsis "Aggregate bioinformatics analysis reports") (description @@ -9354,19 +9370,19 @@ accurate as existing quantification tools.") (define-public libgff (package (name "libgff") - (version "1.0") + (version "2.0.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/Kingsford-Group/libgff") + (url "https://github.com/COMBINE-lab/libgff") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0n6vfjnq7a2mianipscbshrvbncss8z4zkgkbjw754p9043nfkps")))) + "0ds9r22y8bl1rj7bhl0003kgmm6aam7g8l41mnjfrzw15d9zf9k4")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests included - (home-page "https://github.com/Kingsford-Group/libgff") + (home-page "https://github.com/COMBINE-lab/libgff") (synopsis "Parser library for reading/writing GFF files") (description "This is a simple \"libraryfication\" of the GFF/GTF parsing code that is used in the Cufflinks codebase. The goal of this library is to @@ -9568,7 +9584,7 @@ The following file formats are supported: (define-public salmon (package (name "salmon") - (version "0.13.1") + (version "1.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -9577,124 +9593,113 @@ The following file formats are supported: (file-name (git-file-name name version)) (sha256 (base32 - "1i2z4aivicmiixdz9bxalp7vmfzi3k92fxa63iqa8kgvfw5a4aq5")) + "1di7y2s8cjr9480lngcmaz3wcabc1lpkyanzbhir1nkhcjmj70h4")) (modules '((guix build utils))) (snippet - '(begin - ;; Delete bundled headers for eigen3. - (delete-file-recursively "include/eigen3/") - #t)))) + ;; Delete bundled headers for eigen3. + '(delete-file-recursively "include/eigen3/")))) (build-system cmake-build-system) (arguments `(#:configure-flags - (list (string-append "-DBOOST_INCLUDEDIR=" - (assoc-ref %build-inputs "boost") - "/include/") - (string-append "-DBOOST_LIBRARYDIR=" - (assoc-ref %build-inputs "boost") - "/lib/") - (string-append "-DBoost_LIBRARIES=" - "-lboost_iostreams " - "-lboost_filesystem " - "-lboost_system " - "-lboost_thread " - "-lboost_timer " - "-lboost_chrono " - "-lboost_program_options") - "-DBoost_FOUND=TRUE" - "-DTBB_LIBRARIES=tbb tbbmalloc" - ;; Don't download RapMap---we already have it! - "-DFETCHED_RAPMAP=1") + (list (string-append "-Dlibgff_DIR=" + (assoc-ref %build-inputs "libgff") "/lib") + "-Dlibgff_FOUND=TRUE" + "-DTBB_FOUND=TRUE" + "-DTBB_VERSION=2020.3" + "-DTBB_LIBRARIES=tbb -ltbbmalloc" + "-DFETCHED_PUFFERFISH=TRUE" + "-DUSE_SHARED_LIBS=TRUE") #:phases (modify-phases %standard-phases - ;; Boost cannot be found, even though it's right there. - (add-after 'unpack 'do-not-look-for-boost + (add-after 'unpack 'prepare-pufferfish (lambda* (#:key inputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - (("find_package\\(Boost 1\\.59\\.0") "#")) - #t)) + (copy-recursively (assoc-ref inputs "pufferfish") + "external/pufferfish") + ;; This test isn't working correctly, so compilation aborts. + (substitute* "external/pufferfish/include/string_view.hpp" + (("#if __has_include\\(<string_view>\\)") + "#if 0")) + (let ((headers "external/install/pufferfish/include/pufferfish") + (source "external/install/src/pufferfish")) + (mkdir-p headers) + (mkdir-p source) + (for-each (lambda (file) + (install-file (string-append "external/pufferfish/include/" file) + headers)) + (list "ProgOpts.hpp" "BooPHF.hpp" "SpinLock.hpp" + "Kmer.hpp" "CanonicalKmer.hpp" "string_view.hpp" + "CanonicalKmerIterator.hpp" + "PufferfishBaseIndex.hpp" + "PufferfishIndex.hpp" + "PufferfishSparseIndex.hpp" + "PufferfishLossyIndex.hpp" + "PufferfishTypes.hpp" + "rank9b.hpp" "rank9sel.hpp" "macros.hpp" + "select.hpp" "Util.hpp" + "PairedAlignmentFormatter.hpp" + "SelectiveAlignmentUtils.hpp" + "PuffAligner.hpp" "MemCollector.hpp" + "MemChainer.hpp" "CommonTypes.hpp" + "SAMWriter.hpp" "PufferfishConfig.hpp" + "BulkChunk.hpp" "BinWriter.hpp")) + (for-each (lambda (dir) + (copy-recursively + (string-append "external/pufferfish/include/" dir) + (string-append headers "/" dir))) + (list "libdivide" + "ksw2pp" + "compact_vector" + "metro" + "chobo" + "sparsepp" + "simde" + "tsl")) + (copy-recursively + (string-append "external/pufferfish/src/metro/") + (string-append source "/metro")) + (install-file + (string-append "external/pufferfish/src/rank9b.cpp") + source) + + ;; Do not complain about not having built libtbb + (substitute* "external/pufferfish/external/twopaco/CMakeLists.txt" + (("add_dependencies.*") ""))))) (add-after 'unpack 'do-not-phone-home (lambda _ (substitute* "src/Salmon.cpp" - (("getVersionMessage\\(\\)") "\"\"")) - #t)) - (add-after 'unpack 'prepare-rapmap - (lambda* (#:key inputs #:allow-other-keys) - (let ((src "external/install/src/rapmap/") - (include "external/install/include/rapmap/") - (rapmap (assoc-ref inputs "rapmap"))) - (mkdir-p src) - (mkdir-p include) - (copy-recursively (string-append rapmap "/src") src) - (copy-recursively (string-append rapmap "/include") include) - (for-each delete-file '("external/install/include/rapmap/xxhash.h" - "external/install/include/rapmap/FastxParser.hpp" - "external/install/include/rapmap/concurrentqueue.h" - "external/install/include/rapmap/FastxParserThreadUtils.hpp" - "external/install/src/rapmap/FastxParser.cpp" - "external/install/src/rapmap/xxhash.c")) - (delete-file-recursively "external/install/include/rapmap/spdlog")) - #t)) + (("getVersionMessage\\(\\)") "\"\"")))) (add-after 'unpack 'use-system-libraries (lambda* (#:key inputs #:allow-other-keys) - (substitute* "CMakeLists.txt" - ;; Don't prefer static libs - (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "") - (("set\\(TBB_LIBRARIES") "message(") - ;; Don't download anything - (("DOWNLOAD_COMMAND") "DOWNLOAD_COMMAND echo") - (("externalproject_add\\(libcereal") "message(") - (("externalproject_add\\(libgff") "message(") - (("externalproject_add\\(libtbb") "message(") - (("externalproject_add\\(libdivsufsort") "message(") - (("externalproject_add\\(libstadenio") "message(") - (("externalproject_add_step\\(") "message(")) - (substitute* "src/CMakeLists.txt" - (("add_dependencies") "#") - (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libstaden-read.a") - (string-append (assoc-ref inputs "libstadenio-for-salmon") - "/lib/libstaden-read.so")) - (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a") - (string-append (assoc-ref inputs "libdivsufsort") - "/lib/libdivsufsort.so")) - (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a") - (string-append (assoc-ref inputs "libdivsufsort") - "/lib/libdivsufsort64.so")) - (("lib/libdivsufsort.a") "/lib/libdivsufsort.so")) - ;; Ensure that all headers can be found (setenv "CPLUS_INCLUDE_PATH" (string-append (or (getenv "CPLUS_INCLUDE_PATH") "") ":" + (getcwd) "/external/install/pufferfish/include:" (assoc-ref inputs "eigen") - "/include/eigen3")) - #t)) - ;; CMAKE_INSTALL_PREFIX does not exist when the tests are - ;; run. It only exists after the install phase. - (add-after 'unpack 'fix-tests + "/include/eigen3")))) + (add-after 'unpack 'fix-error-message-in-tests (lambda _ - (substitute* "src/CMakeLists.txt" - (("DTOPLEVEL_DIR=\\$\\{CMAKE_INSTALL_PREFIX") - "DTOPLEVEL_DIR=${GAT_SOURCE_DIR")) - #t))))) + (substitute* "cmake/TestSalmonQuasi.cmake" + (("SALMON_QUASI_INDEX_COMMAND") + "SALMON_QUASI_INDEX_CMD"))))))) (inputs `(("boost" ,boost) ("bzip2" ,bzip2) ("cereal" ,cereal) + ("curl" ,curl) ("eigen" ,eigen) - ("rapmap" ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/COMBINE-lab/RapMap") - (commit (string-append "salmon-v" version)))) - (file-name (string-append "rapmap-salmon-v" version "-checkout")) - (sha256 - (base32 - "1biplxf0csc7a8h1wf219b0vmjkvw6wk2zylhdklb577kgmihdms")))) ("jemalloc" ,jemalloc) ("libgff" ,libgff) + ("pufferfish" ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/COMBINE-lab/pufferfish") + (commit (string-append "salmon-v" version)))) + (file-name (git-file-name "pufferfish" version)) + (sha256 + (base32 + "0qb4a2nl1d59qasr17sslgxnkjd5kbk5mns4cjshrmsvkrqp995n")))) ("tbb" ,tbb) - ("libdivsufsort" ,libdivsufsort) ("libstadenio-for-salmon" ,libstadenio-for-salmon) ("xz" ,xz) ("zlib" ,zlib))) @@ -10293,7 +10298,7 @@ once. This package provides tools to perform Drop-seq analyses.") (define-public pigx-rnaseq (package (name "pigx-rnaseq") - (version "0.0.13") + (version "0.0.17") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/" @@ -10301,18 +10306,26 @@ once. This package provides tools to perform Drop-seq analyses.") "/pigx_rnaseq-" version ".tar.gz")) (sha256 (base32 - "0z9zid2c8q16lfzlnjd63nparknhv31qgv4h79algmvhkakm2pgk")))) + "0k9zj50bij3sjwq08v8l8waddcx8k66m3vdq8mx5vc23p19qz42s")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f ; not supported #:phases (modify-phases %standard-phases - ;; "test.sh" runs STAR, which requires excessive amounts of memory. + ;; "test.sh" runs the whole pipeline, which takes a long time and + ;; might fail due to OOM. The MultiQC is also resource intensive. (add-after 'unpack 'disable-resource-intensive-test (lambda _ (substitute* "Makefile.in" (("^ tests/test_multiqc/test.sh") "") - (("^ test.sh") ""))))))) + (("^ test.sh") "")))) + (add-before 'check 'set-timezone + ;; The readr package is picky about timezones. + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZ" "UTC+1") + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo"))))))) (inputs `(("coreutils" ,coreutils) ("sed" ,sed) @@ -10327,8 +10340,9 @@ once. This package provides tools to perform Drop-seq analyses.") ("r-minimal" ,r-minimal) ("r-rmarkdown" ,r-rmarkdown) ("r-ggplot2" ,r-ggplot2) + ("r-ggpubr" ,r-ggpubr) ("r-ggrepel" ,r-ggrepel) - ("r-gprofiler" ,r-gprofiler) + ("r-gprofiler2" ,r-gprofiler2) ("r-deseq2" ,r-deseq2) ("r-dt" ,r-dt) ("r-knitr" ,r-knitr) @@ -10346,7 +10360,10 @@ once. This package provides tools to perform Drop-seq analyses.") ("pandoc" ,pandoc) ("pandoc-citeproc" ,pandoc-citeproc) ("python-wrapper" ,python-wrapper) + ("python-deeptools" ,python-deeptools) ("python-pyyaml" ,python-pyyaml))) + (native-inputs + `(("tzdata" ,tzdata))) (home-page "https://bioinformatics.mdc-berlin.de/pigx/") (synopsis "Analysis pipeline for RNA sequencing experiments") (description "PiGX RNAseq is an analysis pipeline for preprocessing and @@ -10437,7 +10454,7 @@ in an easily configurable manner.") (define-public pigx-bsseq (package (name "pigx-bsseq") - (version "0.1.3") + (version "0.1.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/" @@ -10445,7 +10462,7 @@ in an easily configurable manner.") "/pigx_bsseq-" version ".tar.gz")) (sha256 (base32 - "0blm0bl5z3ng01n7hh2ffk4rkzvf7vb3nm0crgdzrxr5cahxdxql")))) + "05al5dacfp1vf1x3cq20jhd6w4xj5vaxslzaka6yrpg0av8sh3k3")))) (build-system gnu-build-system) (arguments `(;; TODO: tests currently require 12+GB of RAM. See @@ -10459,8 +10476,7 @@ in an easily configurable manner.") (setenv "TZ" "UTC+1") (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - #t))))) + "/share/zoneinfo"))))))) (native-inputs `(("tzdata" ,tzdata))) (inputs @@ -10573,7 +10589,7 @@ based methods.") (define-public pigx-sars-cov2-ww (package (name "pigx-sars-cov2-ww") - (version "0.0.1") + (version "0.0.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/pigx_sarscov2_ww/" @@ -10581,7 +10597,7 @@ based methods.") "/pigx_sars-cov2-ww-" version ".tar.gz")) (sha256 (base32 - "1h1rfl3dyf7pid74xxgiyr4x1l5yj000wcz5crm1bdbaz8p7b7ic")))) + "0yrbza7lbzijjc8ifk06b646n959a4k7id94x3ndz795892f64l0")))) (build-system gnu-build-system) (inputs `(("bash-minimal" ,bash-minimal) @@ -10608,7 +10624,8 @@ based methods.") ("r-stringr" ,r-stringr) ("r-tidyr" ,r-tidyr) ("samtools" ,samtools) - ("snakemake" ,snakemake))) + ("snakemake" ,snakemake) + ("wget" ,wget))) (home-page "https://bioinformatics.mdc-berlin.de/pigx/") (synopsis "Analysis pipeline for wastewater sequencing") (description "PiGx SARS-CoV-2 is a pipeline for analysing data from @@ -10859,6 +10876,28 @@ cases include: @end enumerate\n") (license license:expat))) +(define-public python-mappy + (package + (name "python-mappy") + (version "2.18") + (source (origin + (method url-fetch) + (uri (pypi-uri "mappy" version)) + (sha256 + (base32 + "1a05p7rkmxa6qhm108na8flzj2v45jab06drk59kzk1ip2sgvzqq")))) + (build-system python-build-system) + (native-inputs + `(("python-cython" ,python-cython))) + (inputs + `(("zlib" ,zlib))) + (home-page "https://github.com/lh3/minimap2") + (synopsis "Python binding for minimap2") + (description "This package provides a convenient interface to minimap2, +a fast and accurate C program to align genomic and transcribe nucleotide +sequences.") + (license license:expat))) + (define-public miniasm (package (name "miniasm") @@ -10932,7 +10971,7 @@ Thus the per-base error rate is similar to the raw input reads.") (install-file "Bandage" (string-append out "/bin")) #t)))))) (inputs - `(("qtbase" ,qtbase) + `(("qtbase" ,qtbase-5) ("qtsvg" ,qtsvg))) (native-inputs `(("imagemagick" ,imagemagick))) @@ -11723,29 +11762,26 @@ such as Hi-C contact matrices.") (define-public python-hicmatrix (package (name "python-hicmatrix") - (version "12") - (source - (origin - ;; Version 12 is not available on pypi. - (method git-fetch) - (uri (git-reference - (url "https://github.com/deeptools/HiCMatrix") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj")))) + (version "15") + (source + (origin + ;;Pypi sources do not contain any test + (method git-fetch) + (uri (git-reference + (url "https://github.com/deeptools/HiCMatrix") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dshjxgb16sdfg9k1bhw2yhyngac04k4ca7aqy8g3i3pprr068r5")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* '("requirements.txt" - "setup.py") - (("cooler *=+ *0.8.5") - "cooler==0.8.*")) - #t))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "python" "-m" "pytest" "-v"))))))) (propagated-inputs `(("python-cooler" ,python-cooler) ("python-intervaltree" ,python-intervaltree) @@ -11753,6 +11789,8 @@ such as Hi-C contact matrices.") ("python-pandas" ,python-pandas) ("python-scipy" ,python-scipy) ("python-tables" ,python-tables))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/deeptools/HiCMatrix/") (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks") (description @@ -11859,18 +11897,35 @@ pyGenomeTracks can make plots with or without Hi-C data.") (define-public python-hic2cool (package (name "python-hic2cool") - (version "0.4.2") + (version "0.8.3") + ;; pypi sources do not contain the test_data directory and no test can be + ;; run (source (origin - (method url-fetch) - (uri (pypi-uri "hic2cool" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/4dn-dcic/hic2cool") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0xy6mhfns2lzib1kcr6419jjp6pmh0qx8z8na55lmiwn0ds8q9cl")))) + "0dlnf0qfcp4jrc1nyya32a035c13xicyq16bwfnwhbb9s47mz7gl")))) (build-system python-build-system) - (arguments '(#:tests? #f)) ; no tests included + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Two of the test-data files need to be writable. + (add-after 'unpack 'make-test-data-writable + (lambda _ + (for-each make-file-writable + (list "test_data/hic2cool_0.4.2_single_res.cool" + "test_data/hic2cool_0.7.0_multi_res.mcool"))))))) (propagated-inputs - `(("python-cooler" ,python-cooler))) + `(("python-cooler" ,python-cooler) + ("python-h5py" ,python-h5py) + ("python-numpy" ,python-numpy) + ("python-pandas" ,python-pandas) + ("python-scipy" ,python-scipy))) (home-page "https://github.com/4dn-dcic/hic2cool") (synopsis "Converter for .hic and .cool files") (description @@ -14064,6 +14119,62 @@ usually ignored by other methods or only used for filtering.") coordinates between different assemblies.") (license license:expat))) +(define-public python-cgatcore + (package + (name "python-cgatcore") + (version "0.6.7") + ;; The version of pypi does not include test data. + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cgat-developers/cgat-core") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "17vk88v1bx7x02ibzkc9i7ir4b5p1hcjr38jpsfzyzxr68352d5k")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-references + (lambda _ + (substitute* "cgatcore/pipeline/execution.py" + (("#!/bin/bash") (string-append "#!" (which "bash"))) + (("executable=\"/bin/bash\"") + (string-append "executable=\"" (which "bash") "\"")) + (("\\\\time") (which "time"))))) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + ;; Requires network access + (delete-file "tests/test_pipeline_execution.py") + (invoke "python" "-m" "pytest" "-v"))))))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("lsof" ,lsof) + ("hostname" ,inetutils) + ("openssl" ,openssl))) + (inputs + `(("time" ,time))) + (propagated-inputs + `(("python-apsw" ,python-apsw) + ("python-gevent" ,python-gevent) + ("python-pandas" ,python-pandas) + ("python-paramiko" ,python-paramiko) + ("python-pyyaml" ,python-pyyaml) + ("python-ruffus" ,python-ruffus) + ("python-sqlalchemy" ,python-sqlalchemy))) + (home-page "https://github.com/cgat-developers/cgat-core") + (synopsis "Computational genomics analysis toolkit") + (description + "CGAT-core is a set of libraries and helper functions used to enable +researchers to design and build computational workflows for the analysis of +large-scale data-analysis.") + (license license:expat))) + (define-public ensembl-vep (let* ((api-version "103") (api-module |