Mercurial > repos > iuc > tsne
changeset 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 |
files | rtsne.xml test-data/Rplot.pdf test-data/mtcars.txt |
diffstat | 3 files changed, 155 insertions(+), 0 deletions(-) [+] |
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>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/mtcars.txt Tue Aug 22 07:38:53 2017 -0400 @@ -0,0 +1,33 @@ +model mpg cyl disp hp drat wt qsec vs am gear carb +Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4 +Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4 +Datsun 710 22.8 4 108 93 3.85 2.32 18.61 1 1 4 1 +Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 +Hornet Sportabout 18.7 8 360 175 3.15 3.44 17.02 0 0 3 2 +Valiant 18.1 6 225 105 2.76 3.46 20.22 1 0 3 1 +Duster 360 14.3 8 360 245 3.21 3.57 15.84 0 0 3 4 +Merc 240D 24.4 4 146.7 62 3.69 3.19 20 1 0 4 2 +Merc 230 22.8 4 140.8 95 3.92 3.15 22.9 1 0 4 2 +Merc 280 19.2 6 167.6 123 3.92 3.44 18.3 1 0 4 4 +Merc 280C 17.8 6 167.6 123 3.92 3.44 18.9 1 0 4 4 +Merc 450SE 16.4 8 275.8 180 3.07 4.07 17.4 0 0 3 3 +Merc 450SL 17.3 8 275.8 180 3.07 3.73 17.6 0 0 3 3 +Merc 450SLC 15.2 8 275.8 180 3.07 3.78 18 0 0 3 3 +Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4 +Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4 +Chrysler Imperial 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4 +Fiat 128 32.4 4 78.7 66 4.08 2.2 19.47 1 1 4 1 +Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 +Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.9 1 1 4 1 +Toyota Corona 21.5 4 120.1 97 3.7 2.465 20.01 1 0 3 1 +Dodge Challenger 15.5 8 318 150 2.76 3.52 16.87 0 0 3 2 +AMC Javelin 15.2 8 304 150 3.15 3.435 17.3 0 0 3 2 +Camaro Z28 13.3 8 350 245 3.73 3.84 15.41 0 0 3 4 +Pontiac Firebird 19.2 8 400 175 3.08 3.845 17.05 0 0 3 2 +Fiat X1-9 27.3 4 79 66 4.08 1.935 18.9 1 1 4 1 +Porsche 914-2 26 4 120.3 91 4.43 2.14 16.7 0 1 5 2 +Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.9 1 1 5 2 +Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4 +Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6 +Maserati Bora 15 8 301 335 3.54 3.57 14.6 0 1 5 8 +Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2