Mercurial > repos > devteam > xy_plot
comparison xy_plot.xml @ 3:2d28f96a309a draft
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/xy_plot commit facdb350072c8492654c90040fea3109dc9b51cd
| author | devteam |
|---|---|
| date | Wed, 07 Dec 2016 18:29:11 -0500 |
| parents | 7fb3b742f15f |
| children | d449deb33159 |
comparison
equal
deleted
inserted
replaced
| 2:7fb3b742f15f | 3:2d28f96a309a |
|---|---|
| 1 <tool id="XY_Plot_1" name="Plotting tool" version="1.0.1"> | 1 <tool id="XY_Plot_1" name="Plotting tool" version="1.0.2"> |
| 2 <description>for multiple series and graph types</description> | 2 <description>for multiple series and graph types</description> |
| 3 <requirements> | 3 <requirements> |
| 4 <requirement type="package" version="2.11.0">R</requirement> | 4 <requirement type="package" version="3.2.1">R</requirement> |
| 5 </requirements> | 5 <requirement type="package" version="2.11.1">fontconfig</requirement> |
| 6 <command interpreter="bash">r_wrapper.sh $script_file</command> | 6 </requirements> |
| 7 <command interpreter="bash">r_wrapper.sh $script_file</command> | |
| 8 <configfiles> | |
| 9 <configfile name="script_file"> | |
| 10 ## Setup R error handling to go to stderr | |
| 11 options( show.error.messages=F, | |
| 12 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) | |
| 13 ## Determine range of all series in the plot | |
| 14 xrange = c( NULL, NULL ) | |
| 15 yrange = c( NULL, NULL ) | |
| 16 #for $i, $s in enumerate( $series ) | |
| 17 s${i} = read.table( "${s.input.file_name}", h=${s.header} ) | |
| 18 x${i} = s${i}[,${s.xcol}] | |
| 19 yrange = 0 | |
| 20 #for $column in str($s.ycol).split(','): | |
| 21 y${i}${column} = s${i}[,${column}] | |
| 22 yrange = range(y${i}${column}, yrange, na.rm=TRUE ) | |
| 23 #end for | |
| 24 xrange = range( x${i}, xrange, na.rm=TRUE ) | |
| 25 #end for | |
| 26 ## Open output PDF file | |
| 27 #if $outftype.value == "pdf" | |
| 28 pdf("outfile.pdf") | |
| 29 #else | |
| 30 "${outftype}"( "outfile.${outftype}" , type="cairo") | |
| 31 #end if | |
| 32 ## Dummy plot for axis / labels | |
| 33 plot( NULL, type="n", xlim=xrange, ylim=yrange, main="${main}", xlab="${xlab}", ylab="${ylab}" ) | |
| 34 ## Plot each series | |
| 35 #for $i, $s in enumerate( $series ) | |
| 36 #if $s.series_type['type'] == "line" | |
| 37 #for $column in str($s.ycol).split(','): | |
| 38 lines( x${i}, y${i}${column}, lty=${s.series_type.lty}, lwd=${s.series_type.lwd}, col=${s.series_type.col} ) | |
| 39 #end for | |
| 40 #elif $s.series_type.type == "points" | |
| 41 #for $column in str($s.ycol).split(','): | |
| 42 points( x${i}, y${i}${column}, pch=${s.series_type.pch}, cex=${s.series_type.cex}, col=${s.series_type.col} ) | |
| 43 #end for | |
| 44 #end if | |
| 45 #end for | |
| 46 ## Close the PDF file | |
| 47 devname = dev.off() | |
| 48 </configfile> | |
| 49 </configfiles> | |
| 7 | 50 |
| 8 <inputs> | 51 <inputs> |
| 9 <param name="main" type="text" value="" label="Plot Title"/> | 52 <param name="main" type="text" value="" label="Plot Title"/> |
| 10 <param name="xlab" type="text" value="" label="Label for x axis"/> | 53 <param name="xlab" type="text" value="" label="Label for x axis"/> |
| 11 <param name="ylab" type="text" value="" label="Label for y axis"/> | 54 <param name="ylab" type="text" value="" label="Label for y axis"/> |
| 55 <param name="outftype" type="select" label="Output File Type"> | |
| 56 <option value="pdf">PDF</option> | |
| 57 <option value="png">PNG</option> | |
| 58 </param> | |
| 12 <repeat name="series" title="Series"> | 59 <repeat name="series" title="Series"> |
| 13 <param name="input" type="data" format="tabular" label="Dataset"/> | 60 <param name="input" type="data" format="tabular" label="Dataset"/> |
| 61 <param name="header" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Header in first line?"/> | |
| 14 <param name="xcol" type="data_column" data_ref="input" label="Column for x axis"/> | 62 <param name="xcol" type="data_column" data_ref="input" label="Column for x axis"/> |
| 15 <param name="ycol" type="data_column" data_ref="input" label="Column for y axis"/> | 63 <param name="ycol" type="data_column" data_ref="input" multiple="true" label="Column for y axis"/> |
| 16 <conditional name="series_type"> | 64 <conditional name="series_type"> |
| 17 <param name="type" type="select" label="Series Type"> | 65 <param name="type" type="select" label="Series Type"> |
| 18 <option value="line" selected="true">Line</option> | 66 <option value="line" selected="true">Line</option> |
| 19 <option value="points">Points</option> | 67 <option value="points">Points</option> |
| 20 </param> | 68 </param> |
| 42 <option value="2">Triangle (hollow)</option> | 90 <option value="2">Triangle (hollow)</option> |
| 43 <option value="3">Cross</option> | 91 <option value="3">Cross</option> |
| 44 <option value="4">Diamond (hollow)</option> | 92 <option value="4">Diamond (hollow)</option> |
| 45 <option value="15">Square (filled)</option> | 93 <option value="15">Square (filled)</option> |
| 46 <option value="16">Circle (filled)</option> | 94 <option value="16">Circle (filled)</option> |
| 47 <option value="17">Triangle (filled)</option> | 95 <option value="17">Triangle (filled)</option> |
| 48 </param> | 96 </param> |
| 49 <param name="col" type="select" label="Point Color"> | 97 <param name="col" type="select" label="Point Color"> |
| 50 <option value="1">Black</option> | 98 <option value="1">Black</option> |
| 51 <option value="2">Red</option> | 99 <option value="2">Red</option> |
| 52 <option value="3">Green</option> | 100 <option value="3">Green</option> |
| 57 <option value="8">Gray</option> | 105 <option value="8">Gray</option> |
| 58 </param> | 106 </param> |
| 59 <param name="cex" type="float" label="Point Scale" value="1.0"/> | 107 <param name="cex" type="float" label="Point Scale" value="1.0"/> |
| 60 </when> | 108 </when> |
| 61 </conditional> | 109 </conditional> |
| 62 </repeat> | 110 </repeat> |
| 63 </inputs> | 111 </inputs> |
| 64 | |
| 65 <configfiles> | |
| 66 <configfile name="script_file"> | |
| 67 ## Setup R error handling to go to stderr | |
| 68 options( show.error.messages=F, | |
| 69 error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) | |
| 70 ## Determine range of all series in the plot | |
| 71 xrange = c( NULL, NULL ) | |
| 72 yrange = c( NULL, NULL ) | |
| 73 #for $i, $s in enumerate( $series ) | |
| 74 s${i} = read.table( "${s.input.file_name}" ) | |
| 75 x${i} = s${i}[,${s.xcol}] | |
| 76 y${i} = s${i}[,${s.ycol}] | |
| 77 xrange = range( x${i}, xrange ) | |
| 78 yrange = range( y${i}, yrange ) | |
| 79 #end for | |
| 80 ## Open output PDF file | |
| 81 pdf( "${out_file1}" ) | |
| 82 ## Dummy plot for axis / labels | |
| 83 plot( NULL, type="n", xlim=xrange, ylim=yrange, main="${main}", xlab="${xlab}", ylab="${ylab}" ) | |
| 84 ## Plot each series | |
| 85 #for $i, $s in enumerate( $series ) | |
| 86 #if $s.series_type['type'] == "line" | |
| 87 lines( x${i}, y${i}, lty=${s.series_type.lty}, lwd=${s.series_type.lwd}, col=${s.series_type.col} ) | |
| 88 #elif $s.series_type.type == "points" | |
| 89 points( x${i}, y${i}, pch=${s.series_type.pch}, cex=${s.series_type.cex}, col=${s.series_type.col} ) | |
| 90 #end if | |
| 91 #end for | |
| 92 ## Close the PDF file | |
| 93 devname = dev.off() | |
| 94 </configfile> | |
| 95 </configfiles> | |
| 96 | |
| 97 <outputs> | 112 <outputs> |
| 98 <data format="pdf" name="out_file1" /> | 113 <data format="pdf" name="out_file_pdf" from_work_dir="outfile.pdf" > |
| 114 <filter>(outftype == 'pdf')</filter> | |
| 115 </data> | |
| 116 <data format="png" name="out_file_png" from_work_dir="outfile.png"> | |
| 117 <filter>(outftype == 'png')</filter> | |
| 118 </data> | |
| 99 </outputs> | 119 </outputs> |
| 100 | |
| 101 <tests> | 120 <tests> |
| 102 <test> | 121 <test> |
| 103 <param name="main" value="Example XY Plot"/> | 122 <param name="main" value="Example XY Plot"/> |
| 104 <param name="xlab" value="Column 1"/> | 123 <param name="xlab" value="Column 1"/> |
| 105 <param name="ylab" value="Column 2"/> | 124 <param name="ylab" value="Column 2"/> |
| 125 <param name="outftype" value="pdf"/> | |
| 106 <param name="input" value="2.tabular" ftype="tabular"/> | 126 <param name="input" value="2.tabular" ftype="tabular"/> |
| 107 <param name="xcol" value="1"/> | 127 <param name="xcol" value="1"/> |
| 108 <param name="ycol" value="2"/> | 128 <param name="ycol" value="2"/> |
| 109 <param name="type" value="line"/> | 129 <param name="type" value="line"/> |
| 110 <param name="lty" value="2"/> | 130 <param name="lty" value="2"/> |
| 111 <param name="col" value="2"/> | 131 <param name="col" value="2"/> |
| 112 <param name="lwd" value="1.0"/> | 132 <param name="lwd" value="1.0"/> |
| 113 <output name="out_file1" file="XY_Plot_1_out.pdf"/> | 133 <output name="out_file_pdf" file="XY_Plot_1_out.pdf" ftype="pdf" compare="sim_size" /> |
| 134 </test> | |
| 135 <test><!-- test with file with header line, NA values, multiple ycols and PNG output --> | |
| 136 <param name="main" value="Example XY Plot PNG"/> | |
| 137 <param name="xlab" value="xlab"/> | |
| 138 <param name="ylab" value="ylab"/> | |
| 139 <param name="outftype" value="png"/> | |
| 140 <param name="series_0|input" value="testinput2.tsv" ftype="tabular"/> | |
| 141 <param name="series_0|header" value="TRUE"/> | |
| 142 <param name="series_0|xcol" value="1"/> | |
| 143 <param name="series_0|ycol" value="2,3"/> | |
| 144 <param name="series_0|type" value="points"/> | |
| 145 <param name="series_0|pch" value="1"/> | |
| 146 <param name="series_0|col" value="2"/> | |
| 147 <param name="series_0|cex" value="1.0"/> | |
| 148 <output name="out_file_png" ftype="png" file="testoutput.png" compare="sim_size" /> | |
| 114 </test> | 149 </test> |
| 115 </tests> | 150 </tests> |
| 116 <help> | 151 <help> |
| 117 .. class:: infomark | 152 .. class:: infomark |
| 118 | 153 |
| 137 5 58 3.2 | 172 5 58 3.2 |
| 138 6 60 3.1 | 173 6 60 3.1 |
| 139 7 67 3.8 | 174 7 67 3.8 |
| 140 8 68 4.1 | 175 8 68 4.1 |
| 141 9 71 4.3 | 176 9 71 4.3 |
| 142 10 69 3.7 | 177 10 69 3.7 |
| 143 | 178 |
| 144 Create a two series XY plot on the above data: | 179 Create a two series XY plot on the above data: |
| 145 | 180 |
| 146 - Series 1: Red Dashed-Line plot between columns 1 and 2 | 181 - Series 1: Red Dashed-Line plot between columns 1 and 2 |
| 147 - Series 2: Blue Circular-Point plot between columns 3 and 2 | 182 - Series 2: Blue Circular-Point plot between columns 3 and 2 |
| 148 | 183 |
| 149 .. image:: xy_example.jpg | 184 .. image:: xy_example.jpg |
| 150 </help> | 185 </help> |
| 186 <citations/> | |
| 151 </tool> | 187 </tool> |
