diff options
| author | pjotrp | 2026-03-22 07:28:19 +0100 |
|---|---|---|
| committer | pjotrp | 2026-03-22 07:28:19 +0100 |
| commit | 206f0272dee8b0baee8d4d9a99702ba4dd3563bd (patch) | |
| tree | 6be5949ba0327a9816c63e88c31dab63788a1619 | |
| parent | 9ed57959fefa9a5bf0b6c158c0cd3dbf8dcf4f3f (diff) | |
| download | guix-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.scm | 236 |
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") |
