summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2021-03-11 16:53:45 +0200
committerEfraim Flashner <efraim@flashner.co.il>2021-03-11 16:54:38 +0200
commit5ae7414860eb6a6bd93ed30e962b257627d79ec9 (patch)
tree5b5cdd0e87a12a996a4379b0fba3d19ca9ae7b80 /gnu
parent8f359cd9ff05d5d10225648d0198c7929a661761 (diff)
downloadguix-5ae7414860eb6a6bd93ed30e962b257627d79ec9.tar.gz
gnu: Add bandage.
* gnu/packages/bioinformatics.scm (bandage): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/bioinformatics.scm60
1 files changed, 60 insertions, 0 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8b38c7ce0d..b258b796f7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -52,6 +52,7 @@
   #:use-module (guix build-system ocaml)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system qt)
   #:use-module (guix build-system r)
   #:use-module (guix build-system ruby)
   #:use-module (guix build-system scons)
@@ -125,6 +126,7 @@
   #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages ruby)
@@ -13187,6 +13189,64 @@ concatenates pieces of read sequences to generate the final unitig sequences.
 Thus the per-base error rate is similar to the raw input reads.")
    (license license:expat)))
 
+(define-public bandage
+  (package
+    (name "bandage")
+    (version "0.8.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rrwick/Bandage")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bbsn5f5x8wlspg4pbibqz6m5vin8c19nl224f3z3km0pkc97rwv"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (invoke "qmake" "Bandage.pro")))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (substitute* "tests/bandage_command_line_tests.sh"
+                 (("^bandagepath=.*")
+                  (string-append "bandagepath=" (getcwd) "/Bandage\n")))
+               (with-directory-excursion "tests"
+                 (setenv "XDG_RUNTIME_DIR" (getcwd))
+                 (invoke "./bandage_command_line_tests.sh")))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "Bandage" (string-append out "/bin"))
+               #t))))))
+    (inputs
+     `(("qtbase" ,qtbase)
+       ("qtsvg" ,qtsvg)))
+    (native-inputs
+     `(("imagemagick" ,imagemagick)))
+    (home-page "https://rrwick.github.io/Bandage/")
+    (synopsis
+     "Bioinformatics Application for Navigating De novo Assembly Graphs Easily")
+    (description "Bandage is a program for visualising de novo assembly graphs.
+It allows users to interact with the assembly graphs made by de novo assemblers
+such as Velvet, SPAdes, MEGAHIT and others.  De novo assembly graphs contain not
+only assembled contigs but also the connections between those contigs, which
+were previously not easily accessible.  Bandage visualises assembly graphs, with
+connections, using graph layout algorithms.  Nodes in the drawn graph, which
+represent contigs, can be automatically labelled with their ID, length or depth.
+Users can interact with the graph by moving, labelling and colouring nodes.
+Sequence information can also be extracted directly from the graph viewer.  By
+displaying connections between contigs, Bandage opens up new possibilities for
+analysing and improving de novo assemblies that are not possible by looking at
+contigs alone.")
+    (license (list license:gpl2+        ; bundled ogdf
+                   license:gpl3+))))
+
 (define-public r-circus
   (package
     (name "r-circus")