# HG changeset patch
# User devteam
# Date 1481153351 18000
# Node ID 2d28f96a309a7ad5d0b9f1358c94e633d6261c2e
# Parent 7fb3b742f15fe63290a4caab8c06e3028f1b4223
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/xy_plot commit facdb350072c8492654c90040fea3109dc9b51cd
diff -r 7fb3b742f15f -r 2d28f96a309a r_wrapper.sh
--- a/r_wrapper.sh Tue Oct 13 12:36:30 2015 -0400
+++ b/r_wrapper.sh Wed Dec 07 18:29:11 2016 -0500
@@ -1,6 +1,6 @@
#!/bin/sh
-### Run R providing the R script in $1 as standard input and passing
+### Run R providing the R script in $1 as standard input and passing
### the remaining arguments on the command line
# Function that writes a message to stderr and exits
@@ -11,7 +11,7 @@
}
# Ensure R executable is found
-which R > /dev/null || fail "'R' is required by this tool but was not found on path"
+which R > /dev/null || fail "'R' is required by this tool but was not found on path"
# Extract first argument
infile=$1; shift
diff -r 7fb3b742f15f -r 2d28f96a309a test-data/testinput2.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/testinput2.tsv Wed Dec 07 18:29:11 2016 -0500
@@ -0,0 +1,82 @@
+numsampled 0.03-F3D0 0.03-F3D1
+1 1 1
+100 41.656 45.056
+200 59.033 61.574
+300 70.564 71.47
+400 78.832 78.473
+500 85.365 83.999
+600 90.809 88.67
+700 95.37 92.661
+800 99.424 96.192
+900 102.93 99.322
+1000 106.109 102.104
+1100 109.093 104.719
+1200 111.779 107.177
+1300 114.358 109.452
+1400 116.659 111.602
+1500 118.767 113.489
+1600 120.752 115.256
+1700 122.691 116.981
+1800 124.511 118.561
+1900 126.265 120.041
+2000 127.967 121.466
+2100 129.51 122.863
+2200 130.973 124.201
+2300 132.418 125.504
+2400 133.783 126.659
+2440 134.324 127.108
+2450 134.432 127.22
+2500 135.037 127.781
+2600 136.268 128.837
+2700 137.479 129.829
+2800 138.638 130.799
+2900 139.759 131.741
+3000 140.851 132.618
+3100 141.941 133.494
+3200 142.993 134.339
+3300 144.002 135.161
+3400 144.999 135.897
+3482 145.788 136.509
+3497 145.931 136.616
+3500 145.967 136.635
+3600 146.838 137.341
+3700 147.726 137.99
+3800 148.541 138.637
+3877 149.223 139.149
+3900 149.396 139.3
+4000 150.177 139.985
+4082 150.853 140.463
+4100 150.991 140.575
+4169 151.478 141.019
+4200 151.704 141.206
+4287 152.323 141.704
+4300 152.429 141.784
+4400 153.157 142.358
+4500 153.884 142.945
+4600 154.56 143.523
+4690 155.146 144
+4698 155.195 NA
+4700 155.207 NA
+4800 155.864 NA
+4900 156.501 NA
+5000 157.099 NA
+5100 157.699 NA
+5200 158.304 NA
+5300 158.887 NA
+5315 158.968 NA
+5400 159.501 NA
+5500 160.099 NA
+5582 160.613 NA
+5600 160.709 NA
+5700 161.263 NA
+5773 161.67 NA
+5800 161.81 NA
+5900 162.337 NA
+6000 162.853 NA
+6100 163.362 NA
+6200 163.873 NA
+6223 164 NA
+6300 NA NA
+6400 NA NA
+6437 NA NA
+6500 NA NA
diff -r 7fb3b742f15f -r 2d28f96a309a test-data/testoutput.png
Binary file test-data/testoutput.png has changed
diff -r 7fb3b742f15f -r 2d28f96a309a xy_plot.xml
--- a/xy_plot.xml Tue Oct 13 12:36:30 2015 -0400
+++ b/xy_plot.xml Wed Dec 07 18:29:11 2016 -0500
@@ -1,151 +1,187 @@
-
- for multiple series and graph types
-
- R
-
- r_wrapper.sh $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()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.. 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:: xy_example.jpg
-
-
+
+ for multiple series and graph types
+
+ R
+ fontconfig
+
+ r_wrapper.sh $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}", h=${s.header} )
+ x${i} = s${i}[,${s.xcol}]
+ yrange = 0
+ #for $column in str($s.ycol).split(','):
+ y${i}${column} = s${i}[,${column}]
+ yrange = range(y${i}${column}, yrange, na.rm=TRUE )
+ #end for
+ xrange = range( x${i}, xrange, na.rm=TRUE )
+ #end for
+ ## Open output PDF file
+ #if $outftype.value == "pdf"
+ pdf("outfile.pdf")
+ #else
+ "${outftype}"( "outfile.${outftype}" , type="cairo")
+ #end if
+ ## 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"
+ #for $column in str($s.ycol).split(','):
+ lines( x${i}, y${i}${column}, lty=${s.series_type.lty}, lwd=${s.series_type.lwd}, col=${s.series_type.col} )
+ #end for
+ #elif $s.series_type.type == "points"
+ #for $column in str($s.ycol).split(','):
+ points( x${i}, y${i}${column}, pch=${s.series_type.pch}, cex=${s.series_type.cex}, col=${s.series_type.col} )
+ #end for
+ #end if
+ #end for
+ ## Close the PDF file
+ devname = dev.off()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (outftype == 'pdf')
+
+
+ (outftype == 'png')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. 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:: xy_example.jpg
+
+
+