summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2021-05-29 07:25:08 +0200
committerRicardo Wurmus <rekado@elephly.net>2021-05-29 07:26:15 +0200
commite3cde9aaf8dfef17299987590db11aa1f4df418b (patch)
tree85a8d8038c371cc9a910cc9c923af4b07e57c502 /gnu/packages
parent64907645ec86be4a12db66c98343a9e1ea6f781d (diff)
gnu: Add mosaicatcher.
* gnu/packages/patches/mosaicatcher-unbundle-htslib.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/bioinformatics.scm (mosaicatcher): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/bioinformatics.scm40
-rw-r--r--gnu/packages/patches/mosaicatcher-unbundle-htslib.patch49
2 files changed, 89 insertions, 0 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f38c0c07ef..2a7443314a 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -6170,6 +6170,46 @@ Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
;; 2. MD5 implementation - RSA Data Security, RFC 1321
(license (list license:gpl2+ license:public-domain)))))
+(define-public mosaicatcher
+ (package
+ (name "mosaicatcher")
+ (version "0.3.1")
+ (source (origin
+ ;; There are no release tarballs nor tags.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/friendsofstrandseq/mosaicatcher")
+ (commit (string-append version "-dev"))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1n2s5wvvj2y0vfgjkg1q11xahpbagxz7h2vf5q7qyy25s12kbzbd"))
+ (patches (search-patches "mosaicatcher-unbundle-htslib.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #false ; there are no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "src")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((target (assoc-ref outputs "out"))
+ (bin (string-append target "/bin"))
+ (share (string-append target "/share/mosaicatcher")))
+ (install-file "mosaic" bin)
+ (mkdir-p share)
+ (copy-recursively "../R" share)))))))
+ (inputs
+ `(("boost" ,boost)
+ ("htslib" ,htslib)))
+ (home-page "https://github.com/friendsofstrandseq/mosaicatcher")
+ (synopsis "Count and classify Strand-seq reads")
+ (description
+ "Mosaicatcher counts Strand-seq reads and classifies strand states of
+each chromosome in each cell using a Hidden Markov Model.")
+ (license license:expat)))
+
(define-public ngs-sdk
(package
(name "ngs-sdk")
diff --git a/gnu/packages/patches/mosaicatcher-unbundle-htslib.patch b/gnu/packages/patches/mosaicatcher-unbundle-htslib.patch
new file mode 100644
index 0000000000..262895ddcf
--- /dev/null
+++ b/gnu/packages/patches/mosaicatcher-unbundle-htslib.patch
@@ -0,0 +1,49 @@
+--- a/src/CMakeLists.txt 2021-05-28 13:07:25.655107983 +0200
++++ b/src/CMakeLists.txt 2021-05-28 13:09:55.764025497 +0200
+@@ -21,24 +21,6 @@
+
+
+
+-### Link HTSlib
+-
+-ExternalProject_Add(htslib
+- PREFIX ${CMAKE_BINARY_DIR}/htslib
+- GIT_REPOSITORY "https://github.com/samtools/htslib.git"
+- GIT_TAG "1.3.1"
+- UPDATE_COMMAND ""
+- BUILD_IN_SOURCE 1
+- CONFIGURE_COMMAND ""
+- BUILD_COMMAND make
+- INSTALL_COMMAND make install prefix=${CMAKE_BINARY_DIR}/htslib
+- LOG_DOWNLOAD 1
+-)
+-link_directories (${CMAKE_BINARY_DIR}/htslib/lib)
+-include_directories (${CMAKE_BINARY_DIR}/htslib/include)
+-
+-
+-
+ ### Set version
+
+ # Get the current working branch
+@@ -64,13 +46,6 @@
+
+ # 2. Boost version from find_package (Boost_VERSION)
+
+-# 3. Get HTSlib version from git
+-execute_process(
+- COMMAND git describe --always
+- WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/htslib
+- OUTPUT_VARIABLE HTSLIB_VERSION
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+-)
+ set(HTSLIB_VERSION "1.3.1 ${HTSLIB_VERSION}")
+
+ # 4. write version.hpp file
+@@ -105,7 +80,6 @@
+ add_executable (mosaic main.cpp ${HEADER_FILES})
+ target_link_libraries (mosaic LINK_PUBLIC ${Boost_LIBRARIES})
+ target_link_libraries (mosaic LINK_PUBLIC hts)
+-add_dependencies (mosaic htslib)
+
+
+ ### Doxygen API documentation