about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner2023-09-19 19:38:52 +0300
committerEfraim Flashner2023-09-19 19:43:03 +0300
commit29839033efcc894718b1596e66bcea811da19d7a (patch)
treeab00cb78fa89cc3e0856b137c321cd97d8afb6e1
parentc2415bfa014892a56be9b621089a0a2ffab234f7 (diff)
downloadguix-bioinformatics-29839033efcc894718b1596e66bcea811da19d7a.tar.gz
Add pafplot
-rw-r--r--gn/packages/bioinformatics.scm37
-rw-r--r--gn/packages/crates-io.scm58
2 files changed, 95 insertions, 0 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 4b37c8f..75449f3 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -39,6 +39,7 @@
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages cran)
   #:use-module (gnu packages crates-io)
+  #:use-module (gnu packages crates-graphics)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
@@ -574,6 +575,42 @@ idea is to support pangenomic applications, following the
 specification.")
     (license license:expat)))
 
+(define-public pafplot
+  (let ((commit "7dda24c0aeba8556b600d53d748ae3103ec85501")
+        (revision "1"))
+    (package
+      (name "pafplot")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/ekg/pafplot.git")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "04ffz0zfj4mvfxmrwgisv213fypgl02f7sim950a067pm7375g1l"))))
+      (build-system cargo-build-system)
+      (arguments
+       `(#:install-source? #f
+         #:cargo-inputs
+         (("rust-clap" ,rust-clap-2)
+          ("rust-boomphf" ,rust-boomphf-0.5)
+          ("rust-itertools" ,rust-itertools-0.10)
+          ("rust-fnv" ,rust-fnv-1)
+          ("rust-lodepng" ,rust-lodepng-3)
+          ("rust-rgb" ,rust-rgb-0.8)
+          ("rust-line-drawing" ,rust-line-drawing-0.8))))
+      (home-page "https://github.com/ekg/pafplot.git")
+      (synopsis "Base-level dotplots from PAF alignments")
+      (description "In the process of generating alignments between whole
+genomes, we often need to understand the base-level alignment between
+particular sequences.  @command{pafplot} allows us to do so by rasterizing the
+matches alignment set.  It draws a line on a raster image to represent each
+match found in a set of alignments.  The resulting image provides a high-level
+view of the structure of the alignments, and in consequence the homology
+relationships between the sequences in consideration.")
+      (license license:expat))))
+
 (define-public gafpack
   (let ((commit "ad31875b6914d964c6fd72d1bf334f0843538fb6")     ; November 10, 2022
         (revision "1"))
diff --git a/gn/packages/crates-io.scm b/gn/packages/crates-io.scm
index 557c980..6db2716 100644
--- a/gn/packages/crates-io.scm
+++ b/gn/packages/crates-io.scm
@@ -246,6 +246,64 @@ functions} for a collection of hashable objects.")
     (description "Key String provides a Rust package optimized for map keys.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-line-drawing-0.8
+  (package
+    (name "rust-line-drawing")
+    (version "0.8.1")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "line-drawing" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "18a940s3mv8w5prpb99sdxykzhrvzrnymw3hvd7wisnkgbr11jqm"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs
+       (("rust-num-traits" ,rust-num-traits-0.2))
+       #:cargo-development-inputs
+       (("rust-bresenham" ,rust-bresenham-0.1)
+        ("rust-image" ,rust-image-0.23)
+        ("rust-rand" ,rust-rand-0.8))))
+    (home-page "https://github.com/expenses/line_drawing")
+    (synopsis
+     "A collection of line-drawing algorithms for use in graphics and video games.")
+    (description
+     "This package provides a collection of line-drawing algorithms for use in
+graphics and video games.")
+    (license license:expat)))
+
+(define-public rust-lodepng-3
+  (package
+    (name "rust-lodepng")
+    (version "3.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (crate-uri "lodepng" version))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1f5d9bva17sq7npw9qh7h6sh02k0ycrjx5hr147q0jv4m0qd2970"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-test-flags
+       (list "--release" "--"
+             ;; Not all files included.
+             "--skip=test::read_icc")
+       #:cargo-inputs
+       (("rust-crc32fast" ,rust-crc32fast-1)
+        ("rust-fallible-collections" ,rust-fallible-collections-0.4)
+        ("rust-flate2" ,rust-flate2-1)
+        ("rust-libc" ,rust-libc-0.2)
+        ("rust-rgb" ,rust-rgb-0.8))))
+    (home-page "https://lib.rs/crates/lodepng")
+    (synopsis
+     "Reading and writing PNG files without system dependencies. Pure Rust port of LodePNG.")
+    (description
+     "Reading and writing PNG files without system dependencies.  Pure Rust port of
+@code{LodePNG}.")
+    (license license:zlib)))
+
 (define-public rust-pyo3-0.14
   (package
     (name "rust-pyo3")