Mercurial > repos > xuebing > sharplabtool
diff mytools/cdf.xml @ 7:f0dc65e7f6c0
Uploaded
author | xuebing |
---|---|
date | Fri, 09 Mar 2012 19:59:07 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mytools/cdf.xml Fri Mar 09 19:59:07 2012 -0500 @@ -0,0 +1,78 @@ +<tool id="cdf" name="CDF"> + <description>plot of multiple numeric columns</description> + <command>cat $script_file | R --vanilla --slave > $out_log </command> + <inputs> + <param name="title" type="text" value="CDF plot" size="30" label="Plot title"/> + <param name="xlabel" type="text" value="value" size="30" label="xlabel"/> + <param name="log" label="log2 transform the data" type="boolean" truevalue="log" falsevalue="none" checked="False"/> + <param name="zero" label="remove zero" type="boolean" truevalue="zero" falsevalue="none" checked="False"/> + <param name="legendloc" type="select" label="legend location on CDF plot" > + <option value="bottomright" selected="true">bottomright</option> + <option value="bottomleft">bottomleft</option> + <option value="bottom">bottom</option> + <option value="left">left</option> + <option value="topleft">topleft</option> + <option value="top">top</option> + <option value="topright">topright</option> + <option value="right">right</option> + <option value="center">center</option> + </param> + <repeat name="series" title="sample"> + <param name="label" type="text" value="" size="30" label="data label"/> + <param name="input" type="data" format="tabular" label="dataset"/> + <param name="column" type="integer" value="2" label="column number (-1 for last column)"/> + </repeat> + + </inputs> + + <configfiles> + <configfile name="script_file"> + ## Setup R error handling to go to stderr + options(warn=-1) + source("/Users/xuebing/galaxy-dist/tools/mytools/cdf.r") + uselog = as.character("${log}") + zero = as.character("${zero}") + title = as.character("${title}") + xlabel = as.character("${xlabel}") + if (uselog=='log'){ + xlabel = paste('log2',xlabel) + } + + labels = character(0) + x = list() + #for $i, $s in enumerate( $series ) + labels = c(labels,"${s.label.value}") + x0 = read.table( "${s.input.file_name}" ,sep='\t') + col = ${s.column.value} + if (col == -1) {col = ncol(x0)} + x0 = x0[,col] + if (zero == 'zero'){ + x0 = x0[x0 != 0] + } + if (uselog=='log'){ + x0=log2(1+x0) + } + print("${s.label.value}") + summary(x0) + x[[$i+1]] = x0 + #end for + pdf("${out_file}") + mycdf(x,title,labels,"${legendloc}",xlabel,'') + dev.off() + </configfile> + </configfiles> + + <outputs> + <data format="txt" name="out_log" label="${tool.name} on ${on_string}: (log)" /> + <data format="pdf" name="out_file" label="${tool.name} on ${on_string}: (plot)" /> + </outputs> + +<help> + +.. class:: infomark + +This tool generate barplot and CDF plot comparing multiple numeric columns in different files. + + +</help> +</tool>