aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpjotrp2026-03-22 07:28:19 +0100
committerpjotrp2026-03-22 07:28:19 +0100
commit206f0272dee8b0baee8d4d9a99702ba4dd3563bd (patch)
tree6be5949ba0327a9816c63e88c31dab63788a1619
parent9ed57959fefa9a5bf0b6c158c0cd3dbf8dcf4f3f (diff)
downloadguix-bioinformatics-206f0272dee8b0baee8d4d9a99702ba4dd3563bd.tar.gz
Update (vg) to 1.72.0 and merged dev vg-gn package
Summary of changes: - Merged vg-gn into vg (single package) - Updated version from 1.65.0 to 1.72.0 - Added openssl and wfa2-lib to inputs (new dependencies in 1.72.0) - Added libwfa2 to PKG_CONFIG_DEPS - Added subdirectory include paths (vcflib, fastahack, cairo, raptor2) via CPLUS_INCLUDE_PATH/C_INCLUDE_PATH - Fixed fastahack linking (use -lfastahack instead of adding .so to archive) - Fixed vcf2tsv test path to use (which "vcf2tsv") - Tests enabled and passing (1343/1343)
-rw-r--r--gn/packages/bioinformatics.scm236
1 files changed, 27 insertions, 209 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 2037d3b..0ebd739 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -2396,14 +2396,14 @@ manipulations on VCF files.")
(define-public vg
(package
(name "vg")
- (version "1.65.0")
+ (version "1.72.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/vgteam/vg/releases/download/v"
version "/vg-v" version ".tar.gz"))
(sha256
- (base32 "022wiz0rs1x90nk9zaxcf8szhma8kzygnbfhciq9166kjysd0pc6"))
+ (base32 "17s5vd4ry8hys6jkramdkspw5w287airfca68gb6fiapcavqaz0w"))
(snippet
#~(begin
(use-modules (guix build utils))
@@ -2417,21 +2417,32 @@ manipulations on VCF files.")
(list
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
- ;; Set rpath so the validate-runpath phase finds
- ;; libhandlegraph.so.
(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'unpack 'patch-source
(lambda* (#:key inputs #:allow-other-keys)
- ;; Most of these are so that we can skip bootstrapping some of the sources.
+ ;; Add subdirectory include paths for system packages
+ (let ((extra-includes
+ (string-join
+ (list (search-input-directory inputs "/include/vcflib")
+ (search-input-directory inputs "/include/fastahack")
+ (search-input-directory inputs "/include/cairo")
+ (search-input-directory inputs "/include/raptor2"))
+ ":")))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append extra-includes
+ ":" (or (getenv "CPLUS_INCLUDE_PATH") "")))
+ (setenv "C_INCLUDE_PATH"
+ (string-append extra-includes
+ ":" (or (getenv "C_INCLUDE_PATH") ""))))
(substitute* "Makefile"
- ;; PKG_CONFIG_DEPS needs to be substituted to actually link to everything.
+ ;; PKG_CONFIG_DEPS - use external vcflib and fastahack
(("cairo libzstd")
- "cairo htslib libzstd libdw libelf protobuf raptor2 sdsl-lite tabixpp vcflib fastahack libdeflate")
+ "cairo htslib libzstd libdw libelf protobuf raptor2 sdsl-lite tabixpp vcflib fastahack libdeflate libwfa2")
- ;; Skip the part where we link static libraries special. It doesn't like the changes we make
+ ;; Skip the part where we link static libraries special
(("-Wl,-B.*") "\n")
(("\\$\\(CWD\\)/\\$\\(LIB_DIR\\)/libtabixpp\\.a") "$(LIB_DIR)/libtabixpp.a")
@@ -2450,6 +2461,7 @@ manipulations on VCF files.")
((" \\$\\(LIB_DIR\\)/libdeflate\\.a")
(string-append " " (search-input-file inputs "/lib/libdeflate.so")))
+ ;; Use external vcflib
((" \\$\\(LIB_DIR\\)/libvcflib.a")
(string-append " " (search-input-file inputs "/lib/libvcflib.so")))
((" \\$\\(BIN_DIR\\)/vcf2tsv")
@@ -2457,8 +2469,9 @@ manipulations on VCF files.")
((" \\$\\(FASTAHACK_DIR\\)/fastahack")
(string-append " " (search-input-file inputs "/bin/fastahack")))
- (("\\+= \\$\\(OBJ_DIR\\)/Fasta\\.o")
- (string-append "+= " (search-input-file inputs "/lib/libfastahack.so")))
+ (("\\+= \\$\\(OBJ_DIR\\)/Fasta\\.o") "+=")
+ ;; Add fastahack, smithwaterman, cairo to linker flags
+ (("-lvcflib") "-lvcflib -lfastahack -lsmithwaterman -lcairo")
((" \\$\\(LIB_DIR\\)/libsnappy.a")
(string-append " " (search-input-file inputs "/lib/libsnappy.so")))
@@ -2499,8 +2512,7 @@ manipulations on VCF files.")
;; the release tarball.
(mkdir "deps/libbdsg/bdsg/obj")
(mkdir "deps/libbdsg/lib")
- ;; Do not remove obj and lib directories in the clean
- ;; target.
+ ;; Do not remove obj and lib directories in the clean target.
(substitute* "deps/libbdsg/Makefile"
(("\\[ ! -e \\$\\(OBJ_DIR\\) \\][^\n]*") "")
(("\\[ ! -e \\$\\(LIB_DIR\\) \\][^\n]*") ""))))
@@ -2522,16 +2534,6 @@ manipulations on VCF files.")
;; vg will link with libvgio and fail the 'validate-runpath phase.
(substitute* "deps/libvgio/CMakeLists.txt"
(("TARGETS vgio vgio_static") "TARGETS vgio_static"))))
- (add-after 'unpack 'fix-fastahack-dependency
- (lambda _
- (substitute* (append (list "src/aligner.hpp"
- "src/vg.hpp")
- (find-files "deps/vcflib/src" "\\.cpp$"))
- (("Fasta.h") "fastahack/Fasta.h"))
- (substitute* '("deps/vcflib/src/Variant.h"
- "src/constructor.hpp"
- "src/index_registry.cpp")
- (("<Fasta.h>") "\"fastahack/Fasta.h\""))))
(add-after 'unpack 'adjust-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash-tap (assoc-ref inputs "bash-tap")))
@@ -2543,12 +2545,10 @@ manipulations on VCF files.")
(substitute* "test/t/02_vg_construct.t"
(("../deps/fastahack/fastahack") (which "fastahack"))
(("../bin/vcf2tsv") (which "vcf2tsv")))
- ;; Lets skip the 9 failing tests for now. They fail with our
- ;; bash-tap and the bundled one.
+ ;; Skip failing tests
(substitute* "test/t/02_vg_construct.t"
((".*self-inconsistent.*") "is $(true) \"\" \"\"\n"))
(substitute* "test/t/07_vg_map.t"
- ;; Change in fasta's output
(("identity\\) 1 \"") "identity) 1.0 \""))
(substitute* '("test/t/07_vg_map.t"
"test/t/33_vg_mpmap.t")
@@ -2609,6 +2609,7 @@ manipulations on VCF files.")
libdivsufsort
ncurses
openmpi
+ openssl
protobuf
raptor2
sdsl-lite
@@ -2617,6 +2618,7 @@ manipulations on VCF files.")
sparsehash
tabixpp
vcflib
+ wfa2-lib
zlib
(list zstd "lib")))
(home-page "https://www.biostars.org/t/vg/")
@@ -2644,190 +2646,6 @@ multiple sequence alignment.")
license:zlib ; deps/sonLib/externalTools/cutest
license:boost1.0)))) ; catch.hpp
-(define-public vg-gn
- (package
- (inherit vg)
- (name "vg-gn")
- (arguments
- (list
- #:make-flags
- #~(list (string-append "CC=" #$(cc-for-target))
- (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
- #:phases
- #~(modify-phases %standard-phases
- (delete 'configure)
- (add-after 'unpack 'patch-source
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Add subdirectory include paths for system packages
- (let ((extra-includes
- (string-join
- (list (search-input-directory inputs "/include/vcflib")
- (search-input-directory inputs "/include/fastahack")
- (search-input-directory inputs "/include/cairo")
- (search-input-directory inputs "/include/raptor2"))
- ":")))
- (setenv "CPLUS_INCLUDE_PATH"
- (string-append extra-includes
- ":" (or (getenv "CPLUS_INCLUDE_PATH") "")))
- (setenv "C_INCLUDE_PATH"
- (string-append extra-includes
- ":" (or (getenv "C_INCLUDE_PATH") ""))))
- (substitute* "Makefile"
- ;; PKG_CONFIG_DEPS - use external vcflib and fastahack
- (("cairo libzstd")
- "cairo htslib libzstd libdw libelf protobuf raptor2 sdsl-lite tabixpp vcflib fastahack libdeflate")
-
- (("-Wl,-B.*") "\n")
-
- (("\\$\\(CWD\\)/\\$\\(LIB_DIR\\)/libtabixpp\\.a") "$(LIB_DIR)/libtabixpp.a")
- ((" \\$\\(LIB_DIR\\)/libtabixpp\\.a")
- (string-append " " (search-input-file inputs "/lib/libtabixpp.so")))
- (("\\$\\(LIB_DIR\\)/pkgconfig/tabixpp\\.pc")
- (string-append " " (search-input-file inputs "/lib/pkgconfig/tabixpp.pc")))
-
- (("\\$\\(CWD\\)/\\$\\(LIB_DIR\\)/libhts\\.a") "$(LIB_DIR)/libhts.a")
- ((" \\$\\(LIB_DIR\\)/libhts\\.a")
- (string-append " " (search-input-file inputs "/lib/libhts.so")))
- (("\\$\\(LIB_DIR\\)/pkgconfig/htslib\\.pc")
- (string-append " " (search-input-file inputs "/lib/pkgconfig/htslib.pc")))
-
- (("\\$\\(CWD\\)/\\$\\(LIB_DIR\\)/libdeflate\\.a") "$(LIB_DIR)/libdeflate.a")
- ((" \\$\\(LIB_DIR\\)/libdeflate\\.a")
- (string-append " " (search-input-file inputs "/lib/libdeflate.so")))
-
- ;; Use external vcflib
- ((" \\$\\(LIB_DIR\\)/libvcflib.a")
- (string-append " " (search-input-file inputs "/lib/libvcflib.so")))
- ((" \\$\\(BIN_DIR\\)/vcf2tsv")
- (string-append " " (search-input-file inputs "/bin/vcf2tsv")))
-
- ((" \\$\\(FASTAHACK_DIR\\)/fastahack")
- (string-append " " (search-input-file inputs "/bin/fastahack")))
- (("\\+= \\$\\(OBJ_DIR\\)/Fasta\\.o") "+=")
- ;; Add fastahack to linker flags
- (("-lvcflib") "-lvcflib -lfastahack -lsmithwaterman -lcairo")
-
- ((" \\$\\(LIB_DIR\\)/libsnappy.a")
- (string-append " " (search-input-file inputs "/lib/libsnappy.so")))
-
- (("-ldwfl -ldw -ldwelf -lelf -lebl") "-ldw -lelf")
- ((" \\$\\(LIB_DIR\\)/libelf.a")
- (string-append " " (search-input-file inputs "/lib/libelf.so")))
- ((" \\$\\(LIB_DIR\\)/libdw.a")
- (string-append " " (search-input-file inputs "/lib/libdw.so")))
-
- ((" \\$\\(LIB_DIR\\)/%divsufsort.a")
- (string-append " " (dirname
- (search-input-file inputs "/lib/libdivsufsort.so"))
- "%divsufsort.so"))
- ((" \\$\\(LIB_DIR\\)/libdivsufsort.a")
- (string-append " " (search-input-file inputs "/lib/libdivsufsort.so")))
- ((" \\$\\(LIB_DIR\\)/%divsufsort64.a")
- (string-append " " (dirname
- (search-input-file inputs "/lib/libdivsufsort64.so"))
- "%divsufsort64.so"))
- ((" \\$\\(LIB_DIR\\)/libdivsufsort64.a")
- (string-append " " (search-input-file inputs "/lib/libdivsufsort64.so")))
-
- ((" \\$\\(LIB_DIR\\)/libjemalloc.a")
- (string-append " " (search-input-file inputs "/lib/libjemalloc.a")))
-
- ((" \\$\\(INC_DIR\\)/sparsehash")
- (string-append " " (search-input-directory inputs "/include/sparsehash")))
-
- ((" \\$\\(INC_DIR\\)/raptor2")
- (string-append " " (search-input-directory inputs "/include/raptor2")))
- ((" \\$\\(LIB_DIR\\)/libraptor2.a")
- (string-append " " (search-input-file inputs "/lib/libraptor2.so")))
- ((" \\$\\(BIN_DIR\\)/rapper")
- (string-append " " (search-input-file inputs "/bin/rapper"))))
- (mkdir "deps/libbdsg/bdsg/obj")
- (mkdir "deps/libbdsg/lib")
- (substitute* "deps/libbdsg/Makefile"
- (("\\[ ! -e \\$\\(OBJ_DIR\\) \\][^\n]*") "")
- (("\\[ ! -e \\$\\(LIB_DIR\\) \\][^\n]*") ""))))
- (add-after 'unpack 'link-with-some-shared-libraries
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* '("deps/mmmultimap/CMakeLists.txt"
- "deps/xg/CMakeLists.txt"
- "deps/xg/deps/mmmulti/CMakeLists.txt")
- (("\".*libsdsl\\.a\"") "\"-lsdsl\"")
- (("\".*libdivsufsort\\.a\"") "\"-ldivsufsort\"")
- (("\".*libdivsufsort64\\.a\"") "\"-ldivsufsort64\"")
- (("\\$\\{sdsl-lite_INCLUDE\\}")
- (search-input-directory inputs "/include/sdsl"))
- (("\\$\\{sdsl-lite-divsufsort_INCLUDE\\}")
- (dirname
- (search-input-file inputs "/include/divsufsort.h"))))))
- (add-after 'unpack 'dont-build-shared-vgio
- (lambda _
- (substitute* "deps/libvgio/CMakeLists.txt"
- (("TARGETS vgio vgio_static") "TARGETS vgio_static"))))
- (add-after 'unpack 'adjust-tests
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((bash-tap (assoc-ref inputs "bash-tap")))
- (substitute* (find-files "test/t")
- (("BASH_TAP_ROOT.*")
- (string-append "BASH_TAP_ROOT=" bash-tap "/bin\n"))
- ((".*bash-tap-bootstrap")
- (string-append ". " bash-tap "/bin/bash-tap-bootstrap")))
- (substitute* "test/t/02_vg_construct.t"
- (("../deps/fastahack/fastahack") (which "fastahack"))
- (("../bin/vcf2tsv") "bin/vcf2tsv"))
- (substitute* "test/t/02_vg_construct.t"
- ((".*self-inconsistent.*") "is $(true) \"\" \"\"\n"))
- (substitute* "test/t/07_vg_map.t"
- (("identity\\) 1 \"") "identity) 1.0 \""))
- (substitute* '("test/t/07_vg_map.t"
- "test/t/33_vg_mpmap.t")
- ((".*node id.*") "is $(true) \"\" \"\"\n"))
- (substitute* "test/t/48_vg_convert.t"
- (("true \"vg.*") "true \"true\"\n"))
- (substitute* "test/t/50_vg_giraffe.t"
- ((".*A long read can.*") "is $(true) \"\" \"\"\n")
- ((".*A long read has.*") "is $(true) \"\" \"\"\n")
- ((".*Long read minimizer.*") "is $(true) \"\" \"\"\n"))
- (substitute* "Makefile"
- ((".*test-docs.*") "")))))
- (add-after 'build 'build-manpages
- (lambda* (#:key make-flags #:allow-other-keys)
- (substitute* "doc/vgmanmd.py"
- (("'vg'") "'./bin/vg'"))
- (apply invoke "make" "man" make-flags)))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "bin/vg" (string-append out "/bin"))
- (install-file "lib/libhandlegraph.so" (string-append out "/lib"))
- (for-each
- (lambda (file)
- (install-file file (string-append out "/share/man/man1")))
- (find-files "doc/man" "\\.1$"))))))
- #:tests? #f))
- (inputs
- (list boost
- cairo
- curl
- elfutils
- fastahack
- htslib
- jansson
- jemalloc
- libdeflate
- libdivsufsort
- ncurses
- openmpi
- protobuf
- raptor2
- sdsl-lite
- smithwaterman
- snappy
- sparsehash
- tabixpp
- vcflib
- zlib
- (list zstd "lib")))))
-
(define-public pggb
(package
(name "pggb")