aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2024-02-23 21:28:00 +0000
committerArun Isaac2024-02-23 21:28:00 +0000
commit8de10edc74100b49589949778c5bd84c72e83deb (patch)
tree094a203ad3e88f296624ba3e38e603c59a8bc249
parent73f615b37829354a90a015caf8880e1c49503ddd (diff)
downloadguix-bioinformatics-8de10edc74100b49589949778c5bd84c72e83deb.tar.gz
gn: Add seqlib.
* gn/packages/bioinformatics.scm (seqlib): New variable.
-rw-r--r--gn/packages/bioinformatics.scm65
1 files changed, 65 insertions, 0 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index c3e5020..b0590ca 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -4485,3 +4485,68 @@ and writing using 8, 16, 24 or 32 bits per probability, using Layout =
ploidy 2. Any other format specification may crash unexpectedly
without a properly defined error.")
(license license:gpl3)))
+
+(define-public seqlib
+ (package
+ (name "seqlib")
+ (version "0.1.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Zilong-Li/SeqLib")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1hczg1swghnxm6af74l09crdgf7l282jabmyck9mi5bk6vg9s1pn"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ ;; Patch build scripts to unbundle htslib and build a
+ ;; seqlib shared library using libtool.
+ (add-after 'unpack 'patch-build-scripts
+ (lambda _
+ ;; Initialize libtool.
+ (substitute* "configure.ac"
+ (("AM_INIT_AUTOMAKE\\(foreign\\)\n" all)
+ (string-append all "LT_INIT\n")))
+ (substitute* "Makefile.am"
+ ;; Install headers
+ (("^SUBDIRS" all)
+ (string-append "nobase_include_HEADERS = "
+ (string-join (find-files "SeqLib"))
+ "\n" all))
+ ;; Do not recurse into htslib submodule.
+ (("htslib") "")
+ ;; Remove install target override.
+ (("^install:") "")
+ (("^\tmkdir -p lib && cp src/libseqlib.a /libhts.a lib") ""))
+ (substitute* "src/Makefile.am"
+ ;; Build libtool library.
+ (("noinst_LIBRARIES = libseqlib\\.a")
+ "lib_LTLIBRARIES = libseqlib.la\nlibseqlib_la_LIBADD = -ljsoncpp")
+ (("libseqlib\\.a") "libseqlib.la")
+ (("libseqlib_a") "libseqlib_la"))
+ (substitute* (list "SeqLib/BamHeader.h"
+ "SeqLib/BamRecord.h"
+ "SeqLib/RefGenome.h"
+ "src/ReadFilter.cpp")
+ ;; Patch path to htslib headers.
+ (("\"htslib/htslib/([^\"]*)\"" all header)
+ (string-append "<htslib/" header ">"))))))))
+ (inputs
+ (list zlib))
+ (native-inputs
+ (list autoconf automake libtool))
+ ;; seqlib headers include headers from htslib and jsoncpp. So,
+ ;; they are propagated inputs.
+ (propagated-inputs
+ (list htslib jsoncpp))
+ (home-page "https://github.com/Zilong-Li/SeqLib")
+ (synopsis "C++ htslib interface for manipulating sequence data and VCF")
+ (description "@code{seqlib} is a C++ htslib interface for manipulating sequence data
+and VCF files.")
+ (license (list license:expat ; SeqLib/IntervalTree.h, SeqLib/aho_corasick.hpp,
+ ; json/json-forwards.h, json/json.h, src/jsoncpp.cpp, src/ssw.c,
+ license:asl2.0)))) ; main license