mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
gnu: Add dropseq-tools.
* gnu/packages/bioinformatics.scm (dropseq-tools): New variable.
This commit is contained in:
parent
72299db9fe
commit
1adeef3194
1 changed files with 137 additions and 0 deletions
|
@ -12504,3 +12504,140 @@ (define-public java-biojava-alignment-4.0
|
||||||
@item reading and writing of popular alignment file formats;
|
@item reading and writing of popular alignment file formats;
|
||||||
@item a single-, or multi- threaded multiple sequence alignment algorithm.
|
@item a single-, or multi- threaded multiple sequence alignment algorithm.
|
||||||
@end itemize\n")))
|
@end itemize\n")))
|
||||||
|
|
||||||
|
(define-public dropseq-tools
|
||||||
|
(package
|
||||||
|
(name "dropseq-tools")
|
||||||
|
(version "1.13")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri "http://mccarrolllab.com/download/1276/")
|
||||||
|
(file-name (string-append "dropseq-tools-" version ".zip"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0yrffckxqk5l8b5xb6z4laq157zd9mdypr2p4b4vq2bhjzi1sj0s"))
|
||||||
|
;; Delete bundled libraries
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
(for-each delete-file (find-files "jar/lib" "\\.jar$"))
|
||||||
|
(delete-file-recursively "3rdParty")))))
|
||||||
|
(build-system ant-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #f ; test data are not included
|
||||||
|
#:test-target "test"
|
||||||
|
#:build-target "all"
|
||||||
|
#:source-dir "public/src/"
|
||||||
|
#:jdk ,icedtea-8
|
||||||
|
#:make-flags
|
||||||
|
(list (string-append "-Dpicard.executable.dir="
|
||||||
|
(assoc-ref %build-inputs "java-picard")
|
||||||
|
"/share/java/"))
|
||||||
|
#:modules ((ice-9 match)
|
||||||
|
(srfi srfi-1)
|
||||||
|
(guix build utils)
|
||||||
|
(guix build java-utils)
|
||||||
|
(guix build ant-build-system))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; All dependencies must be linked to "lib", because that's where
|
||||||
|
;; they will be searched for when the Class-Path property of the
|
||||||
|
;; manifest is computed.
|
||||||
|
(add-after 'unpack 'record-references
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(mkdir-p "jar/lib")
|
||||||
|
(let ((dirs (filter-map (match-lambda
|
||||||
|
((name . dir)
|
||||||
|
(if (and (string-prefix? "java-" name)
|
||||||
|
(not (string=? name "java-testng")))
|
||||||
|
dir #f)))
|
||||||
|
inputs)))
|
||||||
|
(for-each (lambda (jar)
|
||||||
|
(symlink jar (string-append "jar/lib/" (basename jar))))
|
||||||
|
(append-map (lambda (dir) (find-files dir "\\.jar$"))
|
||||||
|
dirs)))
|
||||||
|
#t))
|
||||||
|
;; There is no installation target
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(bin (string-append out "/bin"))
|
||||||
|
(share (string-append out "/share/java/"))
|
||||||
|
(lib (string-append share "/lib/"))
|
||||||
|
(scripts (list "BAMTagHistogram"
|
||||||
|
"BAMTagofTagCounts"
|
||||||
|
"BaseDistributionAtReadPosition"
|
||||||
|
"CollapseBarcodesInPlace"
|
||||||
|
"CollapseTagWithContext"
|
||||||
|
"ConvertToRefFlat"
|
||||||
|
"CreateIntervalsFiles"
|
||||||
|
"DetectBeadSynthesisErrors"
|
||||||
|
"DigitalExpression"
|
||||||
|
"Drop-seq_alignment.sh"
|
||||||
|
"FilterBAM"
|
||||||
|
"FilterBAMByTag"
|
||||||
|
"GatherGeneGCLength"
|
||||||
|
"GatherMolecularBarcodeDistributionByGene"
|
||||||
|
"GatherReadQualityMetrics"
|
||||||
|
"PolyATrimmer"
|
||||||
|
"ReduceGTF"
|
||||||
|
"SelectCellsByNumTranscripts"
|
||||||
|
"SingleCellRnaSeqMetricsCollector"
|
||||||
|
"TagBamWithReadSequenceExtended"
|
||||||
|
"TagReadWithGeneExon"
|
||||||
|
"TagReadWithInterval"
|
||||||
|
"TrimStartingSequence"
|
||||||
|
"ValidateReference")))
|
||||||
|
(for-each mkdir-p (list bin share lib))
|
||||||
|
(install-file "dist/dropseq.jar" share)
|
||||||
|
(for-each (lambda (script)
|
||||||
|
(chmod script #o555)
|
||||||
|
(install-file script bin))
|
||||||
|
scripts)
|
||||||
|
(substitute* (map (lambda (script)
|
||||||
|
(string-append bin "/" script))
|
||||||
|
scripts)
|
||||||
|
(("^java") (which "java"))
|
||||||
|
(("jar_deploy_dir=.*")
|
||||||
|
(string-append "jar_deploy_dir=" share "\n"))))
|
||||||
|
#t))
|
||||||
|
;; FIXME: We do this after stripping jars because we don't want it to
|
||||||
|
;; copy all these jars and strip them. We only want to install
|
||||||
|
;; links. Arguably, this is a problem with the ant-build-system.
|
||||||
|
(add-after 'strip-jar-timestamps 'install-links
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(share (string-append out "/share/java/"))
|
||||||
|
(lib (string-append share "/lib/")))
|
||||||
|
(for-each (lambda (jar)
|
||||||
|
(symlink (readlink jar)
|
||||||
|
(string-append lib (basename jar))))
|
||||||
|
(find-files "jar/lib" "\\.jar$")))
|
||||||
|
#t)))))
|
||||||
|
(inputs
|
||||||
|
`(("jdk" ,icedtea-8)
|
||||||
|
("java-picard" ,java-picard-2.10.3)
|
||||||
|
("java-log4j-1.2-api" ,java-log4j-1.2-api)
|
||||||
|
("java-commons-math3" ,java-commons-math3)
|
||||||
|
("java-commons-jexl2" ,java-commons-jexl-2)
|
||||||
|
("java-commons-collections4" ,java-commons-collections4)
|
||||||
|
("java-commons-lang2" ,java-commons-lang)
|
||||||
|
("java-commons-io" ,java-commons-io)
|
||||||
|
("java-snappy-1.0.3-rc3" ,java-snappy-1)
|
||||||
|
("java-guava" ,java-guava)
|
||||||
|
("java-la4j" ,java-la4j)
|
||||||
|
("java-biojava-core" ,java-biojava-core-4.0)
|
||||||
|
("java-biojava-alignment" ,java-biojava-alignment-4.0)
|
||||||
|
("java-jdistlib" ,java-jdistlib)
|
||||||
|
("java-simple-xml" ,java-simple-xml)
|
||||||
|
("java-snakeyaml" ,java-snakeyaml)))
|
||||||
|
(native-inputs
|
||||||
|
`(("unzip" ,unzip)
|
||||||
|
("java-testng" ,java-testng)))
|
||||||
|
(home-page "http://mccarrolllab.com/dropseq/")
|
||||||
|
(synopsis "Tools for Drop-seq analyses")
|
||||||
|
(description "Drop-seq is a technology to enable biologists to
|
||||||
|
analyze RNA expression genome-wide in thousands of individual cells at
|
||||||
|
once. This package provides tools to perform Drop-seq analyses.")
|
||||||
|
(license license:expat)))
|
||||||
|
|
Loading…
Reference in a new issue