annotate karyotype/karyotype_plot.xml @ 3:88ecf2b559a0 draft

Uploaded
author devteam
date Thu, 22 Jan 2015 14:06:47 -0500
parents b1e0bf394aa9
children d917c1473e8e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
1 <tool id="karyotype_Plot_1" name="Karyotype Plotting tool" version="1.0.0">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
2 <description>for multiple series </description>
3
88ecf2b559a0 Uploaded
devteam
parents: 0
diff changeset
3 <command interpreter="bash">r_wrapper.sh $script_file</command>
0
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
4
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
5 <inputs>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
6 <param name="main" type="text" value="" size="30" label="Plot Title"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
7 <param name="xlab" type="text" value="" size="30" label="Label for x axis"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
8 <param name="ylab" type="text" value="" size="30" label="Label for y axis"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
9 <param name="lty" type="select" label="Backbone Line Type">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
10 <option value="1">Solid</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
11 <option value="2">Dashed</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
12 <option value="3">Dotted</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
13 </param>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
14 <param name="col" type="select" label="Backbone Line Color">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
15 <option value="1">Black</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
16 <option value="2">Red</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
17 <option value="3">Green</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
18 <option value="4">Blue</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
19 <option value="5">Cyan</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
20 <option value="6">Magenta</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
21 <option value="7">Yellow</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
22 <option value="8">Gray</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
23 </param>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
24 <param name="lwd" type="float" label="Backbone Line Width" value="1.0"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
25
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
26 <conditional name="legend">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
27 <param name="status" type="select" label="Include legend?">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
28 <option value="yes" selected="true">Yes</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
29 <option value="no">No</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
30 </param>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
31 <when value="yes">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
32 <param name="leg_title" type="text" value="" size="30" label="Legend title"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
33 <param name="leg_pos" type="select" label="Legend position">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
34 <option value="top" selected="true">top</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
35 <option value="topright">topright</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
36 <option value="topleft">topleft</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
37 <option value="bottom">bottom</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
38 <option value="bottomright">bottomright</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
39 <option value="bottomleft">bottomleft</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
40 <option value="left">left</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
41 <option value="right">right</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
42 <option value="center">center</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
43 </param>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
44 </when>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
45 <when value="no">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
46 </when>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
47 </conditional>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
48
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
49 <repeat name="series" title="Series">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
50 <param name="input" type="data" format="tabular" label="Dataset"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
51 <param name="chrcolumn" type="data_column" data_ref="input" label="Chromosome Column"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
52 <param name="startcolumn" type="data_column" data_ref="input" numerical="True" label="Start Column"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
53 <param name="endcolumn" type="data_column" data_ref="input" numerical="True" label="End Column"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
54 <param name="fpch" type="select" label="Point Type">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
55 <option value="1">Circle (hollow)</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
56 <option value="2">Triangle (hollow)</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
57 <option value="3">Cross</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
58 <option value="4">Diamond (hollow)</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
59 <option value="15">Square (filled)</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
60 <option value="16">Circle (filled)</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
61 <option value="17">Triangle (filled)</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
62 </param>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
63 <param name="fcol" type="select" label="Point Color">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
64 <option value="1">Black</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
65 <option value="2">Red</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
66 <option value="3">Green</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
67 <option value="4">Blue</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
68 <option value="5">Cyan</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
69 <option value="6">Magenta</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
70 <option value="7">Yellow</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
71 <option value="8">Gray</option>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
72 </param>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
73 <param name="fcex" type="float" label="Point Scale" value="1.0"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
74 <param name="leg_text" type="text" value="" size="30" label="Legend text" help="Will be printed only if Include Legend option is set to Yes"/>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
75 </repeat>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
76 </inputs>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
77
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
78 <configfiles>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
79 <configfile name="script_file">
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
80 ## Setup R error handling to go to stderr
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
81 options( show.error.messages=F,
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
82 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) },
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
83 warn = -1 )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
84 ## Determine range of all series in the plot
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
85 library('gtools')
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
86 chrlist = c()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
87 coordrange = c( NULL, NULL )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
88 #for $i, $s in enumerate( $series )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
89 s${i} = read.table( "${s.input.file_name}" )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
90 chrlist = union( chrlist, as.character(unique(s${i}[,${s.chrcolumn}])) )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
91 coordrange = range( coordrange, range(s${i}[,${s.startcolumn}]), range(s${i}[,${s.endcolumn}]) )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
92 #end for
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
93 chrlist=mixedsort(chrlist)
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
94 coordrange_byChr=list()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
95 length(coordrange_byChr) = length(chrlist)*2
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
96 dim(coordrange_byChr) = c(length(chrlist),2)
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
97 ci=1
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
98 for (chr in chrlist) {
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
99 #for $i, $s in enumerate( $series )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
100 s${i} = read.table( "${s.input.file_name}" )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
101 if (nrow(s${i}[s${i}[,${s.chrcolumn}]==chr,]) > 0) {
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
102 coordrange_byChr[ci,]=range(coordrange_byChr[ci,], s${i}[s${i}[,${s.chrcolumn}]==chr,c(${s.startcolumn},${s.endcolumn})])
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
103 }
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
104 #end for
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
105 ci=ci+1
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
106 }
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
107 ## Open output PDF file
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
108 pdf( "${out_file1}" )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
109 ## Dummy plot for axis / labels
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
110 plot( NULL, type="n", xlim=c(1,length(chrlist)), ylim=coordrange, axes=F, main="${main}", xlab="${xlab}", ylab="${ylab}" )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
111 box()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
112 axis(1,at=1:length(chrlist),labels=chrlist,cex.axis=0.9, las=2)
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
113 axis(2,at=seq(coordrange[1],coordrange[2], length.out=10))
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
114 ## Plot backbone lines for each chr
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
115 ci=1
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
116 for (chr in chrlist) {
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
117 lines(c(ci,ci),coordrange_byChr[ci,],lty=${lty},col=${col},lwd=${lwd})
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
118 ci=ci+1
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
119 }
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
120
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
121 legend_text=c()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
122 pchlist=c()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
123 colorlist=c()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
124 ## Plot each series
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
125 #for $i, $s in enumerate( $series )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
126 chrs=as.character(s${i}[,${s.chrcolumn}])
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
127 xvals=sapply(chrs,function(x) which(chrlist==x))
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
128 points(xvals, s${i}[,${s.startcolumn}], pch=${s.fpch}, cex=${s.fcex}, col=${s.fcol} )
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
129 legend_text[${i}+1] = "${s.leg_text}"
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
130 pchlist[${i}+1] = ${s.fpch}
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
131 colorlist[${i}+1] = ${s.fcol}
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
132 #end for
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
133
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
134 #if $legend['status'] == "yes"
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
135 legend_title = "$legend.leg_title"
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
136 legend_pos = "$legend.leg_pos"
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
137 legend(legend_pos, title=legend_title, legend=legend_text, pch=pchlist, col=colorlist)
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
138 #end if
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
139
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
140 ## Close the PDF file
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
141 devname = dev.off()
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
142 </configfile>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
143 </configfiles>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
144
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
145 <outputs>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
146 <data format="pdf" name="out_file1" />
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
147 </outputs>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
148
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
149 <requirements>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
150 <requirement type="set_environment">R_SCRIPT_PATH</requirement>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
151 <requirement type="package" version="2.15.0">R</requirement>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
152 </requirements>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
153
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
154 <help>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
155 .. class:: infomark
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
156
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
157 **What it does**
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
158
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
159 This tool allows you to paint genomic regions of interest on chromosomes arranged in a karyotype-like fashion. It also allows you to have multiple series in a plot, with each series corresponding to a different feature/dataset.
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
160
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
161 -----
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
162
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
163 .. class:: warningmark
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
164
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
165 Chromosome lengths (backbone line) are determined based on min and max co-ordinates (by chromosome) in start and end columns respectively. For the series, only the co-ordiantes in start column are used for plotting.
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
166
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
167 -----
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
168
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
169 **Example**
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
170
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
171 Below is an example of a two series karyotype plot:
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
172
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
173 .. image:: ./static/operation_icons/karyotype_output.png
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
174 :height: 540
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
175 :width: 540
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
176
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
177 </help>
b1e0bf394aa9 Imported from capsule None
devteam
parents:
diff changeset
178 </tool>