diff options
| -rw-r--r-- | gn/packages/pangenome.scm | 75 |
1 files changed, 73 insertions, 2 deletions
diff --git a/gn/packages/pangenome.scm b/gn/packages/pangenome.scm index e2a1fa1..e2758ee 100644 --- a/gn/packages/pangenome.scm +++ b/gn/packages/pangenome.scm @@ -48,6 +48,7 @@ #:use-module (gnu packages elf) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) + #:use-module (gnu packages gcc) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages java) #:use-module (gnu packages llvm) @@ -978,7 +979,10 @@ The path-guided stochastic gradient descent based 1D sort implemented in smoothxg time util-linux - wfmash-0.14)) + ;; Pinned to the wfmash-0.14 post-release snapshot used by + ;; the workshop (commit 7bf8988); also avoids the ABI skew + ;; with the surrounding wfmash-0.14 release. + wfmash-0.14-snapshot)) (home-page "https://doi.org/10.1101/2023.04.05.535718") (synopsis "PanGenome Graph Builder") (description "pggb builds pangenome variation graphs from a set of input @@ -1027,6 +1031,56 @@ sequences using wfmash, seqwish, smoothxg, and gfaffix.") (prepend jemalloc) (delete "libdeflate"))))) +(define-public wfmash-0.14-snapshot + ;; wfmash-0.14 pinned at a post-0.14.0 commit for the workshop. + ;; Inherits everything from wfmash-0.14; overrides only the source + ;; (now a git snapshot) and the build-check-prerequisites phase that + ;; hardcodes the upstream tarball directory name. + (let* ((commit "7bf89888a09d517635c77822e9ea922e7dfc7fb6") + (revision "0") + (snapshot-version (git-version "0.14.0" revision commit)) + ;; Out-of-source cmake build: cwd is .../build/, source is at + ;; ../source/ (gnu-build-system unpacks git-fetch checkouts + ;; into a directory literally named "source", regardless of + ;; the package's file-name). + (source-dir "source")) + (package + (inherit wfmash-0.14) + (version snapshot-version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/waveygang/wfmash") + (commit commit))) + (file-name source-dir) + (sha256 + (base32 "0gffr253c571pzr7a8rmj8ir6i0nspbrsmqa727wmsgzc277ms0n")) + (snippet + #~(begin + (use-modules (guix build utils)) + (delete-file-recursively "src/common/atomic_queue") + (substitute* "src/align/include/computeAlignments.hpp" + (("\"common/atomic_queue/atomic_queue.h\"") + "<atomic_queue/atomic_queue.h>")) + (substitute* (find-files "." "CMakeLists\\.txt") + (("-march=native ") "")))))) + (arguments + (substitute-keyword-arguments (package-arguments wfmash-0.14) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (replace 'build-check-prerequisites + (lambda _ + (let ((wfa2-lib #$(string-append + "../" source-dir + "/src/common/wflign/deps/WFA2-lib"))) + (substitute* (string-append wfa2-lib "/Makefile") + (("-march=x86-64-v3") "")) + (substitute* (string-append wfa2-lib "/tests/wfa.utest.sh") + (("\\\\time -v") "time")) + (invoke "make" "-C" wfa2-lib + #$(string-append "CC=" (cc-for-target))))))))))))) + ;; wfa2-lib v2.3.6 with cmake build, pkg-config support (define-public wfa2-lib/cmake (package @@ -1863,6 +1917,18 @@ and supporting tools like minimap2, samtools, bedtools, bwa-mem2, meryl, kfilt, miniprot, pangene, wally, and vcfbub.") (license license:expat))) +(define mempang-workshop-pangenomes + ;; pangenomes propagates the current vg (1.72.0) and wfmash-0.14 + ;; release; the workshop is pinned to vg 1.71.0 and a wfmash-0.14 + ;; post-release commit. Drop both here so the workshop can list + ;; the pinned versions directly without a profile collision. + (package + (inherit pangenomes) + (propagated-inputs + (modify-inputs (package-propagated-inputs pangenomes) + (delete "vg") + (delete "wfmash"))))) + (define-public mempang-workshop (package (name "mempang-workshop") @@ -1876,7 +1942,12 @@ kfilt, miniprot, pangene, wally, and vcfbub.") (use-modules (guix build utils)) (mkdir-p (string-append #$output "/bin"))))) (propagated-inputs - (list pangenomes + (list mempang-workshop-pangenomes + vg-1.71 + wfmash-0.14-snapshot + ;; libgcc_s.so.1 for the prebuilt impop_k (Part 6) binaries + ;; that ship with the MarsicoFL/memimpopk repo. + (list gcc "lib") bc bcftools coreutils |
