diff options
Diffstat (limited to 'gn/packages/bioinformatics.scm')
-rw-r--r-- | gn/packages/bioinformatics.scm | 273 |
1 files changed, 157 insertions, 116 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index 3f89abe..02c979d 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -41,6 +41,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages cran) + #:use-module (gnu packages crates-compression) #:use-module (gnu packages crates-io) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages curl) @@ -2163,6 +2164,7 @@ suitable for long reads, but works also well with short reads.") (build-system cmake-build-system) (arguments (list + #:tests? #f ;; FIXME: tests are broken #:phases #~(modify-phases %standard-phases (add-after 'unpack 'use-gnuinstalldirs-macros @@ -2580,121 +2582,159 @@ multiple sequence alignment.") license:zlib ; deps/sonLib/externalTools/cutest license:boost1.0)))) ; catch.hpp +(define-public wfmash-0.14 + (package + (inherit wfmash) + (version "0.14.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/waveygang/wfmash/releases/download/v" + version "/wfmash-v" version ".tar.gz")) + (sha256 + (base32 + "1mk3jschn3hdr45glds65g3hxk7v6nc3plkvxmfbd5pr4kyzlf13")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; Unbundle atomic-queue. + (delete-file-recursively "src/common/atomic_queue") + (substitute* "src/align/include/computeAlignments.hpp" + (("\"common/atomic_queue/atomic_queue.h\"") + "<atomic_queue/atomic_queue.h>")) + ;; Remove compiler optimizations. + (substitute* (find-files "." "CMakeLists\\.txt") + (("-march=native ") "")))))) + (arguments + (substitute-keyword-arguments (package-arguments wfmash) + ((#:tests? tests? #f) #f) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (replace 'build-check-prerequisites + (lambda _ + (let ((wfa2-lib #$(string-append "../wfmash-v" + version + "/src/common/wflign/deps/WFA2-lib"))) + (substitute* (string-append wfa2-lib "/Makefile") + ;; Remove architecture-specific flags. + (("-march=x86-64-v3") "")) + (substitute* (string-append wfa2-lib "/tests/wfa.utest.sh") + ;; Fix time command. + (("\\\\time -v") "time")) + ;; Build wfa2-lib. + (invoke "make" "-C" wfa2-lib + #$(string-append "CC=" (cc-for-target)))))))))) + (inputs + (modify-inputs (package-inputs wfmash) + (prepend jemalloc) + (delete "libdeflate"))))) + (define-public pggb - (let ((commit "9ebff27320382e470ed38a85b4448402e1e7c353") - (revision "1")) - (package - (name "pggb") - (version (git-version "0.5.1" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pangenome/pggb") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0rgpj52q3ai7f1saqbilgx5gz4f403x3427wq649qwv84ivmi1sf")))) - (build-system copy-build-system) - (arguments - (list - #:install-plan - #~'(("pggb" "bin/") - ("partition-before-pggb" "bin/") - ("scripts/" "bin/") - ("scripts" "bin/scripts")) - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'force-python3 - (lambda _ - (substitute* (find-files "scripts" "\\.py$") - (("/usr/bin/python") "/usr/bin/python3")))) - (add-before 'install 'patch-and-wrap-scripts - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "scripts/vcf_preprocess.sh" - (("bcftools ") - (string-append (search-input-file inputs "/bin/bcftools") " "))) - (wrap-script "scripts/net2communities.py" - `("GUIX_PYTHONPATH" ":" prefix - (,(getenv "GUIX_PYTHONPATH")))))) - (add-after 'install 'wrap-scripts - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each - (lambda (file) - (wrap-script file - `("R_LIBS_SITE" ":" prefix - (,(getenv "R_LIBS_SITE"))) - `("PATH" ":" prefix - ,(map (lambda (input) (string-append input "/bin")) - '#$(map (lambda (label) - (or (this-package-input (string-append label "-hwcaps")) - (this-package-input label))) - (list "bc" - "bcftools" - "bedtools" - "gfaffix" - "htslib" - "fastix" - "multiqc" - "mummer" - "odgi" - "pafplot" - "parallel" - "pigz" - "python" - "r-data-table" - "r-minimal" - "rtg-tools" - "samtools" - "seqwish" - "smoothxg" - "time" - "vcfbub" - "vcflib" - "vg" - "wfmash")))))) - (list (string-append out "/bin/pggb") - (string-append out "/bin/partition-before-pggb") - (string-append out "/bin/gfa2evaluation.sh") - (string-append out "/bin/scripts/gfa2evaluation.sh")))))) - (add-after 'install 'substitute-file-paths - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/bin/gfa2evaluation.sh") - (("/usr/local/bin/vcf_preprocess.sh") - (string-append out "/bin/vcf_preprocess.sh")) - (("/usr/local/bin/nucmer2vcf.R") - (string-append out "/bin/nucmer2vcf.R"))))))))) - (inputs - (list bc - bcftools - bedtools - gfaffix - guile-3.0 ; for wrap-script - htslib ; tabix - fastix - multiqc - mummer - odgi - pafplot - parallel - pigz - python - python-igraph - r-data-table - r-minimal - rtg-tools - samtools - seqwish - smoothxg - time - vcfbub - vcflib - vg - wfmash)) - (home-page "https://doi.org/10.1101/2023.04.05.535718") - (synopsis "PanGenome Graph Builder") - (description "@command{pggb} builds + (package + (name "pggb") + (version "0.7.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pangenome/pggb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1k3ffl5h5jqnz9k9y5cjqr8z6hh0gyjfj4szggz11lncp5wkskgv")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan + #~'(("pggb" "bin/") + ("partition-before-pggb" "bin/") + ("scripts/" "bin/") + ("scripts" "bin/scripts")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'force-python3 + (lambda _ + (substitute* (find-files "scripts" "\\.py$") + (("/usr/bin/python") "/usr/bin/python3")))) + (add-before 'install 'patch-and-wrap-scripts + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "scripts/vcf_preprocess.sh" + (("bcftools ") + (string-append (search-input-file inputs "/bin/bcftools") " "))) + (wrap-script "scripts/net2communities.py" + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH")))))) + (add-after 'install 'wrap-scripts + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (file) + (wrap-script file + `("R_LIBS_SITE" ":" prefix + (,(getenv "R_LIBS_SITE"))) + `("PATH" ":" prefix + ,(map (lambda (input) (string-append input "/bin")) + '#$(map (lambda (label) + (or (this-package-input (string-append label "-hwcaps")) + (this-package-input label))) + (list "bc" + "bcftools" + "bedtools" + "gfaffix" + "htslib" + "multiqc" + "odgi" + "parallel" + "pigz" + "python" + "r-data-table" + "r-minimal" + "rtg-tools" + "samtools" + "seqwish" + "smoothxg" + "time" + "vcfbub" + "vg" + "wfmash")))))) + (list (string-append out "/bin/pggb") + (string-append out "/bin/partition-before-pggb") + (string-append out "/bin/gfa2evaluation.sh") + (string-append out "/bin/scripts/gfa2evaluation.sh")))))) + (add-after 'install 'substitute-file-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/bin/gfa2evaluation.sh") + (("/usr/local/bin/vcf_preprocess.sh") + (string-append out "/bin/vcf_preprocess.sh")) + (("/usr/local/bin/nucmer2vcf.R") + (string-append out "/bin/nucmer2vcf.R"))))))))) + (inputs + (list bc + bcftools + bedtools + gfaffix + guile-3.0 ; for wrap-script + htslib ; tabix + multiqc + odgi + parallel + pigz + python + python-igraph + r-data-table + r-minimal + rtg-tools + samtools + seqwish + smoothxg + time + vcfbub + vg + wfmash-0.14)) + (home-page "https://doi.org/10.1101/2023.04.05.535718") + (synopsis "PanGenome Graph Builder") + (description "@command{pggb} builds @url{https://doi.org/10.1146%2Fannurev-genom-120219-080406, pangenome} @url{https://doi.org/10.1038/nbt.4227, variation graphs} from a set of input sequences. @@ -2719,7 +2759,7 @@ such as the @url{https://github.com/vgteam/vg, vg} and @command{pggb} has been tested at scale in the @acronym{Human Pangenome Reference Consortium, HPRC} as a method to build a graph from the @url{https://doi.org/10.1101/2022.07.09.499321, draft human pangenome}.") - (license license:expat)))) + (license license:expat))) (define use-glibc-hwcaps (package-input-rewriting/spec @@ -4445,7 +4485,7 @@ automatically vectorize for different architectures without adapting the code.") (define-public r-rrbgen (package - (name "r-stitch") + (name "r-rrbgen") (version "0.0.6") (source (origin @@ -4554,6 +4594,7 @@ interface to the basic htslib. It can be easily included in a C++ program for scripting high-performance genomic analyses.") (license license:asl2.0))) + (define-public r-stitch (package (name "r-stitch") |