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 @@ (define-public mosaik ;; 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