summary refs log tree commit diff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2023-07-05 16:38:24 +0200
committerRicardo Wurmus <rekado@elephly.net>2023-07-06 23:29:05 +0200
commitdf5bf65f261dfd1e09096b014d5dfef052be994a (patch)
tree1aad6f5a03c845d901a4c8f9072e815e6d10a323 /gnu/packages/bioinformatics.scm
parent961ffca1c75141cbb351d143b22b673638e9659d (diff)
downloadguix-df5bf65f261dfd1e09096b014d5dfef052be994a.tar.gz
gnu: bismark: Update to 0.24.1.
* gnu/packages/bioinformatics.scm (bismark): Update to 0.24.1.
[source]: Delete bundled plot.ly.
[arguments]: Use plain list; remove trailing #T from build phases; adjust
'replace-plotly.js phase to account for use of script tags; adjust 'install
phase to install documentation in markdown format; add 'configure phase for
replacing references to tools.
[inputs]: Add bowtie, hisat2, minimap2, and samtools.
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm137
1 files changed, 79 insertions, 58 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 62bb0074b2..09cd606b8b 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12300,7 +12300,7 @@ Browser.")
 (define-public bismark
   (package
     (name "bismark")
-    (version "0.20.1")
+    (version "0.24.1")
     (source
      (origin
        (method git-fetch)
@@ -12310,69 +12310,90 @@ Browser.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0xchm3rgilj6vfjnyzfzzymfd7djr64sbrmrvs3njbwi66jqbzw9"))))
+         "0j4dy33769f0jr2w1brb710zxwpg3zwjlnvlcpi5pr6mqc8dkg8n"))
+       (snippet '(delete-file "plotly/plot.ly"))))
     (build-system perl-build-system)
     (arguments
-     `(#:tests? #f                      ; there are no tests
-       #:modules ((guix build utils)
+     (list
+      #:tests? #f                       ; there are no tests
+      #:modules '((guix build utils)
                   (ice-9 popen)
                   (srfi srfi-26)
                   (guix build perl-build-system))
-       #:phases
-       (modify-phases %standard-phases
-         ;; The bundled plotly.js is minified.
-         (add-after 'unpack 'replace-plotly.js
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((file (assoc-ref inputs "plotly.js"))
-                    (installed "plotly/plotly.js"))
-               (let ((minified (open-pipe* OPEN_READ "uglifyjs" file)))
-                 (call-with-output-file installed
-                   (cut dump-port minified <>))))
-             #t))
-         (delete 'configure)
-         (delete 'build)
-         (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin"))
-                    (share   (string-append out "/share/bismark"))
-                    (docdir  (string-append out "/share/doc/bismark"))
-                    (docs    '("Docs/Bismark_User_Guide.html"))
-                    (scripts '("bismark"
-                               "bismark_genome_preparation"
-                               "bismark_methylation_extractor"
-                               "bismark2bedGraph"
-                               "bismark2report"
-                               "coverage2cytosine"
-                               "deduplicate_bismark"
-                               "filter_non_conversion"
-                               "bam2nuc"
-                               "bismark2summary"
-                               "NOMe_filtering")))
-               (substitute* "bismark2report"
-                 (("\\$RealBin/plotly")
-                  (string-append share "/plotly")))
-               (mkdir-p share)
-               (mkdir-p docdir)
-               (mkdir-p bin)
-               (for-each (lambda (file) (install-file file bin))
-                         scripts)
-               (for-each (lambda (file) (install-file file docdir))
-                         docs)
-               (copy-recursively "Docs/Images" (string-append docdir "/Images"))
-               (copy-recursively "plotly"
-                                 (string-append share "/plotly"))
-
-               ;; Fix references to gunzip
-               (substitute* (map (lambda (file)
-                                   (string-append bin "/" file))
-                                 scripts)
-                 (("\"gunzip -c")
-                  (string-append "\"" (assoc-ref inputs "gzip")
-                                 "/bin/gunzip -c")))
-               #t))))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'replace-plotly.js
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let* ((share (string-append #$output "/share/bismark"))
+                     (file (assoc-ref inputs "plotly.js"))
+                     (installed "plotly/plotly.js"))
+                ;; The bundled plotly.js is minified.
+                (let ((minified (open-pipe* OPEN_READ "uglifyjs" file)))
+                  (call-with-output-file installed
+                    (cut dump-port minified <>)))
+                (substitute* "bismark2report"
+                  (("plotly_template.tpl")
+                   (string-append share "/plotly/plotly_template.tpl"))
+                  (("my \\$plotly_code = read_report_template\\('plot.ly'\\);")
+                   (string-append "\
+my $plotly_code = read_report_template('" share "/plotly/plotly.js');
+$plotly_code = \"<script>\" . $plotly_code . \"</script>\";"))))))
+          (replace 'configure
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "bismark"
+                (("\\(\\!system \"which samtools >/dev/null 2>&1\"\\)")
+                 "(\"true\")")
+                (("\\$samtools_path = `which samtools`;")
+                 (string-append "$samtools_path = '"
+                                (search-input-file inputs "/bin/samtools")
+                                "';"))
+                (("\\$path_to_bowtie2 = 'bowtie2'")
+                 (string-append "$path_to_bowtie2 = '"
+                                (search-input-file inputs "/bin/bowtie2")
+                                "'"))
+                (("\\$path_to_hisat2 = 'hisat2'")
+                 (string-append "$path_to_hisat2 = '"
+                                (search-input-file inputs "/bin/hisat2")
+                                "'"))
+                (("\\$path_to_minimap2 = 'minimap2'")
+                 (string-append "$path_to_minimap2 = '"
+                                (search-input-file inputs "/bin/minimap2")
+                                "'")))))
+          (delete 'build)
+          (replace 'install
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (let* ((bin (string-append #$output "/bin"))
+                     (share   (string-append #$output "/share/bismark"))
+                     (docdir  (string-append #$output "/share/doc/bismark"))
+                     (scripts '("bismark"
+                                "bismark_genome_preparation"
+                                "bismark_methylation_extractor"
+                                "bismark2bedGraph"
+                                "bismark2report"
+                                "coverage2cytosine"
+                                "deduplicate_bismark"
+                                "filter_non_conversion"
+                                "bam2nuc"
+                                "bismark2summary"
+                                "NOMe_filtering")))
+                (mkdir-p share)
+                (mkdir-p docdir)
+                (mkdir-p bin)
+                (for-each (lambda (file) (install-file file bin))
+                          scripts)
+                (copy-recursively "docs" docdir)
+                (copy-recursively "plotly"
+                                  (string-append share "/plotly"))
+
+                ;; Fix references to gunzip
+                (substitute* (map (lambda (file)
+                                    (string-append bin "/" file))
+                                  scripts)
+                  (("\"gunzip -c")
+                   (string-append "\"" (assoc-ref inputs "gzip")
+                                  "/bin/gunzip -c")))))))))
     (inputs
-     (list gzip perl-carp perl-getopt-long))
+     (list bowtie gzip hisat2 minimap2 perl-carp perl-getopt-long samtools))
     (native-inputs
      `(("plotly.js"
         ,(origin