mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
- Dependencies between parameters and refresh_on_change are now more general. Any parameter can assert a dependency on any other parameter by name, and if a parameter has dependencies it will cause a refresh. - Use "other_values" to get at the value of the associated dataset rather than trying to look at the tool. This means that column lists now work inside grouping constructs. - Eliminated tool.updated_params and use of self.legal_values. These variables are GLOBAL. Everybody using a tool has a reference to the same instance of tool. Thus, if two people are using the same tool at once this can cause serious problems.
148 lines
5.2 KiB
XML
148 lines
5.2 KiB
XML
<tool id="XY_Plot_1" name="Plotting tool">
|
|
<description>for multiple series and graph types</description>
|
|
<command interpreter="bash">r_wrapper.sh $script_file</command>
|
|
|
|
<inputs>
|
|
|
|
<param name="main" type="text"
|
|
value="" size="30"
|
|
label="Plot Title"/>
|
|
<param name="xlab" type="text"
|
|
value="" size="30"
|
|
label="Label for x axis"/>
|
|
<param name="ylab" type="text"
|
|
value="" size="30"
|
|
label="Label for y axis"/>
|
|
|
|
<repeat name="series" title="Series">
|
|
<param name="input"
|
|
type="data" format="tabular"
|
|
label="Dataset"/>
|
|
<param name="xcol" type="data_column" data_ref="input"
|
|
value="1" size="30"
|
|
label="Column for x axis"/>
|
|
<param name="ycol" type="data_column" data_ref="input"
|
|
value="1" size="30"
|
|
label="Column for y axis"/>
|
|
<conditional name="series_type">
|
|
<param name="type" type="select" label="Series Type">
|
|
<option value="line" selected="true">Line</option>
|
|
<option value="points">Points</option>
|
|
</param>
|
|
<when value="line">
|
|
<param name="lty" type="select" label="Line Type">
|
|
<option value="1">Solid</option>
|
|
<option value="2">Dashed</option>
|
|
<option value="3">Dotted</option>
|
|
</param>
|
|
<param name="col" type="select" label="Line Color">
|
|
<option value="1">Black</option>
|
|
<option value="2">Red</option>
|
|
<option value="3">Green</option>
|
|
<option value="4">Blue</option>
|
|
<option value="5">Cyan</option>
|
|
<option value="6">Magenta</option>
|
|
<option value="7">Yellow</option>
|
|
<option value="8">Gray</option>
|
|
</param>
|
|
<param name="lwd" type="float" label="Line Width" value="1.0"/>
|
|
</when>
|
|
<when value="points">
|
|
<param name="pch" type="select" label="Point Type">
|
|
<option value="1">Circle (hollow)</option>
|
|
<option value="2">Triangle (hollow)</option>
|
|
<option value="3">Cross</option>
|
|
<option value="4">Diamond (hollow)</option>
|
|
<option value="15">Square (filled)</option>
|
|
<option value="16">Circle (filled)</option>
|
|
<option value="17">Triangle (filled)</option>
|
|
</param>
|
|
<param name="col" type="select" label="Point Color">
|
|
<option value="1">Black</option>
|
|
<option value="2">Red</option>
|
|
<option value="3">Green</option>
|
|
<option value="4">Blue</option>
|
|
<option value="5">Cyan</option>
|
|
<option value="6">Magenta</option>
|
|
<option value="7">Yellow</option>
|
|
<option value="8">Gray</option>
|
|
</param>
|
|
<param name="cex" type="float" label="Point Scale" value="1.0"/>
|
|
</when>
|
|
</conditional>
|
|
</repeat>
|
|
</inputs>
|
|
|
|
<configfiles>
|
|
<configfile name="script_file">
|
|
## Setup R error handling to go to stderr
|
|
options( show.error.messages=F,
|
|
error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
|
|
## Determine range of all series in the plot
|
|
xrange = c( NULL, NULL )
|
|
yrange = c( NULL, NULL )
|
|
#for $i, $s in enumerate( $series )
|
|
s${i} = read.table( "${s.input.file_name}" )
|
|
x${i} = s${i}[,${s.xcol}]
|
|
y${i} = s${i}[,${s.ycol}]
|
|
xrange = range( x${i}, xrange )
|
|
yrange = range( y${i}, yrange )
|
|
#end for
|
|
## Open output PDF file
|
|
pdf( "${out_file1}" )
|
|
## Dummy plot for axis / labels
|
|
plot( NULL, type="n", xlim=xrange, ylim=yrange, main="${main}", xlab="${xlab}", ylab="${ylab}" )
|
|
## Plot each series
|
|
#for $i, $s in enumerate( $series )
|
|
#if $s.series_type['type'] == "line"
|
|
lines( x${i}, y${i}, lty=${s.series_type.lty}, lwd=${s.series_type.lwd}, col=${s.series_type.col} )
|
|
#elif $s.series_type.type == "points"
|
|
points( x${i}, y${i}, pch=${s.series_type.pch}, cex=${s.series_type.cex}, col=${s.series_type.col} )
|
|
#end if
|
|
#end for
|
|
## Close the PDF file
|
|
devname = dev.off()
|
|
</configfile>
|
|
</configfiles>
|
|
|
|
<outputs>
|
|
<data format="pdf" name="out_file1" />
|
|
</outputs>
|
|
|
|
<help>
|
|
.. class:: infomark
|
|
|
|
This tool allows you to plot values contained in columns of a dataset against each other and also allows you to have different series corresponding to the same or different datasets in one plot.
|
|
|
|
-----
|
|
|
|
.. class:: warningmark
|
|
|
|
This tool throws an error if the columns selected for plotting are absent or are not numeric and also if the lengths of these columns differ.
|
|
|
|
-----
|
|
|
|
**Example**
|
|
|
|
Input file::
|
|
|
|
1 68 4.1
|
|
2 71 4.6
|
|
3 62 3.8
|
|
4 75 4.4
|
|
5 58 3.2
|
|
6 60 3.1
|
|
7 67 3.8
|
|
8 68 4.1
|
|
9 71 4.3
|
|
10 69 3.7
|
|
|
|
Create a two series XY plot on the above data:
|
|
|
|
- Series 1: Red Dashed-Line plot between columns 1 and 2
|
|
- Series 2: Blue Circular-Point plot between columns 3 and 2
|
|
|
|
.. image:: ../static/images/xy_example.jpg
|
|
</help>
|
|
</tool>
|