From c8d71da303ff6b82a30db542d382cab57a00699e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 11 Dec 2014 17:37:16 +0100 Subject: [PATCH] gnu: Add bedtools * gnu/packages/bioinformatics.scm (bedtools): New variable. --- gnu/packages/bioinformatics.scm | 68 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 6f6178a..bcc5d43 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -28,6 +28,74 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages python)) +(define-public bedtools + (package + (name "bedtools") + (version "2.22.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/arq5x/bedtools2/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "16aq0w3dmbd0853j32xk9jin4vb6v6fgakfyvrsmsjizzbn3fpfl")))) + (build-system gnu-build-system) + (inputs `(("python" ,python) + ("samtools" ,samtools) + ("zlib" ,zlib))) + (arguments + '(#:test-target "test" + #:phases + (alist-cons-after + 'unpack 'patch-makefile-SHELL-definition + (lambda _ + ;; patch-makefile-SHELL cannot be used here as it does not + ;; yet patch definitions with `:='. Since changes to + ;; patch-makefile-SHELL result in a full rebuild, features + ;; of patch-makefile-SHELL are reimplemented here. + (define (find-shell name) + (let ((shell + (search-path (search-path-as-string->list (getenv "PATH")) + name))) + (unless shell + (format (current-error-port) + "patch-makefile-SHELL: warning: no binary for shell `~a' found in $PATH~%" + name)) + shell)) + (substitute* "Makefile" + (("^SHELL := .*$") (string-append "SHELL := " (find-shell "bash") " -e \n")))) + (alist-delete + 'configure + (alist-replace + 'install (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (tools + '("bamToFastq" "mapBed" "shuffleBed" "bed12ToBed6" "bedToBam" + "multiIntersectBed" "complementBed" "randomBed" "tagBam" "sortBed" + "annotateBed" "clusterBed" "fastaFromBed" "coverageBed" "bedpeToBam" + "pairToPair" "subtractBed" "nucBed" "expandCols" "bedToIgv" "slopBed" + "closestBed" "windowMaker" "linksBed" "getOverlap" "mergeBed" "windowBed" + "flankBed" "pairToBed" "intersectBed" "bamToBed" "multiBamCov" + "unionBedGraphs" "genomeCoverageBed" "groupBy" "maskFastaFromBed" + "bedtools"))) + (mkdir-p bin) + (map (lambda (tool) + (copy-file (string-append "bin/" tool) + (string-append bin "/" tool))) + tools))) + %standard-phases))))) + (home-page "https://github.com/arq5x/bedtools2") + (synopsis "Swiss army knife for genome arithmetic") + (description + "Collectively, the bedtools utilities are a swiss-army knife of tools for +a wide-range of genomics analysis tasks. The most widely-used tools enable +genome arithmetic: that is, set theory on the genome. For example, bedtools +allows one to intersect, merge, count, complement, and shuffle genomic +intervals from multiple files in widely-used genomic file formats such as BAM, +BED, GFF/GTF, VCF.") + (license license:gpl2))) + (define-public samtools (package (name "samtools") -- 1.9.3