me
/
guix
Archived
1
0
Fork 0

gnu: Add ensembl-vep.

* gnu/packages/bioinformatics.scm (ensembl-vep): New variable.
master
Ricardo Wurmus 2021-05-07 08:52:31 +02:00
parent d3ab3b276a
commit 9b99b6d947
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
1 changed files with 145 additions and 0 deletions

View File

@ -15316,6 +15316,151 @@ usually ignored by other methods or only used for filtering.")
coordinates between different assemblies.")
(license license:expat)))
(define-public ensembl-vep
(let* ((api-version "103")
(api-module
(lambda (name hash)
(origin (method git-fetch)
(uri (git-reference
(url (string-append "https://github.com/Ensembl/"
name ".git"))
(commit (string-append "release/" api-version))))
(file-name (string-append name "-" api-version "-checkout"))
(sha256 (base32 hash))))))
(package
(name "ensembl-vep")
(version (string-append api-version ".1"))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Ensembl/ensembl-vep.git")
(commit (string-append "release/" version))))
(sha256
(base32
"1iq7p72cv9b38jz2v8a4slzy2n8y0md487943180ym9xc8qvw09c"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 match))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
;; Tests need to run after installation
(delete 'check)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((modules '(("ensembl" "/")
("ensembl-variation" "/Variation")
("ensembl-funcgen" "/Funcgen")
("ensembl-io" "/")))
(scripts '(("convert_cache.pl" "vep_convert_cache.pl")
("INSTALL.pl" "vep_install.pl")
("haplo" #f)
("variant_recoder" #f)
("filter_vep" #f)
("vep" #f)))
(out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(perl (string-append out "/lib/perl5/site_perl")))
(for-each
(match-lambda
((name path)
(let ((dir (string-append perl "/Bio/EnsEMBL" path)))
(mkdir-p dir)
(copy-recursively
(string-append (assoc-ref inputs (string-append "api-module-" name))
"/modules/Bio/EnsEMBL" path)
dir))))
modules)
(copy-recursively "modules/" perl)
(mkdir-p bin)
(for-each
(match-lambda
((script new-name)
(let ((location (string-append bin "/"
(or new-name (basename script)))))
(copy-file script location)
(chmod location #o555)
(wrap-program location
`("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")
,perl))))))
scripts)
;; Fix path to tools
(with-directory-excursion (string-append perl "/Bio/EnsEMBL")
(substitute* '("Funcgen/RunnableDB/ProbeMapping/PrePipelineChecks.pm"
"VEP/BaseRunner.pm"
"VEP/Utils.pm"
"VEP/AnnotationSource/Cache/VariationTabix.pm"
"VEP/AnnotationSource/Cache/BaseSerialized.pm"
"Variation/Utils/BaseVepTabixPlugin.pm"
"Variation/Utils/VEP.pm"
"Variation/Pipeline/ReleaseDataDumps/PreRunChecks.pm")
(("`which")
(string-append "`"
(assoc-ref inputs "which")
"/bin/which")))))))
(add-after 'install 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
(setenv "PERL5LIB"
(string-append (getenv "PERL5LIB")
":"
(assoc-ref outputs "out")
"/lib/perl5/site_perl"))
(copy-recursively (string-append (assoc-ref inputs "source") "/t")
"/tmp/t")
(for-each make-file-writable (find-files "/tmp/t"))
;; TODO: haplo needs Set/IntervalTree.pm
(invoke "perl" "-e" (string-append "
use Test::Harness; use Test::Exception;
my $dirname = \"/tmp\";
opendir TEST, \"$dirname\\/t\";
my @test_files = map {\"$dirname\\/t\\/\".$_} grep {!/^\\./ && /\\.t$/} readdir TEST; closedir TEST;
@test_files = grep {!/Haplo/} @test_files;
runtests(@test_files);
"))))))))
(inputs
`(("bioperl-minimal" ,bioperl-minimal)
("perl-bio-db-hts" ,perl-bio-db-hts)
("perl-dbi" ,perl-dbi)
("perl-dbd-mysql" ,perl-dbd-mysql)
("perl-libwww" ,perl-libwww)
("perl-http-tiny" ,perl-http-tiny)
("perl-json" ,perl-json)
("which" ,which)))
(propagated-inputs
`(("kentutils" ,kentutils)))
(native-inputs
`(("unzip" ,unzip)
("perl" ,perl)
("api-module-ensembl"
,(api-module "ensembl"
"0s59rj905g72hljzfpvnx5nxwz925b917y4jp912i23f5gwxh14v"))
("api-module-ensembl-variation"
,(api-module "ensembl-variation"
"1dvwdzzfjhzymq02b6n4p6j3a9q4jgq0g89hs7hj1apd7zhirgkq"))
("api-module-ensembl-funcgen"
,(api-module "ensembl-funcgen"
"1x23pv38dmv0w0gby6rv3wds50qghb4v3v1mf43vk55msfxzry8n"))
("api-module-ensembl-io"
,(api-module "ensembl-io"
"14adb2x934lzsq20035mazdkhrkcw0qzb0xhz6zps9vk4wixwaix"))
("perl-test-harness" ,perl-test-harness)
("perl-test-exception" ,perl-test-exception)))
(home-page "http://www.ensembl.org/vep")
(synopsis "Predict functional effects of genomic variants")
(description
"This package provides a Variant Effect Predictor, which predicts
the functional effects of genomic variants. It also provides
Haplosaurus, which uses phased genotype data to predict
whole-transcript haplotype sequences, and Variant Recoder, which
translates between different variant encodings.")
(license license:asl2.0))))
(define-public r-signac
(let ((commit "e0512d348adeda4a3f23a2e8f56d1fe09840e03c")
(revision "1"))