summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/bioinformatics.scm40
-rw-r--r--gnu/packages/patches/mosaicatcher-unbundle-htslib.patch49
3 files changed, 90 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 792ebac1e1..cf13d672bd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1432,6 +1432,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/module-init-tools-moduledir.patch	\
   %D%/packages/patches/monero-use-system-miniupnpc.patch			\
   %D%/packages/patches/mono-mdoc-timestamping.patch		\
+  %D%/packages/patches/mosaicatcher-unbundle-htslib.patch	\
   %D%/packages/patches/mozjs17-aarch64-support.patch		\
   %D%/packages/patches/mozjs24-aarch64-support.patch		\
   %D%/packages/patches/mozjs38-pkg-config-version.patch		\
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