annotate chipseeker.R @ 4:90fe78a19b55 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
author rnateam
date Mon, 26 Nov 2018 06:21:37 -0500
parents 535321abf9a4
children b418a1d3585d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
1 options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
2
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
3 # we need that to not crash galaxy with an UTF8 error on German LC settings.
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
4 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
5
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
6 suppressPackageStartupMessages({
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
7 library(ChIPseeker)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
8 library(GenomicFeatures)
3
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
9 library(rtracklayer)
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
10 library(optparse)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
11 })
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
12
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
13 option_list <- list(
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
14 make_option(c("-i","--infile"), type="character", help="Peaks file to be annotated"),
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
15 make_option(c("-G","--gtf"), type="character", help="GTF to create TxDb."),
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
16 make_option(c("-u","--upstream"), type="integer", help="TSS upstream region"),
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
17 make_option(c("-d","--downstream"), type="integer", help="TSS downstream region"),
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
18 make_option(c("-F","--flankgeneinfo"), type="logical", help="Add flanking gene info"),
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
19 make_option(c("-D","--flankgenedist"), type="integer", help="Flanking gene distance"),
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
20 make_option(c("-f","--format"), type="character", help="Output format (interval or tabular)."),
3
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
21 make_option(c("-p","--plots"), type="logical", help="PDF of plots."),
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
22 make_option(c("-r","--rdata"), type="logical", help="Output RData file.")
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
23 )
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
24
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
25 parser <- OptionParser(usage = "%prog [options] file", option_list=option_list)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
26 args = parse_args(parser)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
27
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
28 peaks = args$infile
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
29 gtf = args$gtf
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
30 up = args$upstream
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
31 down = args$downstream
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
32 format = args$format
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
33
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
34 peaks <- readPeakFile(peaks)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
35
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
36 # Make TxDb from GTF
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
37 txdb <- makeTxDbFromGFF(gtf, format="gtf")
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
38 if (!is.null(args$flankgeneinfo)) {
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
39 peakAnno <- annotatePeak(peaks, TxDb=txdb, tssRegion=c(-up, down), addFlankGeneInfo=args$flankgeneinfo, flankDistance=args$flankgenedist)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
40 } else {
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
41 peakAnno <- annotatePeak(peaks, TxDb=txdb, tssRegion=c(-up, down))
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
42 }
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
43
3
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
44 # Add gene name
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
45 features <- import(gtf, format="gtf")
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
46 ann <- unique(mcols(features)[, c("gene_id", "gene_name")])
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
47 res <- as.data.frame(peakAnno)
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
48 res <- merge(res, ann, by.x="geneId", by.y="gene_id")
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
49 names(res)[names(res) == "gene_name"] <- "geneName"
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
50
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
51 #Extract metadata cols, 1st is geneId, rest should be from col 7 to end
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
52 metacols <- res[, c(7:ncol(res), 1)]
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
53 # Convert from 1-based to 0-based format
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
54 if (format == "interval") {
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
55 metacols <- apply(as.data.frame(metacols), 1, function(col) paste(col, collapse="|"))
4
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
56 resout <- data.frame(res$seqnames,
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
57 res$start - 1,
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
58 res$end,
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
59 metacols)
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
60 colnames(resout)[1:4] <- c("Chrom", "Start", "End", "Comment")
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
61 } else {
4
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
62 resout <- data.frame(res$seqnames,
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
63 res$start - 1,
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
64 res$end,
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
65 metacols)
4
90fe78a19b55 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 6f594126ac7369cc80c30a02a6df57e785dfb45a
rnateam
parents: 3
diff changeset
66 colnames(resout)[1:3] <- c("Chrom", "Start", "End")
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
67 }
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
68 write.table(resout, file="out.tab", sep="\t", row.names=FALSE, quote=FALSE)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
69
3
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
70 if (!is.null(args$plots)) {
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
71 pdf("out.pdf", width=14)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
72 plotAnnoPie(peakAnno)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
73 plotAnnoBar(peakAnno)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
74 vennpie(peakAnno)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
75 upsetplot(peakAnno)
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
76 plotDistToTSS(peakAnno, title="Distribution of transcription factor-binding loci\nrelative to TSS")
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
77 dev.off()
3
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
78 }
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
79
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
80 ## Output RData file
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
81
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
82 if (!is.null(args$rdata)) {
535321abf9a4 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 861db0d1f76bb320f49c2501f4e656cf88d389ce
rnateam
parents: 1
diff changeset
83 save.image(file = "ChIPseeker_analysis.RData")
1
95f779f4adb7 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/chipseeker commit 3419a5a5e19a93369c8c20a39babe5636a309292
rnateam
parents:
diff changeset
84 }