Repository 'plot_pca'
hg clone https://toolshed.g2.bx.psu.edu/repos/vmarcon/plot_pca

Changeset 0:610e86c430a9 (2017-10-23)
Commit message:
planemo upload commit 0b661bcf940c03e11becd42b3321df9573b591b2
added:
LICENSE
plot_pca.R
plot_pca.xml
rainbow.3.txt
test-data/decathlon.tsv
test-data/output
b
diff -r 000000000000 -r 610e86c430a9 LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE Mon Oct 23 09:34:56 2017 -0400
b
b'@@ -0,0 +1,674 @@\n+                    GNU GENERAL PUBLIC LICENSE\n+                       Version 3, 29 June 2007\n+\n+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n+ Everyone is permitted to copy and distribute verbatim copies\n+ of this license document, but changing it is not allowed.\n+\n+                            Preamble\n+\n+  The GNU General Public License is a free, copyleft license for\n+software and other kinds of works.\n+\n+  The licenses for most software and other practical works are designed\n+to take away your freedom to share and change the works.  By contrast,\n+the GNU General Public License is intended to guarantee your freedom to\n+share and change all versions of a program--to make sure it remains free\n+software for all its users.  We, the Free Software Foundation, use the\n+GNU General Public License for most of our software; it applies also to\n+any other work released this way by its authors.  You can apply it to\n+your programs, too.\n+\n+  When we speak of free software, we are referring to freedom, not\n+price.  Our General Public Licenses are designed to make sure that you\n+have the freedom to distribute copies of free software (and charge for\n+them if you wish), that you receive source code or can get it if you\n+want it, that you can change the software or use pieces of it in new\n+free programs, and that you know you can do these things.\n+\n+  To protect your rights, we need to prevent others from denying you\n+these rights or asking you to surrender the rights.  Therefore, you have\n+certain responsibilities if you distribute copies of the software, or if\n+you modify it: responsibilities to respect the freedom of others.\n+\n+  For example, if you distribute copies of such a program, whether\n+gratis or for a fee, you must pass on to the recipients the same\n+freedoms that you received.  You must make sure that they, too, receive\n+or can get the source code.  And you must show them these terms so they\n+know their rights.\n+\n+  Developers that use the GNU GPL protect your rights with two steps:\n+(1) assert copyright on the software, and (2) offer you this License\n+giving you legal permission to copy, distribute and/or modify it.\n+\n+  For the developers\' and authors\' protection, the GPL clearly explains\n+that there is no warranty for this free software.  For both users\' and\n+authors\' sake, the GPL requires that modified versions be marked as\n+changed, so that their problems will not be attributed erroneously to\n+authors of previous versions.\n+\n+  Some devices are designed to deny users access to install or run\n+modified versions of the software inside them, although the manufacturer\n+can do so.  This is fundamentally incompatible with the aim of\n+protecting users\' freedom to change the software.  The systematic\n+pattern of such abuse occurs in the area of products for individuals to\n+use, which is precisely where it is most unacceptable.  Therefore, we\n+have designed this version of the GPL to prohibit the practice for those\n+products.  If such problems arise substantially in other domains, we\n+stand ready to extend this provision to those domains in future versions\n+of the GPL, as needed to protect the freedom of users.\n+\n+  Finally, every program is threatened constantly by software patents.\n+States should not allow patents to restrict development and use of\n+software on general-purpose computers, but in those that do, we wish to\n+avoid the special danger that patents applied to a free program could\n+make it effectively proprietary.  To prevent this, the GPL assures that\n+patents cannot be used to render the program non-free.\n+\n+  The precise terms and conditions for copying, distribution and\n+modification follow.\n+\n+                       TERMS AND CONDITIONS\n+\n+  0. Definitions.\n+\n+  "This License" refers to version 3 of the GNU General Public License.\n+\n+  "Copyright" also means copyright-like laws that apply to other kinds of\n+works, such as semiconductor masks.\n+\n+  "The Program" refers to a'..b'CE OF THE PROGRAM\n+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n+\n+  16. Limitation of Liability.\n+\n+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n+SUCH DAMAGES.\n+\n+  17. Interpretation of Sections 15 and 16.\n+\n+  If the disclaimer of warranty and limitation of liability provided\n+above cannot be given local legal effect according to their terms,\n+reviewing courts shall apply local law that most closely approximates\n+an absolute waiver of all civil liability in connection with the\n+Program, unless a warranty or assumption of liability accompanies a\n+copy of the Program in return for a fee.\n+\n+                     END OF TERMS AND CONDITIONS\n+\n+            How to Apply These Terms to Your New Programs\n+\n+  If you develop a new program, and you want it to be of the greatest\n+possible use to the public, the best way to achieve this is to make it\n+free software which everyone can redistribute and change under these terms.\n+\n+  To do so, attach the following notices to the program.  It is safest\n+to attach them to the start of each source file to most effectively\n+state the exclusion of warranty; and each file should have at least\n+the "copyright" line and a pointer to where the full notice is found.\n+\n+    {one line to give the program\'s name and a brief idea of what it does.}\n+    Copyright (C) {year}  {name of author}\n+\n+    This program is free software: you can redistribute it and/or modify\n+    it under the terms of the GNU General Public License as published by\n+    the Free Software Foundation, either version 3 of the License, or\n+    (at your option) any later version.\n+\n+    This program is distributed in the hope that it will be useful,\n+    but WITHOUT ANY WARRANTY; without even the implied warranty of\n+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+    GNU General Public License for more details.\n+\n+    You should have received a copy of the GNU General Public License\n+    along with this program.  If not, see <http://www.gnu.org/licenses/>.\n+\n+Also add information on how to contact you by electronic and paper mail.\n+\n+  If the program does terminal interaction, make it output a short\n+notice like this when it starts in an interactive mode:\n+\n+    {project}  Copyright (C) {year}  {fullname}\n+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w\'.\n+    This is free software, and you are welcome to redistribute it\n+    under certain conditions; type `show c\' for details.\n+\n+The hypothetical commands `show w\' and `show c\' should show the appropriate\n+parts of the General Public License.  Of course, your program\'s commands\n+might be different; for a GUI interface, you would use an "about box".\n+\n+  You should also get your employer (if you work as a programmer) or school,\n+if any, to sign a "copyright disclaimer" for the program, if necessary.\n+For more information on this, and how to apply and follow the GNU GPL, see\n+<http://www.gnu.org/licenses/>.\n+\n+  The GNU General Public License does not permit incorporating your program\n+into proprietary programs.  If your program is a subroutine library, you\n+may consider it more useful to permit linking proprietary applications with\n+the library.  If this is what you want to do, use the GNU Lesser General\n+Public License instead of this License.  But first, please read\n+<http://www.gnu.org/philosophy/why-not-lgpl.html>.\n'
b
diff -r 000000000000 -r 610e86c430a9 plot_pca.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plot_pca.R Mon Oct 23 09:34:56 2017 -0400
[
b'@@ -0,0 +1,421 @@\n+#!/usr/bin/env Rscript\n+\n+# DEFAULT OPTIONS\n+\n+opt = list()\n+opt$log10 = FALSE\n+opt$pseudocount = 1e-04\n+opt$row_as_variables = FALSE\n+\n+suppressPackageStartupMessages(library("optparse"))\n+\n+options(stringsAsFactors=F)\n+\n+##################\n+# OPTION PARSING\n+##################\n+\n+option_list <- list(\n+make_option(c("-i", "--input_matrix"), help="the matrix you want to analyze. Can be stdin"),\n+make_option(c("-l", "--log10"), action="store_true", default=FALSE, help="apply the log [default=FALSE]"),\n+make_option(c("-p", "--pseudocount"), type="double", help="specify a pseudocount for the log [default=%default]", default=1e-04),\n+make_option(c("-m", "--metadata"), help="A list of tsv files with metadata on matrix experiment.\\n\\t\\tThey must be in the format \'file1.tsv,file2.tsv\' and contain a key column named \'labExpId\'. Can be omitted"),\n+\n+make_option(c("--merge_mdata_on"), default="labExpId",\n+\thelp="[default=%default]"),\n+\n+#make_option(c("-o", "--output"), help="additional info you want to put in the output file name", default="out"),\n+make_option(c("-c", "--color_by"), help="choose the fields in the metadata you want to color by", type=\'character\'),\n+\n+make_option(c("--sort_color"), type=\'character\', \n+\thelp="A field for sorting colors. Can be omitted [default=%default]"),\n+\n+make_option(c("-s", "--shape_by"), default=NULL, type="character", help="choose the fields in the metadata you want to shape by"),\n+\n+make_option(c("--no_legend"), action="store_true", default=FALSE,\n+\thelp="Do not show the legend [default=%default]"),\n+\n+make_option(c("-r", "--row_as_variables"), action="store_true", help="select this if you want rows as variables [default=%default]", default=FALSE),\n+make_option(c("-C", "--princomp"), help="choose the principal components you want to plot. With 3 PC it gives a 3d plot [default=\'PC1,PC2\']", default="PC1,PC2"),\n+\n+make_option(c("--print_scores"), action="store_true", default=FALSE, \n+\thelp="Output the resuling PCs as a separate file with the extension PCs.tsv [default=%default]"),\n+\n+make_option(c("--print_loadings"), action="store_true", default=FALSE, \n+\thelp="Output the resulting loadings as a separate file with the extension loadings.tsv [default=%default]"),\n+\n+make_option(c("--print_lambdas"), action="store_true", default=FALSE,\n+\thelp="Output the resulting lambdas (stdev) as a separate file with the extension lambdas.tsv [default=%default]"),\n+\n+make_option(c("--biplot"), default=FALSE, action="store_true",\n+\thelp="If active, the factor of the color is used as grouping factor.\n+\tCentroids are computed and the first <top> loadings are plotted wrt to the two specified components [default=%default]"),\n+\n+make_option(c("--palette"), default="/users/rg/abreschi/R/palettes/cbbPalette1.15.txt",\n+\thelp="File with the color palette [default=%default]"),\n+\n+make_option(c("--border"), default=FALSE, action="store_true",\n+\thelp="Black border to dots [default=%default]"),\n+\n+make_option(c("--shapes"), \n+\thelp="File with the shapes [default=%default]"),\n+\n+make_option(c("-L", "--labels"), default=NULL, type="character",\n+\thelp="The metadata field with the labels [default=%default]"),\n+\n+make_option(c("-B", "--base_size"), default=16, type=\'numeric\',\n+\thelp="Base font size [default=%default]"),\n+\n+make_option(c("-H", "--height"), default=7,\n+\thelp="Height of the plot in inches [default=%default]"),\n+\n+make_option(c("-W", "--width"), default=7,\n+\thelp="Width of the plot in inches [default=%default]"),\n+\n+make_option(c("-o", "--output"), default="pca.out",\n+\thelp="output file name [default=%default]"),\n+\n+make_option(c("-v", "--verbose"), action=\'store_true\', default=FALSE,\n+\thelp="verbose output [default=%default]")\n+)\n+\n+parser <- OptionParser(usage = "%prog [options] file", option_list=option_list)\n+arguments <- parse_args(parser, positional_arguments = TRUE)\n+opt <- arguments$options\n+\n+if (opt$verbose) {print(opt)}\n+##------------\n+## LIBRARIES\n+##------------ \n+suppressPackageStartupM'..b't(mapping, aes_string(x=prinComp[1], y=prinComp[2]))\n+\n+\tif (!is.null(opt$color_by)) {\n+\t\tgp_color_by=interaction(df[color_by])\n+\t\tif (!is.null(opt$sort_color)) {\n+\t\t\tgp_color_by = factor(gp_color_by, levels=sort_color)\n+\t\t}\n+\t\tmapping = modifyList(mapping, aes_string(color=gp_color_by, order=gp_color_by))\n+\t} else {\n+\t\tgp_color_by=NULL\n+\t}\n+\t\n+\tif (!is.null(opt$shape_by)) {\n+\t\tgp_shape_by=interaction(df[shape_by])\n+\t\tif (!is.null(opt$sort_shape)) {\n+\t\t\tgp_shape_by = factor(gp_shape_by, levels=sort_shape)\n+\t\t}\n+\t\tmapping = modifyList(mapping, aes_string(shape=gp_shape_by, order=gp_shape_by))\n+\t} else {\n+\t\tgp_shape_by=NULL\n+\t}\n+\n+#\tif (!is.na(opt$shape_by)) {gp_shape_by=interaction(df[shape_by]);\n+#\tgp_shape_by <- factor(gp_shape_by, levels=sort(levels(gp_shape_by)))\n+#\tmapping = modifyList(mapping, aes_string(shape=S_col))\n+\t\n+\tclass(mapping) <- "uneval"\n+\t\n+\tpointLayer <- layer(\n+\t\tgeom = "point",\n+\t#\tgeom_params = geom_params,\n+\t\tparams = geom_params,\n+\t\tmapping = mapping,\n+\t\tstat = "identity",\n+\t\tposition = "identity"\n+\t)\n+\t\n+\n+\n+\n+\t# plotting...\n+\tgp = ggplot(df, aes_string(x=prinComp[1],y=prinComp[2]));\n+\n+\tif (opt$biplot) {\n+\t\tgp = gp + geom_point(data=centroids, aes_string(x=prinComp[1], y=prinComp[2], color=opt$color_by), shape=8, size=7)\n+\t\tgp = gp + geom_segment( \n+\t\t\tdata=subset(closest_df, rank <= top), \n+\t\t\taes_string(x=0, y=0, xend=prinComp[1], yend=prinComp[2], color=opt$color_by)\n+\t\t)\n+\t}\n+\n+\n+\tif (opt$border) {\n+\t\tif (!is.null(opt$shape_by)) {\n+\t\tgp = gp + geom_point(aes(shape=gp_shape_by), col=\'black\', size=pts+1.0);\n+\t\t} else {\n+\t\tgp =  gp + geom_point(col="black", size=pts+1.0)\n+\t\t}\n+\t}\n+\n+\tgp = gp + pointLayer\n+\n+#\tgp = gp + geom_point(aes(color=gp_color_by))\n+#\tgp = gp + geom_point(aes(col=gp_color_by, shape=gp_shape_by), size=pts);\n+#\n+\tgp = gp + labs(title="");\n+\tgp = gp + labs(x=sprintf(\'%s (%s%%)\', prinComp[1], variances[prinComp_i[1]]));\n+\tgp = gp + labs(y=sprintf(\'%s (%s%%)\', prinComp[2], variances[prinComp_i[2]]));\n+\n+\tgp = gp + scale_color_manual(name=opt$color_by, values=my_palette)\n+\tif (!is.null(opt$shapes)) {\n+\t\tgp = gp + scale_shape_manual(name=opt$shape_by, values=my_shapes);\n+\t}\n+\tif (opt$no_legend) {\n+\t\tgp = gp + guides(shape=FALSE, color=FALSE)\n+\t\n+}\n+\tif (!is.null(opt$labels)) {\n+\t\tgp = gp + geom_text(aes_string(label=l_col), size=pts)\n+\t}\n+\n+\tgp\n+} \n+\n+\n+\n+\n+# --------------------\n+#\n+# 3d scatterplot\n+#\n+# --------------------\n+\n+\n+if (length(prinComp) == 3) {\n+\n+suppressPackageStartupMessages(library(scatterplot3d))\n+\n+par(xpd=NA, omi=c(0.5, 0.5, 0.5, 1.0))\n+\n+if (!is.na(opt$color_by)) {gp_color=my_palette[interaction(df[color_by])]} else {gp_color="black"}\n+if (!is.null(opt$shape_by)) {gp_shape_by=interaction(df[shape_by]);\n+gp_shape_by <- factor(gp_shape_by, levels=sort(intersect(levels(gp_shape_by), gp_shape_by))); gp_shape=my_shapes[gp_shape_by]} else {gp_shape_by=NULL}\n+\n+plot3d = scatterplot3d(df[prinComp], \n+\tcolor = gp_color,\n+\tpch = gp_shape,\n+\txlab = sprintf(\'%s (%s%%)\', prinComp[1], variances[prinComp_i[1]]),\n+\tylab = sprintf(\'%s (%s%%)\', prinComp[2], variances[prinComp_i[2]]),\n+\tzlab = sprintf(\'%s (%s%%)\', prinComp[3], variances[prinComp_i[3]]),\n+\tcex.symbols = 1.5,\n+\tlab = c(5,4)\n+)\n+\n+# !!! To be removed after the mouse paper !!!\n+#i=0; for(sample in interaction(df[color_by])) {\n+#i=i+1; plot3d$points3d(subset(df, General_category == sample, select=prinComp), type=\'l\', col=gp_color[i])}\n+\n+if (!is.na(opt$color_by)) {\n+\tlegend(\n+\t\tx = log(max(df[prinComp[1]])) + 3,\n+#\t\tx = 5,\n+\t\ty = 5.5,\n+\t\tlegend = levels(interaction(df[color_by])), \n+\t\tfill = my_palette[seq_along(levels(interaction(df[color_by])))]\n+\t)\n+}\n+\n+if (!is.na(opt$shape_by)) {\n+\tlegend(\n+#\t\tx = -log(abs(min(df[prinComp[1]]))) - 1.5, \n+\t\tx = -3,\n+\t\ty = 6, \n+#\t\ty = 7.2,\n+\t\tlegend = levels(gp_shape_by), \n+\t\tpch = my_shapes[seq_along(levels(gp_shape_by))]\n+\t\t)\n+#\tlegend(-log(abs(min(df[prinComp[1]])))+1.5,7.2,levels(gp_shape_by), \n+#\tpch=shapes[seq_along(levels(gp_shape_by))])\n+}\n+}\n+\n+\n+dev.off()\n+q(save=\'no\')\n+\n'
b
diff -r 000000000000 -r 610e86c430a9 plot_pca.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plot_pca.xml Mon Oct 23 09:34:56 2017 -0400
[
b'@@ -0,0 +1,281 @@\n+<!--# Copyright (C) 2017 INRA\n+# This program is free software: you can redistribute it and/or modify\n+# it under the terms of the GNU General Public License as published by\n+# the Free Software Foundation, either version 3 of the License, or\n+# (at your option) any later version.\n+#\n+# This program is distributed in the hope that it will be useful,\n+# but WITHOUT ANY WARRANTY; without even the implied warranty of\n+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+# GNU General Public License for more details.\n+# \n+# You should have received a copy of the GNU General Public License\n+# along with this program.  If not, see http://www.gnu.org/licenses/.\n+#-->\n+<tool id="plot_pca" name="Plot PCA" version="1.0.0">\n+    <description>PCA analysis</description>\n+    <requirements>\n+        <requirement type="package">R</requirement>\n+        <requirement type="package">r-optparse</requirement>\n+        <requirement type="package">r-reshape</requirement>\n+        <requirement type="package">r-ggplot2</requirement>\n+        <requirement type="package">r-gridextra</requirement>\n+        <requirement type="package">r-scatterplot3d</requirement>\n+    </requirements>\n+    <stdio>\n+        <!-- Anything other than zero is an error -->\n+        <exit_code range="1:" level="fatal"/>\n+        <exit_code range=":-1" level="fatal"/>\n+    </stdio>\n+    <command><![CDATA[\n+        Rscript $__tool_directory__/plot_pca.R\n+        --input_matrix $input_matrix\n+        #if $log_cond.log10:\n+          -l $log_cond.pseudocount\n+        #end if \n+        #if $height\n+          --height $height\n+        #end if\n+        #if $width\n+          --width $width\n+        #end if\n+        #if $output\n+          --output $output\n+        #end if\n+        #if $metadata_cond.metadata:\n+          --metadata          \n+          $metadata_cond.input_metadata\n+          #for $i, $s in enumerate( $metadata_cond.series )\n+            ,${s.input_metadata2}\n+          #end for\n+          #if $metadata_cond.color_by\n+            --color_by $metadata_cond.color_by\n+          #end if\n+          #if $metadata_cond.shape_by\n+            --shape_by $metadata_cond.shape_by\n+          #end if\n+        #end if\n+         --border\n+         --palette=$__tool_directory__/rainbow.3.txt\n+         &&\n+         cp *.pdf $outputfile\n+    ]]></command>\n+    <inputs>\n+        <param argument="--input_matrix" type="data" format="csv,tabular" label="Input Matrix"/>\n+\n+        <conditional name="log_cond">\n+            <param name="log10" type="boolean" checked="false" truevalue="True" falsevalue="" label="Apply the log10" help="Default=No"/>\n+            <when value="True">\n+                <param name="pseudocount" type="float" value="1e-04" help="Default=1e-04" />\n+            </when>\n+        </conditional>\n+\n+        <conditional name="metadata_cond">\n+            <param name="metadata" type="boolean" checked="false" truevalue="Yes" falsevalue="" label="Add file with metadata on matrix experiment?" help="must countain a key column named \'labExpId"/>\n+            <when value="Yes">\n+                <param name="input_metadata" type="data" format="tsv" label="Input Metadata file"/> \n+                <repeat name="series" title="Others Input Metadata files">\n+                    <param name="input_metadata2" type="data" format="tsv" label="Other Input Metadata file"/>\n+                </repeat>\n+                <param argument="--color_by" type="text" label="Choose the fields in the metadata you want to color by" /> \n+                <param argument="--shape_by" type="text" label="Choose the fields in the metadata you want to shape by" />  \n+            </when>\n+        </conditional>\n+\n+        <param argument="--height" size="20" type="integer" value="7"  label="Height of the plot in inches" /> \n+        <param argument="--width" size="20" type="integer" value="7"  label="Width of the plot in inches" />\n+        <param argument="--output" type="text" labe'..b"==============+================+\n+| 1 : Input matrix          |   csv,tabular  |\n++---------------------------+----------------+\n+\n+----------\n+Parameters\n+----------\n+\n+Apply the log 10\n+        | To normalize your data\n+        | \n+\n+(?)Add file with metadata on matrix experiment?\n+        | To ad metadata to the analysis\n+        |\n+\n+Input Metadata file\n+        | Must countain a key column named labExpId\n+        | \n+\n+Others Metadata files\n+        |  \n+\n+Choose the fields in the metadata you want to color by\n+        |  \n+\n+Choose the fields in the metadata you want to shape by\n+        | \n+\n+Height of the plot in inches\n+        | default 7 inches \n+        | \n+\n+Width of the plot in inches\n+        | default 7 inches \n+        | \n+\n+Output name\n+        | Specify the project label for your outputs. By default it will be the name of your input file \n+        | \n+\n+------------\n+Output files\n+------------\n+\n+<Input Name>_PCA.pdf\n+        | Pdf file containing your PCA plot\n+\n+\n+------\n+\n+**Authors**\n+Alessandra Breschi (alessandra.breschi@crg.eu); \n+Sarah Djebali (sarah.djebali-quelen@inra.fr);\n+Valentin Marcon (valentin.marcon@inra.fr)\n+\n+Contact : sigenae-support@listes.inra.fr\n+\n+-------------\n+Please cite :\n+-------------\n+\n+- (Depending on the help provided you can cite us in acknowledgements)\n+    \n+Acknowledgements\n+        | We wish to thank : Alessandra Breschi, Sarah Djebali (Centre for Genomic Regulation - http://www.crg.eu/), and Valentin Marcon (Migale platform - http://migale.jouy.inra.fr/)\n+\n+\n+\n+------\n+\n+.. class:: infomark\n+\n+Usage: ./plot_pca.R [options] file\n+\n+Options:\n+\t-i INPUT_MATRIX, --input_matrix=INPUT_MATRIX\n+\t\t\tthe matrix you want to analyze. Can be stdin\n+\n+\t-l, --log10\n+\t\t\tapply the log [default=FALSE]\n+\n+\t-p PSEUDOCOUNT, --pseudocount=PSEUDOCOUNT\n+\t\t\tspecify a pseudocount for the log [default=1e-04]\n+\n+\t-m METADATA, --metadata=METADATA\n+\t\t\tA list of tsv files with metadata on matrix experiment.\n+\t\t\t\t\tThey must be in the format 'file1.tsv,file2.tsv' and contain a key column named 'labExpId'. Can be omitted\n+\n+\t--merge_mdata_on=MERGE_MDATA_ON\n+\t\t\t[default=labExpId]\n+\n+\t-c COLOR_BY, --color_by=COLOR_BY\n+\t\t\tchoose the fields in the metadata you want to color by\n+\n+\t--sort_color=SORT_COLOR\n+\t\t\tA field for sorting colors. Can be omitted [default=NULL]\n+\n+\t-s SHAPE_BY, --shape_by=SHAPE_BY\n+\t\t\tchoose the fields in the metadata you want to shape by\n+\n+\t--no_legend\n+\t\t\tDo not show the legend [default=FALSE]\n+\n+\t-r, --row_as_variables\n+\t\t\tselect this if you want rows as variables [default=FALSE]\n+\n+\t-C PRINCOMP, --princomp=PRINCOMP\n+\t\t\tchoose the principal components you want to plot. With 3 PC it gives a 3d plot [default='PC1,PC2']\n+\n+\t--print_scores\n+\t\t\tOutput the resuling PCs as a separate file with the extension PCs.tsv [default=FALSE]\n+\n+\t--print_loadings\n+\t\t\tOutput the resulting loadings as a separate file with the extension loadings.tsv [default=FALSE]\n+\n+\t--print_lambdas\n+\t\t\tOutput the resulting lambdas (stdev) as a separate file with the extension lambdas.tsv [default=FALSE]\n+\n+\t--biplot\n+\t\t\tIf active, the factor of the color is used as grouping factor.\n+\t\t\t\tCentroids are computed and the first <top> loadings are plotted wrt to the two specified components [default=FALSE]\n+\n+\t--palette=PALETTE\n+\t\t\tFile with the color palette [default=/users/rg/abreschi/R/palettes/cbbPalette1.15.txt]\n+\n+\t--border\n+\t\t\tBlack border to dots [default=FALSE]\n+\n+\t--shapes=SHAPES\n+\t\t\tFile with the shapes [default=NULL]\n+\n+\t-L LABELS, --labels=LABELS\n+\t\t\tThe metadata field with the labels [default=NULL]\n+\n+\t-B BASE_SIZE, --base_size=BASE_SIZE\n+\t\t\tBase font size [default=16]\n+\n+\t-H HEIGHT, --height=HEIGHT\n+\t\t\tHeight of the plot in inches [default=7]\n+\n+\t-W WIDTH, --width=WIDTH\n+\t\t\tWidth of the plot in inches [default=7]\n+\n+\t-o OUTPUT, --output=OUTPUT\n+\t\t\toutput file name [default=pca.out]\n+\n+\t-v, --verbose\n+\t\t\tverbose output [default=FALSE]\n+\n+\t-h, --help\n+\t\t\tShow this help message and exit\n+\n+  ]]></help>\n+</tool>\n"
b
diff -r 000000000000 -r 610e86c430a9 rainbow.3.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rainbow.3.txt Mon Oct 23 09:34:56 2017 -0400
b
@@ -0,0 +1,3 @@
+#FF0000FF
+#00FF00FF
+#0000FFFF
b
diff -r 000000000000 -r 610e86c430a9 test-data/decathlon.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/decathlon.tsv Mon Oct 23 09:34:56 2017 -0400
b
@@ -0,0 +1,42 @@
+"name" "100m" "Long.jump" "Shot.put" "High.jump" "400m" "110m.hurdle" "Discus" "Pole.vault" "Javeline" "1500m"
+"SEBRLE" 11.04 7.58 14.83 2.07 49.81 14.69 43.75 5.02 63.19 291.7
+"CLAY" 10.76 7.4 14.26 1.86 49.37 14.05 50.72 4.92 60.15 301.5
+"KARPOV" 11.02 7.3 14.77 2.04 48.37 14.09 48.95 4.92 50.31 300.2
+"BERNARD" 11.02 7.23 14.25 1.92 48.93 14.99 40.87 5.32 62.77 280.1
+"YURKOV" 11.34 7.09 15.19 2.1 50.42 15.31 46.26 4.72 63.44 276.4
+"WARNERS" 11.11 7.6 14.31 1.98 48.68 14.23 41.1 4.92 51.77 278.1
+"ZSIVOCZKY" 11.13 7.3 13.48 2.01 48.62 14.17 45.67 4.42 55.37 268
+"McMULLEN" 10.83 7.31 13.76 2.13 49.91 14.38 44.41 4.42 56.37 285.1
+"MARTINEAU" 11.64 6.81 14.57 1.95 50.14 14.93 47.6 4.92 52.33 262.1
+"HERNU" 11.37 7.56 14.41 1.86 51.1 15.06 44.99 4.82 57.19 285.1
+"BARRAS" 11.33 6.97 14.09 1.95 49.48 14.48 42.1 4.72 55.4 282
+"NOOL" 11.33 7.27 12.68 1.98 49.2 15.29 37.92 4.62 57.44 266.6
+"BOURGUIGNON" 11.36 6.8 13.46 1.86 51.16 15.67 40.49 5.02 54.68 291.7
+"Sebrle" 10.85 7.84 16.36 2.12 48.36 14.05 48.72 5 70.52 280.01
+"Clay" 10.44 7.96 15.23 2.06 49.19 14.13 50.11 4.9 69.71 282
+"Karpov" 10.5 7.81 15.93 2.09 46.81 13.97 51.65 4.6 55.54 278.11
+"Macey" 10.89 7.47 15.73 2.15 48.97 14.56 48.34 4.4 58.46 265.42
+"Warners" 10.62 7.74 14.48 1.97 47.97 14.01 43.73 4.9 55.39 278.05
+"Zsivoczky" 10.91 7.14 15.31 2.12 49.4 14.95 45.62 4.7 63.45 269.54
+"Hernu" 10.97 7.19 14.65 2.03 48.73 14.25 44.72 4.8 57.76 264.35
+"Nool" 10.8 7.53 14.26 1.88 48.81 14.8 42.05 5.4 61.33 276.33
+"Bernard" 10.69 7.48 14.8 2.12 49.13 14.17 44.75 4.4 55.27 276.31
+"Schwarzl" 10.98 7.49 14.01 1.94 49.76 14.25 42.43 5.1 56.32 273.56
+"Pogorelov" 10.95 7.31 15.1 2.06 50.79 14.21 44.6 5 53.45 287.63
+"Schoenbeck" 10.9 7.3 14.77 1.88 50.3 14.34 44.41 5 60.89 278.82
+"Barras" 11.14 6.99 14.91 1.94 49.41 14.37 44.83 4.6 64.55 267.09
+"Smith" 10.85 6.81 15.24 1.91 49.27 14.01 49.02 4.2 61.52 272.74
+"Averyanov" 10.55 7.34 14.44 1.94 49.72 14.39 39.88 4.8 54.51 271.02
+"Ojaniemi" 10.68 7.5 14.97 1.94 49.12 15.01 40.35 4.6 59.26 275.71
+"Smirnov" 10.89 7.07 13.88 1.94 49.11 14.77 42.47 4.7 60.88 263.31
+"Qi" 11.06 7.34 13.55 1.97 49.65 14.78 45.13 4.5 60.79 272.63
+"Drews" 10.87 7.38 13.07 1.88 48.51 14.01 40.11 5 51.53 274.21
+"Parkhomenko" 11.14 6.61 15.69 2.03 51.04 14.88 41.9 4.8 65.82 277.94
+"Terek" 10.92 6.94 15.15 1.94 49.56 15.12 45.62 5.3 50.62 290.36
+"Gomez" 11.08 7.26 14.57 1.85 48.61 14.41 40.95 4.4 60.71 269.7
+"Turi" 11.08 6.91 13.62 2.03 51.67 14.26 39.83 4.8 59.34 290.01
+"Lorenzo" 11.1 7.03 13.22 1.85 49.34 15.38 40.22 4.5 58.36 263.08
+"Karlivans" 11.33 7.26 13.3 1.97 50.54 14.98 43.34 4.5 52.92 278.67
+"Korkizoglou" 10.86 7.07 14.81 1.94 51.16 14.96 46.07 4.7 53.05 317
+"Uldal" 11.23 6.99 13.53 1.85 50.95 15.09 43.01 4.5 60 281.7
+"Casarsa" 11.36 6.68 14.92 1.94 53.2 15.39 48.66 4.4 58.62 296.12
b
diff -r 000000000000 -r 610e86c430a9 test-data/output
b
Binary file test-data/output has changed