[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#71414] [PATCH v2] gnu: Add mashmap.
From: |
gemmaro |
Subject: |
[bug#71414] [PATCH v2] gnu: Add mashmap. |
Date: |
Mon, 17 Jun 2024 12:32:28 +0900 |
* gnu/packages/bioinformatics.scm (mashmap): New variable.
Change-Id: I8f0a9827faa560765ef50af40b908a745c6e7ddd
---
This fixes build failures on some platforms by excluding them.
gnu/packages/bioinformatics.scm | 72 +++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index cecd94bbb7..85262b51cf 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -26,6 +26,7 @@
;;; Copyright © 2022, 2023 Navid Afkhami <navid.afkhami@mdc-berlin.de>
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2024 Alexis Simon <alexis.simon@runbox.com>
+;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -172,6 +173,7 @@ (define-module (gnu packages bioinformatics)
#:use-module (gnu packages wget)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages xdisorg)
#:use-module (guix platform)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
@@ -22617,6 +22619,76 @@ (define-public hh-suite
based on the pairwise alignment of hidden Markov models (HMMs).")
(license license:gpl3+)))
+(define-public mashmap
+ (package
+ (name "mashmap")
+ (version "3.1.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marbl/MashMap")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0iqgcx5jk6asihdvzv2sa5v373y9k9fsd2a2in25ragil8z8nckp"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gnuplot (string-append (assoc-ref inputs
+ "gnuplot")
+ "/bin/gnuplot"))
+ (xclip (string-append (assoc-ref inputs "xclip")
+ "/bin/xclip")))
+ (substitute* "scripts/generateDotPlot"
+ (("gnuplot --version")
+ (string-append gnuplot " --version"))
+ (("my \\$cmd = \"gnuplot\";")
+ (string-append "my $cmd = \"" gnuplot "\";"))
+ (("xclip -o")
+ (string-append xclip " -o"))))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ (invoke "../build/bin/mashmap"
+ "-r" "../source/data/scerevisiae8.fa.gz"
+ "-q" "../source/data/scerevisiae8.fa.gz"
+ "--pi" "95"
+ "-n" "1"
+ "-Y" "#"
+ "-o" "scerevisiae8.paf")
+ (invoke "../source/scripts/test.sh"
+ "../source/data/scerevisiae8.fa.gz.fai"
+ "scerevisiae8.paf" "0.92")))))
+ (add-after 'install 'install-script
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "../source/scripts/generateDotPlot"
+ (string-append out
"/share/mashmap"))))))))
+ (native-inputs (list bedtools util-linux))
+ (inputs (list gsl
+ zlib
+ htslib
+ perl
+ gnuplot
+ xclip))
+ (home-page "https://github.com/marbl/MashMap")
+ (synopsis "Fast approximate aligner for long DNA sequences")
+ (description
+ "MashMap implements a fast and approximate algorithm for computing
+local alignment boundaries between long DNA sequences. It can be
+useful for mapping genome assembly or long reads (PacBio/ONT) to
+reference genome(s).")
+ ;; Some platforms fail to build/check this pacakge.
+ ;; armhf-linux: It doesn't have a type __uint128_t.
+ ;; i686-linux: Check fails due to the differences with bedtools results.
+ (supported-systems '("x86_64-linux" "aarch64-linux"))
+ (license license:public-domain)))
+
(define-public wfmash
(package
(name "wfmash")
base-commit: bd5c61781c13611ed16686513980907c6ee34ae6
--
2.45.1