gnu: Add krona-tools.
* gnu/packages/web.scm (krona-tools): New variable.
This commit is contained in:
parent
0affdfb805
commit
bd9fe0f03b
|
@ -11,6 +11,7 @@
|
||||||
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||||
|
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -56,6 +57,7 @@
|
||||||
#:use-module (gnu packages icu4c)
|
#:use-module (gnu packages icu4c)
|
||||||
#:use-module (gnu packages lua)
|
#:use-module (gnu packages lua)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
|
#:use-module (gnu packages perl)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages pcre)
|
#:use-module (gnu packages pcre)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
@ -274,6 +276,100 @@ easily construct JSON objects in C, output them as JSON formatted strings and
|
||||||
parse JSON formatted strings back into the C representation of JSON objects.")
|
parse JSON formatted strings back into the C representation of JSON objects.")
|
||||||
(license l:x11)))
|
(license l:x11)))
|
||||||
|
|
||||||
|
(define-public krona-tools
|
||||||
|
(package
|
||||||
|
(name "krona-tools")
|
||||||
|
(version "2.6.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"https://github.com/marbl/Krona/releases/download/v"
|
||||||
|
version "/KronaTools-" version ".tar"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1fj5mf6wbwz7v74n2safbw7fpw32fik19vf0wdbc2srn82i8fiwz"))))
|
||||||
|
(build-system perl-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; no tests
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; There is no configure or build steps.
|
||||||
|
(delete 'configure)
|
||||||
|
(replace 'build
|
||||||
|
;; Remove 'use lib' statements from scripts as PERL5LIB is set
|
||||||
|
;; correctly during installation.
|
||||||
|
(lambda _
|
||||||
|
(for-each
|
||||||
|
(lambda (executable)
|
||||||
|
(display executable)(display "\n")
|
||||||
|
(substitute* executable
|
||||||
|
(("use lib \\(`ktGetLibPath`\\);") "")))
|
||||||
|
(find-files "scripts/" ".*"))
|
||||||
|
#t))
|
||||||
|
;; Install script "install.pl" expects the build directory to remain
|
||||||
|
;; after installation, creating symlinks etc., so re-implement it
|
||||||
|
;; here.
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
|
||||||
|
(perl (string-append (assoc-ref outputs "out")
|
||||||
|
"/lib/perl5/site_perl"))
|
||||||
|
(share (string-append
|
||||||
|
(assoc-ref outputs "out") "/share/krona-tools")))
|
||||||
|
(mkdir-p bin)
|
||||||
|
(for-each
|
||||||
|
(lambda (script)
|
||||||
|
(let* ((executable (string-append "scripts/" script ".pl")))
|
||||||
|
;; Prefix executables with 'kt' as install script does.
|
||||||
|
(copy-file executable (string-append bin "/kt" script))))
|
||||||
|
'("ClassifyBLAST"
|
||||||
|
"GetContigMagnitudes"
|
||||||
|
"GetTaxIDFromGI"
|
||||||
|
"ImportBLAST"
|
||||||
|
"ImportDiskUsage"
|
||||||
|
"ImportEC"
|
||||||
|
"ImportFCP"
|
||||||
|
"ImportGalaxy"
|
||||||
|
"ImportKrona"
|
||||||
|
"ImportMETAREP-BLAST"
|
||||||
|
"ImportMETAREP-EC"
|
||||||
|
"ImportMGRAST"
|
||||||
|
"ImportPhymmBL"
|
||||||
|
"ImportRDP"
|
||||||
|
"ImportRDPComparison"
|
||||||
|
"ImportTaxonomy"
|
||||||
|
"ImportText"
|
||||||
|
"ImportXML"))
|
||||||
|
(mkdir-p share)
|
||||||
|
(copy-recursively "data" (string-append share "/data"))
|
||||||
|
(copy-recursively "img" (string-append share "/img"))
|
||||||
|
(copy-recursively "taxonomy" (string-append share "/taxonomy"))
|
||||||
|
(substitute* '("lib/KronaTools.pm")
|
||||||
|
(("taxonomyDir = \".libPath/../taxonomy\"")
|
||||||
|
(string-append "taxonomyDir = \"" share "/taxonomy\"")))
|
||||||
|
(install-file "lib/KronaTools.pm" perl))))
|
||||||
|
(add-after 'install 'wrap-program
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(path (getenv "PERL5LIB")))
|
||||||
|
(for-each
|
||||||
|
(lambda (executable)
|
||||||
|
(wrap-program executable
|
||||||
|
`("PERL5LIB" ":" prefix
|
||||||
|
(,(string-append out "/lib/perl5/site_perl")))))
|
||||||
|
(find-files (string-append out "/bin/") ".*"))))))))
|
||||||
|
(inputs
|
||||||
|
`(("perl" ,perl)))
|
||||||
|
(home-page "https://github.com/marbl/Krona/wiki")
|
||||||
|
(synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
|
||||||
|
(description
|
||||||
|
"Krona is a flexible tool for exploring the relative proportions of
|
||||||
|
hierarchical data, such as metagenomic classifications, using a radial,
|
||||||
|
space-filling display. It is implemented using HTML5 and JavaScript, allowing
|
||||||
|
charts to be explored locally or served over the Internet, requiring only a
|
||||||
|
current version of any major web browser.")
|
||||||
|
(license l:bsd-3)))
|
||||||
|
|
||||||
(define-public rapidjson
|
(define-public rapidjson
|
||||||
(package
|
(package
|
||||||
(name "rapidjson")
|
(name "rapidjson")
|
||||||
|
|
Loading…
Reference in New Issue