about summary refs log tree commit diff
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")