Mercurial > repos > iuc > tsne
diff rtsne.xml @ 0:dd53658a0843 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/tsne commit 62172bde663955b6c3cb86dc22c47739824f014a
author | iuc |
---|---|
date | Tue, 22 Aug 2017 07:38:53 -0400 |
parents | |
children | 53cfe6f313b3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rtsne.xml Tue Aug 22 07:38:53 2017 -0400 @@ -0,0 +1,122 @@ +<tool id="tsne" name="rtsne" version="0.0.2"> + <requirements> + <requirement type="package">r-getopt</requirement> + <requirement type="package">r-rtsne</requirement> + <requirement type="package">r-ggplot2</requirement> + </requirements> + <command detect_errors="exit_code"><![CDATA[ +cat '$script' && +Rscript '$script' && +mv output_plot.pdf $output1 + ]]></command> + <configfiles> + <configfile name="script"><![CDATA[ +## Setup R error handling to go to stderr +options(show.error.messages=F, error=function(){cat(geterrmessage(),file=stderr());q("no",1,F)}) +loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") + +## Import library +library(Rtsne) +library(ggplot2) + +all <- read.delim('$input1', sep='\t', header=TRUE) + +data = $data +name = $name + +#if $transform == "none" + log.all <- all[, data:ncol(all)] +#elif $transform == "log2" + log.all <- log2(all[, data:ncol(all)]) +#elsif $transform == "log2plus1" + log.all <- log2(1+all[, data:ncol(all)]) +#elif $transform == "log10" + log.all <- log(all[, data:ncol(all)]) +#elif $transform == "log10plus1" + log.all <- log(1+all[, data:ncol(all)]) +#end if + +## Show/hide legend +#if $legend == "yes" + gg_legend = NULL +#else + gg_legend = theme(legend.position="none") +#end if + +set.seed($seed) ## Sets seed for reproducibility +tsne_out <- Rtsne(as.matrix(log.all[,1:ncol(log.all)]), perplexity=$perp, theta=$theta) ## Run TSNE + +embedding <- as.data.frame(tsne_out\$Y) +embedding\$Class <- as.factor(sub("Class_", "", all[,name])) + +ggplot(embedding, aes(x=V1, y=V2, color=Class)) + + geom_point(size=1.25) + + gg_legend + + xlab("") + + ylab("") + + ggtitle('$title') + +ggsave(file='output_plot.pdf') +dev.off() + + ]]></configfile> + </configfiles> + + <inputs> + <param name="input1" type="data" format="tabular" + label="Tabular input dataset" + help="Input should have column headers with an identifier column followed by consencutive numerical columns used for clustering"/> + <param name="title" type="text" format="txt" label="Plot title"/> + <param name="seed" value="42.0" type="float" label="Seed value for reproducibiity" help="Set to 42 as default" /> + <param name="perp" value="10.0" type="float" label="perplexity"/> + <param name="theta" value="1.0" type="float" label="theta"/> + <param name="name" value="1" type="data_column" data_ref="input1" + label="The column with the ID to use in grouping (or just an ID if plotting invdividuals)"/> + <param name="data" value="2" type="data_column" data_ref="input1" + label="The column that contains the first numerical data"/> + <param name="transform" type="select" label="Advanced - log transformation"> + <option value="none">Plot the data as it is</option> + <option value="log2">Log2(value) transform my data</option> + <option value="log2plus1">Log2(value+1) transform my data</option> + <option value="log10">Log10(value) transform my data</option> + <option value="log10plus1">Log10(value+1) transform my data</option> + </param> + + <param name="legend" type="select" label="Legend options"> + <option value="yes">Include legend on plot</option> + <option value="no">Hide legend</option> + </param> + </inputs> + <outputs> + <data name="output1" format="pdf" from_work_dir="Rplot.pdf"/> + </outputs> + <tests> + <test> + <param name="input1" value="mtcars.txt"/> + <param name="transform" value="none"/> + <param name="perp" value="10.0"/> + <output name="output1" file="Rplot.pdf"/> + </test> + </tests> + <help><![CDATA[ +T-distributed Stochastic Neighbor Embedding implementation by Van der Maaten (see <https://github.com/lvdmaaten/bhtsne/> +for more information on the original implementation). + +Your data should be in tabular format. Objects in rows will be clustered according to the observations in columns. +Labels for objects can be assigned in the tool form by providing the column number of the identifier you wish to use. +Additionaly, the first column containing numeric data should be provided to the tool form. + + ]]></help> + <citations> + <citation type="bibtex"> +@Manual{, + title = {{Rtsne}: T-Distributed Stochastic Neighbor Embedding using + Barnes-Hut Implementation}, + author = {Jesse H. Krijthe}, + year = {2015}, + note = {R package version 0.13}, + url = {https://github.com/jkrijthe/Rtsne}, + } + </citation> + </citations> +</tool>