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
|