From 29839033efcc894718b1596e66bcea811da19d7a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 19 Sep 2023 19:38:52 +0300 Subject: Add pafplot --- gn/packages/bioinformatics.scm | 37 +++++++++++++++++++++++++++ gn/packages/crates-io.scm | 58 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) 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") -- cgit v1.2.3