From 44bccf414b6ba285035fa3e22512b4b99b853776 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 22 Jun 2021 08:40:56 +0200 Subject: gnu: Add perl-cworld-dekker. * gnu/packages/bioinformatics.scm (perl-cworld-dekker): New variable. --- gnu/packages/bioinformatics.scm | 94 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) (limited to 'gnu/packages/bioinformatics.scm') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 85d4e5a185..13c97af8c5 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -14260,6 +14260,100 @@ researchers to design and build computational workflows for the analysis of large-scale data-analysis.") (license license:expat))) +(define-public perl-cworld-dekker + (package + (name "perl-cworld-dekker") + (version "1.01") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dekkerlab/cworld-dekker.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dvh23fx52m59y6304xi2j2pl2hiqadlqg8jyv2pm14j1hy71ych")))) + (build-system perl-build-system) + (arguments + `(#:modules ((guix build perl-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'hardcode-references + (lambda* (#:key inputs #:allow-other-keys) + (let ((bedtools (assoc-ref inputs "bedtools")) + (r (assoc-ref inputs "r-minimal"))) + (substitute* '("scripts/python/getEigenVectors.py" + "scripts/python/matrix2EigenVectors.py") + (("bedtools intersect") + (string-append bedtools "/bin/bedtools intersect"))) + (substitute* "lib/cworld/dekker.pm" + (("bedtools --version") + (string-append bedtools "/bin/bedtools --version"))) + (substitute* '("scripts/perl/correlateMatrices.pl" + "scripts/perl/matrix2scaling.pl" + "scripts/perl/matrix2distance.pl" + "scripts/perl/coverageCorrect.pl" + "scripts/perl/matrix2anchorPlot.pl" + "scripts/python/matrix2EigenVectors.py" + "scripts/python/matrix2insulation-lite.py" + "scripts/perl/matrix2compartment.pl" + "scripts/perl/anchorPurge.pl" + "scripts/perl/applyCorrection.pl" + "scripts/perl/compareInsulation.pl" + "scripts/perl/fillMissingData.pl" + "scripts/perl/matrix2loess.pl" + "scripts/python/getEigenVectors.py" + "scripts/perl/aggregateBED.pl" + "scripts/perl/collapseMatrix.pl" + "scripts/perl/matrix2direction.pl" + "scripts/perl/singletonRemoval.pl" + "lib/cworld/dekker.pm" + "scripts/perl/matrix2insulation.pl") + (("(`|\")Rscript" _ pre) + (string-append pre r "/bin/Rscript")))))) + (add-after 'install 'install-scripts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share/cworld-dekker"))) + (mkdir-p share) + (copy-recursively "scripts" share) + + ;; Make all scripts executable and wrap them. + (let ((r (find-files share "\\.R$")) + (py (find-files share "\\.py$")) + (pl (find-files share "\\.pl$")) + (wrap (lambda* (script var #:optional (extra "")) + (let ((path (string-append (getenv var) + extra))) + (wrap-program script + `(,var ":" prefix (,path))))))) + (for-each (cut chmod <> #o555) (append r py pl)) + (for-each (cut wrap <> "PERL5LIB" + (string-append ":" out + "/lib/perl5/site_perl")) + pl) + (for-each (cut wrap <> "PYTHONPATH") py)))))))) + (inputs + `(("libgd" ,gd) + ("perl-gd" ,perl-gd) + ("bedtools" ,bedtools) + ("python" ,python-wrapper) + ("python-scipy" ,python-scipy) + ("python-numpy" ,python-numpy) + ("python-matplotlib" ,python-matplotlib) + ("python-h5py" ,python-h5py) + ("python-scikit-learn" ,python-scikit-learn) + ("r-minimal" ,r-minimal))) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (home-page "https://github.com/dekkerlab/cworld-dekker") + (synopsis "Utility and analysis scripts for 3C, 4C, 5C, and Hi-C data") + (description "This package is a collection of Perl, Python, and R +scripts for manipulating 3C/4C/5C/Hi-C data.") + (license license:asl2.0))) + (define-public ensembl-vep (let* ((api-version "103") (api-module -- cgit v1.2.3