Mercurial > repos > rnateam > chipseeker
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 |
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 } |