1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-16 12:00:35 +02:00

gnu: Add circos.

* gnu/local.mk: Register circos-remove-findbin.patch.
* gnu/packages/patches/circos-remove-findbin.patch: New file.
* gnu/packages/perl.scm: New variable.
This commit is contained in:
Roel Janssen 2020-03-23 11:42:36 +01:00
parent 591faabd8c
commit 7ff6395100
No known key found for this signature in database
GPG key ID: CBD0CD5138C19AFC
3 changed files with 641 additions and 0 deletions

View file

@ -52,6 +52,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gd)
#:use-module (gnu packages less)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl-check)
@ -870,6 +871,101 @@ the Carp.pm module doesn't help.")
;; Either GPLv2 or the "Artistic" license.
(license (list gpl2 artistic2.0))))
(define-public circos
(package
(name "circos")
(version "0.69-9")
(source (origin
(method url-fetch)
(uri (string-append
"http://circos.ca/distribution/circos-" version ".tgz"))
(sha256
(base32 "1ll9yxbk0v64813np0qz6h8bc53qlnhg9y1053b57xgkxgmxgn1l"))
(patches (list (search-patch "circos-remove-findbin.patch")))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; There are no tests.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(datapath (string-append out "/share/Circos"))
(error (string-append out "/share/Circos/error"))
(fonts (string-append out "/share/Circos/fonts"))
(data (string-append out "/share/Circos/data"))
(tiles (string-append out "/share/Circos/tiles"))
(etc (string-append out "/share/Circos/etc"))
(lib (string-append out "/lib/perl5/site_perl/"
,(package-version perl)))
(install-directory (lambda (source target)
(mkdir-p target)
(copy-recursively source target))))
;; Circos looks into a relative path for its configuration
;; files. We need to provide an absolute path towards the
;; corresponding paths in the store.
(substitute* '("bin/circos" "etc/colors_fonts_patterns.conf"
"etc/gddiag.conf" "etc/brewer.conf" "README")
(("<<include etc") (string-append "<<include " etc)))
(substitute* '("etc/colors.conf" "etc/image.black.conf"
"etc/patterns.conf" "etc/image.conf")
(("<<include ") (string-append "<<include " etc "/")))
(substitute* '("etc/fonts.conf" "fonts/README.fonts")
(("= fonts") (string-append "= " fonts)))
(substitute* "etc/patterns.conf"
(("= tiles") (string-append "= " tiles)))
(substitute* "lib/Circos/Error.pm"
(("error/configuration.missing.txt")
(string-append error "/configuration.missing.txt")))
(substitute* "etc/housekeeping.conf"
(("# data_path = /home/martink/circos-tutorials ")
(string-append "data_path = " datapath)))
(substitute* "lib/Circos/Configuration.pm"
(("my @possibilities = \\(")
(string-append "my @possibilities = ("
"catfile( \"" datapath "\", $arg ), "
"catfile( \"" etc "\", $arg ), "
"catfile( \"" etc "/tracks\", $arg ), ")))
(for-each install-directory
(list "error" "fonts" "data" "tiles" "etc" "lib")
(list error fonts data tiles etc lib))
(install-file "bin/circos" bin)
#t))))))
(propagated-inputs
`(("perl" ,perl)
("perl-carp" ,perl-carp)
("perl-clone" ,perl-clone)
("perl-config-general" ,perl-config-general)
("perl-digest-md5" ,perl-digest-md5)
("perl-file-temp" ,perl-file-temp)
("perl-font-ttf" ,perl-font-ttf)
("perl-gd" ,perl-gd)
("perl-getopt-long" ,perl-getopt-long)
("perl-list-allutils" ,perl-list-allutils)
("perl-math-bezier" ,perl-math-bezier)
("perl-math-round" ,perl-math-round)
("perl-math-vecstat" ,perl-math-vecstat)
("perl-memoize" ,perl-memoize)
("perl-number-format" ,perl-number-format)
("perl-params-validate" ,perl-params-validate)
("perl-readonly" ,perl-readonly)
("perl-regexp-common" ,perl-regexp-common)
("perl-set-intspan" ,perl-set-intspan)
("perl-statistics-basic" ,perl-statistics-basic)
("perl-svg" ,perl-svg)
("perl-text-balanced" ,perl-text-balanced)
("perl-text-format" ,perl-text-format)
("perl-time-hires" ,perl-time-hires)))
(home-page "http://circos.ca/")
(synopsis "Generation of circularly composited renditions")
(description
"Circos is a program for the generation of publication-quality, circularly
composited renditions of genomic data and related annotations.")
(license gpl2+)))
(define-public perl-class-accessor
(package
(name "perl-class-accessor")