[bug#33357] gnu: Add nanopolish.

Message ID 20181112205949.20289-1-madalinionel.patrascu@mdc-berlin.de
State New
Headers show
Series
  • [bug#33357] gnu: Add nanopolish.
Related show

Checks

Context Check Description
cbaines/applying patch fail Apply failed

Commit Message

pimi Nov. 12, 2018, 8:59 p.m. UTC
* gnu/packages/bioinformatics.scm (nanopolish): New variable.
---
 gnu/packages/bioinformatics.scm | 73 +++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

Comments

Ricardo Wurmus Nov. 15, 2018, 9:25 p.m. UTC | #1
Hi,

> * gnu/packages/bioinformatics.scm (nanopolish): New variable.

Thanks!  I applied it to “master” with minor changes with commit
30f0d21b4.

--
Ricardo

Patch

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index bf49f4e1d..fa1a91a22 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -14282,3 +14282,76 @@  both read length (longer is better) and read identity (higher is better) when
 choosing which reads pass the filter.")
       (license (list license:gpl3       ;filtlong
                      license:asl2.0))))) ;histogram.py
+
+(define-public nanopolish
+  ;; The recommended way to install is to clone the git repository
+  ;; https://github.com/jts/nanopolish#installing-a-particular-release
+  ;; also, the differences between release and current version seems to be significative
+  (let ((commit "50e8b5cc62f9b46f5445f5c5e8c5ab7263ea6d9d")
+        (revision "1"))
+    (package
+      (name "nanopolish")
+      (version (git-version "0.10.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jts/nanopolish.git")
+               (commit commit)
+               (recursive? #t)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "09j5gz57yr9i34a27vbl72i4g8syv2zzgmsfyjq02yshmnrvkjs6"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:make-flags
+         `("HDF5=noinstall" "EIGEN=noinstall" "HTS=noinstall" "CC=gcc")
+         #:tests? #f                    ; no check target
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'find-eigen
+             (lambda* (#:key inputs #:allow-other-keys)
+               (setenv "CPATH"
+                       (string-append (assoc-ref inputs "eigen") "/include/eigen3"))
+               #t))
+           (delete 'configure)
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (scripts (string-append out "/share/nanopolish/scripts")))
+
+                 (install-file "nanopolish" bin)
+                 (for-each (lambda (file) (install-file file scripts))
+                           (find-files "scripts" ".*"))
+                 #t)))
+           (add-after 'install 'wrap-programs
+             (lambda* (#:key outputs #:allow-other-keys)
+               (for-each (lambda (file)
+                           (wrap-program file `("PYTHONPATH" ":" prefix (,path))))
+                         (find-files "/share/nanopolish/scripts" "\\.py"))
+               (for-each (lambda (file)
+                           (wrap-program file `("PERL5LIB" ":" prefix (,path))))
+                         (find-files  "/share/nanopolish/scripts" "\\.pl"))
+               #t)))))
+      (inputs
+       `(("eigen" ,eigen)
+         ("hdf5" ,hdf5)
+         ("htslib" ,htslib)
+         ("perl" ,perl)
+         ("python" ,python)
+         ("python-biopython" ,python-biopython)
+         ("python-numpy" ,python-numpy)
+         ("python-pysam" ,python-pysam)
+         ("python-scikit-learn" , python-scikit-learn)
+         ("python-scipy" ,python-scipy)
+         ("zlib" ,zlib)))
+      (home-page "https://github.com/jts/nanopolish")
+      (synopsis "Signal-level analysis of Oxford Nanopore sequencing data")
+      (description
+       "This package analyses the Oxford Nanopore sequencing data at signal-level.
+Nanopolish can calculate an improved consensus sequence for a draft genome
+assembly, detect base modifications, call SNPs (Single nucleotide polymorphisms)
+and indels with respect to a reference genome and more.")
+      ;; for auxiliary scripts is not mentioned any license
+      (license license:expat))))