annotate signature.xml @ 1:9274c7b1e85c

Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap. Also added a working test case. (<tests> and </tests> was missing, and output file must be references with file= and not value=).
author chris <drosofff@gmail.com>
date Mon, 16 Feb 2015 12:08:18 +0100
parents d613dbee3ce4
children 2b30861d95f4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
1 <tool id="signature" name="Small RNA Signatures" version="2.0.1">
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
2 <description></description>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
3 <requirements>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
4 <requirement type="package" version="0.12.7">bowtie</requirement>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
5 <requirement type="package" version="0.1.18">samtools</requirement>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
6 <requirement type="package" version="0.7.7">pysam</requirement>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
7 <requirement type="package" version="2.14">biocbasics</requirement>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
8 <requirement type="package" version="3.0.3">R</requirement>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
9 </requirements>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
10 <command interpreter="python">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
11 signature.py
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
12 --input $refGenomeSource.input
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
13 --inputFormat $refGenomeSource.input.ext
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
14 --minquery $minquery
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
15 --maxquery $maxquery
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
16 --mintarget $mintarget
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
17 --maxtarget $maxtarget
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
18 --minscope $minscope
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
19 --maxscope $maxscope
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
20 --outputOverlapDataframe $output
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
21 #if $refGenomeSource.genomeSource == "history":
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
22 --referenceGenome $refGenomeSource.ownFile
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
23 #else:
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
24 #silent reference= filter( lambda x: str( x[0] ) == str( $input.dbkey ), $__app__.tool_data_tables[ 'bowtie_indexes' ].get_fields() )[0][-1]
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
25 --referenceGenome $reference
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
26 --extract_index
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
27 #end if
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
28 --graph $graph_type
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
29 --rcode $sigplotter
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
30 </command>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
31
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
32 <inputs>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
33 <conditional name="refGenomeSource">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
34 <param name="genomeSource" type="select" label="Will you select a reference genome from your history or use a built-in index?" help="Built-ins were indexed using default options">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
35 <option value="indexed">Use a built-in index</option>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
36 <option value="history">Use one from the history</option>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
37 </param>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
38 <when value="indexed">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
39 <param name="input" type="data" format="tabular,sam,bam" label="Compute signature from this bowtie standard output">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
40 <validator type="dataset_metadata_in_data_table" table_name="bowtie_indexes" metadata_name="dbkey" metadata_column="0" message="database not set for this bowtie output. Select the database(=genome used for matching) manually, or select a reference fasta from your history."/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
41 </param>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
42 </when>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
43 <when value="history">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
44 <param name="ownFile" type="data" format="fasta" label="Select the fasta reference" />
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
45 <param name="input" type="data" format="tabular,sam,bam" label="Compute signature from this bowtie standard output"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
46 </when>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
47 </conditional> <!-- refGenomeSource -->
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
48 <param name="minquery" type="integer" size="3" value="23" label="Min size of query small RNAs" help="'23' = 23 nucleotides"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
49 <param name="maxquery" type="integer" size="3" value="29" label="Max size of query small RNAs" help="'29' = 29 nucleotides"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
50 <param name="mintarget" type="integer" size="3" value="23" label="Min size of target small RNAs" help="'23' = 23 nucleotides"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
51 <param name="maxtarget" type="integer" size="3" value="29" label="Max size of target small RNAs" help="'29' = 29 nucleotides"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
52 <param name="minscope" type="integer" size="3" value="1" label="Minimal relative overlap analyzed" help="'1' = 1 nucleotide overlap"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
53 <param name="maxscope" type="integer" size="3" value="26" label="Maximal relative overlap analyzed" help="'1' = 1 nucleotide overlap"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
54 <param name="graph_type" type="select" label="Graph type" help="Signature can be computed globally or by item present in the alignment file">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
55 <option value="global" selected="True">Global</option>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
56 <option value="lattice">Lattice</option>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
57 </param>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
58 </inputs>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
59
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
60 <configfiles>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
61 <configfile name="sigplotter">
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
62 graph_type = "${graph_type}"
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
63
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
64 globalgraph = function () {
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
65 ## Setup R error handling to go to stderr
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
66 options( show.error.messages=F,
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
67 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
68 signature = read.delim("${output}", header=TRUE)
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
69 signaturez=data.frame(signature[,1], (signature[,2] -mean(signature[,2]))/sd(signature[,2]))
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
70 overlap_prob_z=data.frame(signature[,1], (signature[,3] -mean(signature[,3]))/sd(signature[,3]))
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
71 YLIM=max(signature[,2])
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
72
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
73 ## Open output2 PDF file
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
74 pdf( "${output2}" )
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
75 par(mfrow=c(2,2),oma = c(0, 0, 3, 0))
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
76
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
77 plot(signature[,1:2], type = "h", main="Numbers of pairs", cex.main=1, xlab="overlap (nt)", ylim=c(0,YLIM), ylab="Numbers of pairs", col="darkslateblue", lwd=4)
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
78
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
79 plot(signaturez, type = "l", main="Number of pairs Z-scores", cex.main=1, xlab="overlap (nt)", ylab="z-score", pch=19, cex=0.2, col="darkslateblue", lwd=2)
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
80
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
81 plot(signature[,1], signature[,3]*100, type = "l", main="Overlap probabilities",
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
82 cex.main=1, xlab="overlap (nt)", ylab="Probability [%]", ylim=c(0,50),
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
83 pch=19, col="darkslateblue", lwd=2)
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
84
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
85 plot(overlap_prob_z, type = "l", main="Overlap Probability Z-scores", cex.main=1, xlab="overlap (nt)", ylab="z-score", pch=19, cex=0.2, col="darkslateblue", lwd=2)
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
86
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
87 mtext("Overlap Signatures of ${minquery}-${maxquery} against ${mintarget}-${maxtarget}nt small RNAs", outer = TRUE, cex=1)
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
88 devname = dev.off()
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
89 ## Close the PDF file
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
90 }
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
91
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
92 treillisgraph = function () {
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
93 ## Open output2 PDF file
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
94 pdf( "${output2}", paper="special", height=11.69, width=8.2677 )
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
95 signature = read.delim("${output}", header=TRUE)
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
96 options( show.error.messages=F,
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
97 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
98 library(lattice)
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
99 print (xyplot(signature[,3]*100~signature[,1]|signature[,4], type = "l", xlim=c(${minscope},${maxscope}), main="ping-pong Signature of ${minquery}-${maxquery} against ${mintarget}-${maxtarget}nt small RNAs",
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
100 par.strip.text=list(cex=.5), strip=strip.custom(which.given=1, bg="lightblue"), scales=list(cex=0.5),
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
101 cex.main=1, cex=.5, xlab="overlap (nt)", ylab="ping-pong signal [%]",
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
102 pch=19, col="darkslateblue", lwd =1.5, cex.lab=1.2, cex.axis=1.2,
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
103 layout=c(4,12), as.table=TRUE, newpage = T) )
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
104 devnname = dev.off()
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
105 }
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
106
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
107 if (graph_type=="global") {
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
108 globalgraph()
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
109
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
110 }
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
111 if(graph_type=="lattice") {
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
112 treillisgraph()
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
113 }
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
114 </configfile>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
115 </configfiles>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
116
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
117 <outputs>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
118 <data name="output" format="tabular" label = "signature data frame"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
119 <data name="output2" format="pdf" label="Overlap probabilities"/>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
120 </outputs>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
121
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
122 <help>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
123
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
124 **What it does**
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
125
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
126 This tool computes the number of pairs by overlap classes (in nt) from a bowtie output file, the z-score calculated from these numbers of pairs, and the ping-pong signal as described in Brennecke et al (2009) Science.
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
127 The numerical options set the min and max size of both the query small rna class and the target small rna class
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
128 Three type of signals are plotted in separate pdf files, the number of pairs founds, the z-score calculated from these numbers of pairs, and the ping-pong signal as described in Brennecke et al (2009) Science.
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
129
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
130 </help>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
131
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
132 <tests>
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
133 <test>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
134 <param name="genomeSource" value="history" />
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
135 <param name="ownFile" value ="ensembl.fa" ftype="fasta" />
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
136 <param name="input" value="sr_bowtie.bam" ftype="bam" />
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
137 <param name="minquery" value="23" />
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
138 <param name="maxquery" value="29" />
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
139 <param name="mintarget" value="23" />
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
140 <param name="maxtarget" value="29" />
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
141 <param name="minscope" value="5" />
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
142 <param name="maxscope" value="15" />
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
143 <param name="graph_type" value="global" />
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
144 <output name="output" ftype="tabular" file="signature.tab"/>
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
145 <output name="output2" ftype="pdf" file="signature.pdf"/>
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
146 </test>
1
9274c7b1e85c Fixed issue: now the plot properly reflects a subset of analysed overlaps, i.e 5 to 15 nucleotides of overlap.
chris <drosofff@gmail.com>
parents: 0
diff changeset
147 </tests>
0
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
148
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
149
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
150 </tool>
d613dbee3ce4 Imported from capsule None
drosofff
parents:
diff changeset
151