Mercurial > repos > ethevenot > heatmap
changeset 0:ad06aeed02c9 draft
planemo upload for repository https://github.com/workflow4metabolomics/heatmap.git commit 7e599d006e53fefb7e1b923ba8894b4fb19f9cfa-dirty
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LICENSE.md Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,517 @@ + CeCILL FREE SOFTWARE LICENSE AGREEMENT + +Version 2.1 dated 2013-06-21 + + + Notice + +This Agreement is a Free Software license agreement that is the result +of discussions between its authors in order to ensure compliance with +the two main principles guiding its drafting: + + * firstly, compliance with the principles governing the distribution + of Free Software: access to source code, broad rights granted to users, + * secondly, the election of a governing law, French law, with which it + is conformant, both as regards the law of torts and intellectual + property law, and the protection that it offers to both authors and + holders of the economic rights over software. + +The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) +license are: + +Commissariat à l'énergie atomique et aux énergies alternatives - CEA, a +public scientific, technical and industrial research establishment, +having its principal place of business at 25 rue Leblanc, immeuble Le +Ponant D, 75015 Paris, France. + +Centre National de la Recherche Scientifique - CNRS, a public scientific +and technological establishment, having its principal place of business +at 3 rue Michel-Ange, 75794 Paris cedex 16, France. + +Institut National de Recherche en Informatique et en Automatique - +Inria, a public scientific and technological establishment, having its +principal place of business at Domaine de Voluceau, Rocquencourt, BP +105, 78153 Le Chesnay cedex, France. + + + Preamble + +The purpose of this Free Software license agreement is to grant users +the right to modify and redistribute the software governed by this +license within the framework of an open source distribution model. + +The exercising of this right is conditional upon certain obligations for +users so as to preserve this status for all subsequent redistributions. + +In consideration of access to the source code and the rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors only have limited liability. + +In this respect, the risks associated with loading, using, modifying +and/or developing or reproducing the software by the user are brought to +the user's attention, given its Free Software status, which may make it +complicated to use, with the result that its use is reserved for +developers and experienced professionals having in-depth computer +knowledge. Users are therefore encouraged to load and test the +suitability of the software as regards their requirements in conditions +enabling the security of their systems and/or data to be ensured and, +more generally, to use and operate it in the same conditions of +security. This Agreement may be freely reproduced and published, +provided it is not altered, and that no provisions are either added or +removed herefrom. + +This Agreement may apply to any or all software for which the holder of +the economic rights decides to submit the use thereof to its provisions. + +Frequently asked questions can be found on the official website of the +CeCILL licenses family (http://www.cecill.info/index.en.html) for any +necessary clarification. + + + Article 1 - DEFINITIONS + +For the purpose of this Agreement, when the following expressions +commence with a capital letter, they shall have the following meaning: + +Agreement: means this license agreement, and its possible subsequent +versions and annexes. + +Software: means the software in its Object Code and/or Source Code form +and, where applicable, its documentation, "as is" when the Licensee +accepts the Agreement. + +Initial Software: means the Software in its Source Code and possibly its +Object Code form and, where applicable, its documentation, "as is" when +it is first distributed under the terms and conditions of the Agreement. + +Modified Software: means the Software modified by at least one +Contribution. + +Source Code: means all the Software's instructions and program lines to +which access is required so as to modify the Software. + +Object Code: means the binary files originating from the compilation of +the Source Code. + +Holder: means the holder(s) of the economic rights over the Initial +Software. + +Licensee: means the Software user(s) having accepted the Agreement. + +Contributor: means a Licensee having made at least one Contribution. + +Licensor: means the Holder, or any other individual or legal entity, who +distributes the Software under the Agreement. + +Contribution: means any or all modifications, corrections, translations, +adaptations and/or new functions integrated into the Software by any or +all Contributors, as well as any or all Internal Modules. + +Module: means a set of sources files including their documentation that +enables supplementary functions or services in addition to those offered +by the Software. + +External Module: means any or all Modules, not derived from the +Software, so that this Module and the Software run in separate address +spaces, with one calling the other when they are run. + +Internal Module: means any or all Module, connected to the Software so +that they both execute in the same address space. + +GNU GPL: means the GNU General Public License version 2 or any +subsequent version, as published by the Free Software Foundation Inc. + +GNU Affero GPL: means the GNU Affero General Public License version 3 or +any subsequent version, as published by the Free Software Foundation Inc. + +EUPL: means the European Union Public License version 1.1 or any +subsequent version, as published by the European Commission. + +Parties: mean both the Licensee and the Licensor. + +These expressions may be used both in singular and plural form. + + + Article 2 - PURPOSE + +The purpose of the Agreement is the grant by the Licensor to the +Licensee of a non-exclusive, transferable and worldwide license for the +Software as set forth in Article 5 <#scope> hereinafter for the whole +term of the protection granted by the rights over said Software. + + + Article 3 - ACCEPTANCE + +3.1 The Licensee shall be deemed as having accepted the terms and +conditions of this Agreement upon the occurrence of the first of the +following events: + + * (i) loading the Software by any or all means, notably, by + downloading from a remote server, or by loading from a physical medium; + * (ii) the first time the Licensee exercises any of the rights granted + hereunder. + +3.2 One copy of the Agreement, containing a notice relating to the +characteristics of the Software, to the limited warranty, and to the +fact that its use is restricted to experienced users has been provided +to the Licensee prior to its acceptance as set forth in Article 3.1 +<#accepting> hereinabove, and the Licensee hereby acknowledges that it +has read and understood it. + + + Article 4 - EFFECTIVE DATE AND TERM + + + 4.1 EFFECTIVE DATE + +The Agreement shall become effective on the date when it is accepted by +the Licensee as set forth in Article 3.1 <#accepting>. + + + 4.2 TERM + +The Agreement shall remain in force for the entire legal term of +protection of the economic rights over the Software. + + + Article 5 - SCOPE OF RIGHTS GRANTED + +The Licensor hereby grants to the Licensee, who accepts, the following +rights over the Software for any or all use, and for the term of the +Agreement, on the basis of the terms and conditions set forth hereinafter. + +Besides, if the Licensor owns or comes to own one or more patents +protecting all or part of the functions of the Software or of its +components, the Licensor undertakes not to enforce the rights granted by +these patents against successive Licensees using, exploiting or +modifying the Software. If these patents are transferred, the Licensor +undertakes to have the transferees subscribe to the obligations set +forth in this paragraph. + + + 5.1 RIGHT OF USE + +The Licensee is authorized to use the Software, without any limitation +as to its fields of application, with it being hereinafter specified +that this comprises: + + 1. permanent or temporary reproduction of all or part of the Software + by any or all means and in any or all form. + + 2. loading, displaying, running, or storing the Software on any or all + medium. + + 3. entitlement to observe, study or test its operation so as to + determine the ideas and principles behind any or all constituent + elements of said Software. This shall apply when the Licensee + carries out any or all loading, displaying, running, transmission or + storage operation as regards the Software, that it is entitled to + carry out hereunder. + + + 5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS + +The right to make Contributions includes the right to translate, adapt, +arrange, or make any or all modifications to the Software, and the right +to reproduce the resulting software. + +The Licensee is authorized to make any or all Contributions to the +Software provided that it includes an explicit notice that it is the +author of said Contribution and indicates the date of the creation thereof. + + + 5.3 RIGHT OF DISTRIBUTION + +In particular, the right of distribution includes the right to publish, +transmit and communicate the Software to the general public on any or +all medium, and by any or all means, and the right to market, either in +consideration of a fee, or free of charge, one or more copies of the +Software by any means. + +The Licensee is further authorized to distribute copies of the modified +or unmodified Software to third parties according to the terms and +conditions set forth hereinafter. + + + 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION + +The Licensee is authorized to distribute true copies of the Software in +Source Code or Object Code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's warranty + and liability as set forth in Articles 8 and 9, + +and that, in the event that only the Object Code of the Software is +redistributed, the Licensee allows effective access to the full Source +Code of the Software for a period of at least three years from the +distribution of the Software, it being understood that the additional +acquisition cost of the Source Code shall not exceed the cost of the +data transfer. + + + 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE + +When the Licensee makes a Contribution to the Software, the terms and +conditions for the distribution of the resulting Modified Software +become subject to all the provisions of this Agreement. + +The Licensee is authorized to distribute the Modified Software, in +source code or object code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's warranty + and liability as set forth in Articles 8 and 9, + +and, in the event that only the object code of the Modified Software is +redistributed, + + 3. a note stating the conditions of effective access to the full source + code of the Modified Software for a period of at least three years + from the distribution of the Modified Software, it being understood + that the additional acquisition cost of the source code shall not + exceed the cost of the data transfer. + + + 5.3.3 DISTRIBUTION OF EXTERNAL MODULES + +When the Licensee has developed an External Module, the terms and +conditions of this Agreement do not apply to said External Module, that +may be distributed under a separate license agreement. + + + 5.3.4 COMPATIBILITY WITH OTHER LICENSES + +The Licensee can include a code that is subject to the provisions of one +of the versions of the GNU GPL, GNU Affero GPL and/or EUPL in the +Modified or unmodified Software, and distribute that entire code under +the terms of the same version of the GNU GPL, GNU Affero GPL and/or EUPL. + +The Licensee can include the Modified or unmodified Software in a code +that is subject to the provisions of one of the versions of the GNU GPL, +GNU Affero GPL and/or EUPL and distribute that entire code under the +terms of the same version of the GNU GPL, GNU Affero GPL and/or EUPL. + + + Article 6 - INTELLECTUAL PROPERTY + + + 6.1 OVER THE INITIAL SOFTWARE + +The Holder owns the economic rights over the Initial Software. Any or +all use of the Initial Software is subject to compliance with the terms +and conditions under which the Holder has elected to distribute its work +and no one shall be entitled to modify the terms and conditions for the +distribution of said Initial Software. + +The Holder undertakes that the Initial Software will remain ruled at +least by this Agreement, for the duration set forth in Article 4.2 <#term>. + + + 6.2 OVER THE CONTRIBUTIONS + +The Licensee who develops a Contribution is the owner of the +intellectual property rights over this Contribution as defined by +applicable law. + + + 6.3 OVER THE EXTERNAL MODULES + +The Licensee who develops an External Module is the owner of the +intellectual property rights over this External Module as defined by +applicable law and is free to choose the type of agreement that shall +govern its distribution. + + + 6.4 JOINT PROVISIONS + +The Licensee expressly undertakes: + + 1. not to remove, or modify, in any manner, the intellectual property + notices attached to the Software; + + 2. to reproduce said notices, in an identical manner, in the copies of + the Software modified or not. + +The Licensee undertakes not to directly or indirectly infringe the +intellectual property rights on the Software of the Holder and/or +Contributors, and to take, where applicable, vis-à-vis its staff, any +and all measures required to ensure respect of said intellectual +property rights of the Holder and/or Contributors. + + + Article 7 - RELATED SERVICES + +7.1 Under no circumstances shall the Agreement oblige the Licensor to +provide technical assistance or maintenance services for the Software. + +However, the Licensor is entitled to offer this type of services. The +terms and conditions of such technical assistance, and/or such +maintenance, shall be set forth in a separate instrument. Only the +Licensor offering said maintenance and/or technical assistance services +shall incur liability therefor. + +7.2 Similarly, any Licensor is entitled to offer to its licensees, under +its sole responsibility, a warranty, that shall only be binding upon +itself, for the redistribution of the Software and/or the Modified +Software, under terms and conditions that it is free to decide. Said +warranty, and the financial terms and conditions of its application, +shall be subject of a separate instrument executed between the Licensor +and the Licensee. + + + Article 8 - LIABILITY + +8.1 Subject to the provisions of Article 8.2, the Licensee shall be +entitled to claim compensation for any direct loss it may have suffered +from the Software as a result of a fault on the part of the relevant +Licensor, subject to providing evidence thereof. + +8.2 The Licensor's liability is limited to the commitments made under +this Agreement and shall not be incurred as a result of in particular: +(i) loss due the Licensee's total or partial failure to fulfill its +obligations, (ii) direct or consequential loss that is suffered by the +Licensee due to the use or performance of the Software, and (iii) more +generally, any consequential loss. In particular the Parties expressly +agree that any or all pecuniary or business loss (i.e. loss of data, +loss of profits, operating loss, loss of customers or orders, +opportunity cost, any disturbance to business activities) or any or all +legal proceedings instituted against the Licensee by a third party, +shall constitute consequential loss and shall not provide entitlement to +any or all compensation from the Licensor. + + + Article 9 - WARRANTY + +9.1 The Licensee acknowledges that the scientific and technical +state-of-the-art when the Software was distributed did not enable all +possible uses to be tested and verified, nor for the presence of +possible defects to be detected. In this respect, the Licensee's +attention has been drawn to the risks associated with loading, using, +modifying and/or developing and reproducing the Software which are +reserved for experienced users. + +The Licensee shall be responsible for verifying, by any or all means, +the suitability of the product for its requirements, its good working +order, and for ensuring that it shall not cause damage to either persons +or properties. + +9.2 The Licensor hereby represents, in good faith, that it is entitled +to grant all the rights over the Software (including in particular the +rights set forth in Article 5 <#scope>). + +9.3 The Licensee acknowledges that the Software is supplied "as is" by +the Licensor without any other express or tacit warranty, other than +that provided for in Article 9.2 <#good-faith> and, in particular, +without any warranty as to its commercial value, its secured, safe, +innovative or relevant nature. + +Specifically, the Licensor does not warrant that the Software is free +from any error, that it will operate without interruption, that it will +be compatible with the Licensee's own equipment and software +configuration, nor that it will meet the Licensee's requirements. + +9.4 The Licensor does not either expressly or tacitly warrant that the +Software does not infringe any third party intellectual property right +relating to a patent, software or any other property right. Therefore, +the Licensor disclaims any and all liability towards the Licensee +arising out of any or all proceedings for infringement that may be +instituted in respect of the use, modification and redistribution of the +Software. Nevertheless, should such proceedings be instituted against +the Licensee, the Licensor shall provide it with technical and legal +expertise for its defense. Such technical and legal expertise shall be +decided on a case-by-case basis between the relevant Licensor and the +Licensee pursuant to a memorandum of understanding. The Licensor +disclaims any and all liability as regards the Licensee's use of the +name of the Software. No warranty is given as regards the existence of +prior rights over the name of the Software or as regards the existence +of a trademark. + + + Article 10 - TERMINATION + +10.1 In the event of a breach by the Licensee of its obligations +hereunder, the Licensor may automatically terminate this Agreement +thirty (30) days after notice has been sent to the Licensee and has +remained ineffective. + +10.2 A Licensee whose Agreement is terminated shall no longer be +authorized to use, modify or distribute the Software. However, any +licenses that it may have granted prior to termination of the Agreement +shall remain valid subject to their having been granted in compliance +with the terms and conditions hereof. + + + Article 11 - MISCELLANEOUS + + + 11.1 EXCUSABLE EVENTS + +Neither Party shall be liable for any or all delay, or failure to +perform the Agreement, that may be attributable to an event of force +majeure, an act of God or an outside cause, such as defective +functioning or interruptions of the electricity or telecommunications +networks, network paralysis following a virus attack, intervention by +government authorities, natural disasters, water damage, earthquakes, +fire, explosions, strikes and labor unrest, war, etc. + +11.2 Any failure by either Party, on one or more occasions, to invoke +one or more of the provisions hereof, shall under no circumstances be +interpreted as being a waiver by the interested Party of its right to +invoke said provision(s) subsequently. + +11.3 The Agreement cancels and replaces any or all previous agreements, +whether written or oral, between the Parties and having the same +purpose, and constitutes the entirety of the agreement between said +Parties concerning said purpose. No supplement or modification to the +terms and conditions hereof shall be effective as between the Parties +unless it is made in writing and signed by their duly authorized +representatives. + +11.4 In the event that one or more of the provisions hereof were to +conflict with a current or future applicable act or legislative text, +said act or legislative text shall prevail, and the Parties shall make +the necessary amendments so as to comply with said act or legislative +text. All other provisions shall remain effective. Similarly, invalidity +of a provision of the Agreement, for any reason whatsoever, shall not +cause the Agreement as a whole to be invalid. + + + 11.5 LANGUAGE + +The Agreement is drafted in both French and English and both versions +are deemed authentic. + + + Article 12 - NEW VERSIONS OF THE AGREEMENT + +12.1 Any person is authorized to duplicate and distribute copies of this +Agreement. + +12.2 So as to ensure coherence, the wording of this Agreement is +protected and may only be modified by the authors of the License, who +reserve the right to periodically publish updates or new versions of the +Agreement, each with a separate number. These subsequent versions may +address new issues encountered by Free Software. + +12.3 Any Software distributed under a given version of the Agreement may +only be subsequently distributed under the same version of the Agreement +or a subsequent version, subject to the provisions of Article 5.3.4 +<#compatibility>. + + + Article 13 - GOVERNING LAW AND JURISDICTION + +13.1 The Agreement is governed by French law. The Parties agree to +endeavor to seek an amicable solution to any disagreements or disputes +that may arise during the performance of the Agreement. + +13.2 Failing an amicable solution within two (2) months as from their +occurrence, and unless emergency proceedings are necessary, the +disagreements or disputes shall be referred to the Paris Courts having +jurisdiction, by the more diligent Party.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,60 @@ +## Heatmap of the data matrix +#### A Galaxy module from the [Workflow4metabolomics](http://workflow4metabolomics.org) project + +Status: [![Build Status](https://travis-ci.org/workflow4metabolomics/heatmap.svg?branch=master)](https://travis-ci.org/workflow4metabolomics/heatmap). + +### Description + +**Version:** 2.2.0 +**Date:** 2016-07-30 +**Author:** Etienne A. Thevenot (CEA, LIST, MetaboHUB, W4M Core Development Team) +**Email:** [etienne.thevenot(at)cea.fr](mailto:etienne.thevenot@cea.fr) +**Citation:** Thevenot E.A., Roux A., Xu Y., Ezan E. and Junot C. (2015). Analysis of the human adult urinary metabolome variations with age, body mass index and gender by implementing a comprehensive workflow for univariate and OPLS statistical analyses. *Journal of Proteome Research*, **14**:3322-3335. [doi:10.1021/acs.jproteome.5b00354](http://dx.doi.org/10.1021/acs.jproteome.5b00354) +**Licence:** CeCILL +**Reference history:** [W4M00001a_sacurine-subset-statistics](http://galaxy.workflow4metabolomics.org/history/list_published) +**Funding:** Agence Nationale de la Recherche ([MetaboHUB](http://www.metabohub.fr/index.php?lang=en&Itemid=473) national infrastructure for metabolomics and fluxomics, ANR-11-INBS-0010 grant) + +### Installation + +* Configuration file: **heatmap_config.xml** +* Image files: + + **static/images/heatmap_workflowPositionImage.png** + + **static/images/heatmap_workingExampleImage.png** +* Wrapper file: **heatmap_wrapper.R** +* R packages + + **batch** from CRAN +> install.packages("batch", dep=TRUE) + +### Tests + +The code in the wrapper can be tested by running the **tests/heatmap_tests.R** in R + +### News + +##### CHANGES IN VERSION 2.2.0 + +NEW FEATURES + + o Default method for the correlation coefficient is now 'pearson', instead of 'spearman' previously (the latter can still be selected in the advanced parameters) + + o The 1-abs(correlation) dissimilarity is now available (in addition to the default '1-correlation') in case the sign of correlations between samples and between variables does not matter, as well as the euclidean, maximum, manhattan, canberra, binary, and minkowski dissimilarities + + o A new red-green color scale is available + +*** + +##### CHANGES IN VERSION 2.1.2 + +INTERNAL MODIFICATION + + o Creating additional files for planemo and travis validation + +*** + +##### CHANGES IN VERSION 2.0.2 + +INTERNAL MODIFICATION + + o Creating tests for R code + +*** \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.xml Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,78 @@ +<project name="heatmap" default="all"> + + <property name="tool.xml" value="heatmap_config.xml"/> + <property name="conda.dir" value="${user.home}/w4m-conda"/> + + <!--~~~ + ~ ALL ~ + ~~~~~--> + + <target name="all"/> + + <!--~~~~ + ~ TEST ~ + ~~~~~--> + + <target name="test" depends="planemo.lint,planemo.test"/> + + <!--~~~~~~~~~~~~ + ~ PLANEMO LINT ~ + ~~~~~~~~~~~~~--> + + <target name="planemo.lint"> + <exec executable="planemo" failonerror="true"> + <arg value="lint"/> + <arg value="${tool.xml}"/> + </exec> + </target> + + <!--~~~~~~~~~~~~ + ~ PLANEMO TEST ~ + ~~~~~~~~~~~~~--> + + <target name="planemo.test" depends="planemo.conda.install"> + <exec executable="planemo" failonerror="true"> + <arg value="test"/> + <arg value="--conda_prefix"/> + <arg value="${conda.dir}"/> + <arg value="--galaxy_branch"/> + <arg value="release_16.01"/> + <arg value="--conda_dependency_resolution"/> + <arg value="${tool.xml}"/> + </exec> + </target> + + <!--~~~~~~~~~~~~~~~~~~~~~ + ~ PLANEMO CONDA INSTALL ~ + ~~~~~~~~~~~~~~~~~~~~~~--> + + <target name="planemo.conda.install" depends="planemo.conda.init"> + <exec executable="planemo" failonerror="true"> + <arg value="conda_install"/> + <arg value="--conda_prefix"/> + <arg value="${conda.dir}"/> + <arg value="${tool.xml}"/> + </exec> + </target> + + <!--~~~~~~~~~~~~~~~~~~ + ~ PLANEMO CONDA INIT ~ + ~~~~~~~~~~~~~~~~~~~--> + + <target name="planemo.conda.init"> + <exec executable="planemo" failonerror="true"> + <arg value="conda_init"/> + <arg value="--conda_prefix"/> + <arg value="${conda.dir}"/> + </exec> + </target> + + <!--~~~~~ + ~ CLEAN ~ + ~~~~~~--> + + <target name="clean"> + <delete dir="${conda.dir}"/> + </target> + +</project>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/heatmap_config.xml Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,345 @@ +<tool id="Heatmap" name="Heatmap" version="2.2.0"> + <description>Heatmap of the dataMatrix</description> + + <requirements> + <requirement type="package" version="3.2.2">R</requirement> + <requirement type="package">r-batch</requirement> + </requirements> + + <command><![CDATA[ + Rscript $__tool_directory__/heatmap_wrapper.R + dataMatrix_in "$dataMatrix_in" + sampleMetadata_in "$sampleMetadata_in" + variableMetadata_in "$variableMetadata_in" + + disC "$disC" + cutSamN "$cutSamN" + cutVarN "$cutVarN" + + #if $advPar.oppC == "full" + corMetC "$advPar.corMetC" + aggMetC "$advPar.aggMetC" + colC "$advPar.colC" + scaL "$advPar.scaL" + cexN "$advPar.cexN" + #end if + + dataMatrix_out "$dataMatrix_out" + sampleMetadata_out "$sampleMetadata_out" + variableMetadata_out "$variableMetadata_out" + figure "$figure" + information "$information" + ]]></command> + + <inputs> + <param name="dataMatrix_in" type="data" label="Data matrix file" help="" format="tabular" /> + <param name="sampleMetadata_in" type="data" label="Sample metadata file" help="" format="tabular" /> + <param name="variableMetadata_in" type="data" label="Variable metadata file" help="" format="tabular" /> + + <param name="disC" label="Dissimilarity to be used for clustering" type="select" help="If correlation is selected, the pearson method will be used by default unless a specific method is selected in the advanced parameters below"> + <option value="euclidean">euclidean</option> + <option value="maximum">maximum</option> + <option value="manhattan">manhattan</option> + <option value="canberra">canberra</option> + <option value="binary">binary</option> + <option value="minkowski">minkowski</option> + <option value="1-cor" selected="true">1-correlation</option> + <option value="1-abs(cor)">1-abs(correlation)</option> + </param> + + <param name="cutSamN" label="Number of sample clusters to identify" type="select" help=""> + <option value="1" selected="true">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + <option value="11">11</option> + <option value="12">12</option> + <option value="13">13</option> + <option value="14">14</option> + <option value="15">15</option> + </param> + + <param name="cutVarN" label="Number of variable clusters to identify" type="select" help=""> + <option value="1" selected="true">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + <option value="11">11</option> + <option value="12">12</option> + <option value="13">13</option> + <option value="14">14</option> + <option value="15">15</option> + </param> + + <conditional name="advPar"> + <param name="oppC" type="select" label="Advanced parameters" > + <option value="default" selected="true">Use default</option> + <option value="full">Full list</option> + </param> + <when value="default"> + <param name="corMetC" type="hidden" value="pearson"/> + <param name="aggMetC" type="hidden" value="ward"/> + <param name="colC" type="hidden" value="blueOrangeRed"/> + <param name="scaL" type="hidden" value="TRUE"/> + <param name="cexN" type="hidden" value="0.8"/> + </when> + <when value="full"> + <param name="corMetC" label="Method of correlation to be used" type="select" help=""> + <option value="pearson" selected="true">pearson</option> + <option value="spearman">spearman</option> + <option value="kendall">kendall</option> + </param> + <param name="aggMetC" label="Method of agglomeration to be used" type="select" help=""> + <option value="ward" selected="true">ward</option> + <option value="single">single</option> + <option value="complete">complete</option> + <option value="average">average</option> + <option value="mcquitty">mcquitty</option> + <option value="median">median</option> + <option value="centroid">centroid</option> + </param> + <param name="colC" label="Color scale" type="select" help=""> + <option value="blueOrangeRed" selected="true">blue-orange-red</option> + <option value="redBlackGreen">red-black-green</option> + </param> + <param name="scaL" label="Variable standardization (for plotting only)" type="select" help="Standardization is performed after the clustering for display only (may enhance contrast) and does not modify cluster computation nor intensities in the output files"> + <option value="TRUE" selected="true">yes</option> + <option value="FALSE">no</option> + </param> + <param name="cexN" label="Size of labels" type="select" help=""> + <option value="0.5">0.5</option> + <option value="0.6">0.6</option> + <option value="0.7">0.7</option> + <option value="0.8" selected="true">0.8</option> + <option value="0.9">0.9</option> + <option value="1">1</option> + </param> + </when> + </conditional> + + </inputs> + + <outputs> + <data name="dataMatrix_out" label="${tool.name}_${dataMatrix_in.name}" format="tabular" ></data> + <data name="sampleMetadata_out" label="${tool.name}_${sampleMetadata_in.name}" format="tabular" ></data> + <data name="variableMetadata_out" label="${tool.name}_${variableMetadata_in.name}" format="tabular" ></data> + <data name="figure" label="${tool.name}_figure.pdf" format="pdf"/> + <data name="information" label="${tool.name}_information.txt" format="txt"/> + </outputs> + + <tests> + <test> + <param name="dataMatrix_in" value="input-dataMatrix.tsv"/> + <param name="sampleMetadata_in" value="input-sampleMetadata.tsv"/> + <param name="variableMetadata_in" value="input-variableMetadata.tsv"/> + <param name="disC" value="1-cor"/> + <param name="cutSamN" value="4"/> + <param name="cutVarN" value="3"/> + <param name="oppC" value="full"/> + <param name="corMetC" value="spearman"/> + <param name="aggMetC" value="ward"/> + <param name="colC" value="blueOrangeRed"/> + <param name="scaL" value="TRUE"/> + <param name="cexN" value="0.8"/> + <output name="variableMetadata_out" file="output-variableMetadata.tsv"/> + </test> + </tests> + + <help> + +.. class:: infomark + +| **Tool update: See the 'NEWS' section at the bottom of the page** + +--------------------------------------------------- + +.. class:: infomark + +**Author** Etienne Thevenot (W4M Core Development Team, MetaboHUB Paris, CEA) + +--------------------------------------------------- + +.. class:: infomark + +**References** + +| Etienne A. Thevenot, Aurelie Roux, Ying Xu, Eric Ezan, and Christophe Junot (2015). Analysis of the human adult urinary metabolome variations with age, body mass index and gender by implementing a comprehensive workflow for univariate and OPLS statistical analyses. *Journal of Proteome Research*, **14**:3322-3335 (http://dx.doi.org/10.1021/acs.jproteome.5b00354). +| R Core Team (2013). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria (http://www.r-project.org) +| + +--------------------------------------------------- + +.. class:: infomark + +**Tool updates** + +See the **NEWS** section at the bottom of this page + +--------------------------------------------------- + + +======================== +Heatmap +======================== + +----------- +Description +----------- + + | Performs hierarchical clustering on both the samples (rows) and variables (columns) of the dataMatrix + | Displays the dataMatrix with sorted rows and samples and the dendrograms (heatmap) + | In the output dataMatrix, sampleMetadata and variableMetadata files sample and variables are sorted according to the dendrograms + | Optionally, indicates the groups of samples and/or variables obtained by cutting the dendrograms into a specific number of partitions + | + | Note: 1) Computations rely on the 'hclust' function. The dissimilarity is 1 - cor (where cor is the Spearman correlation) and the 'ward.D' aggregating method is used. + | 2) A "blue-orange-red" palette is generated with the function 'colorRampPalette'; **By default, variables are standardized (mean-centered and unit-scaled) to enhance contrast on the figure**; standardization can be turned off by using the full list of parameters; in any case, standardizing is performed after the computation of clusters, for display only + | 3) When a specific number of sample and/or variable groups (i.e. > 1) are selected, the group numbers are indicated on the plot and in an additional 'heat_clust" column in the sampleMetadata and/or variableMetadata + | 4) Example of computation times: for 126 variables: a few seconds; for 4324 variables: 30 min + | + + +----------------- +Workflow position +----------------- + +| In the workflow example below, the structure of the dataset (dataMatrix) is visualized by using first the "Quality Metrics" (for checking potential signal drift, sample outliers, etc.), then the "Heatmap" (for correlations between samples or variables), and finally the "Multivariate" (for PCA or PLS) modules. +| + +.. image:: heatmap_workflowPositionImage.png + :width: 600 + + + +----------- +Input files +----------- + ++--------------------------+-------------+ +| File type | Format | ++==========================+=============+ +| 1 : Data matrix | tabular | ++--------------------------+-------------+ +| 2 : Sample metadata | tabular | ++--------------------------+-------------+ +| 3 : Variable metadata | tabular | ++--------------------------+-------------+ + +| +| Required formats for the dataMatrix, sampleMetadata and variableMetadata files are described in the HowTo entitled 'Format Data For Postprocessing' available on the main page of Workflow4Metabolomics.org; formats of the three files can be further checked with the 'Check Data' module (in the 'Quality Control' section) +| + +---------- +Parameters +---------- + +Number of sample clusters + | By default (cluster = 1), only dendrograms are displayed; when a specific number of sample clusters is selected, the sample dendrogram is cut at the corresponding level: the sample groups are displayed on the dendrogram and a "heat_clust" column is added in the sampleMetadata file with the group of each sample + | + +Number of variable clusters + | Same as above for variables + | + +Standardization (Full list) + | By default, variables are standardized for display to enhance contrast of the heatmap (note that standardization is performed after the clustering for display only and does not modify cluster computation nor intensities in the output files) + | + +Size of labels (Full list) + | The size of sample and variable names on the heatmap is 0.8 (note that names with more than 14 characters are truncated); this number may be lowered (or uppered) in case of many (few) names to display + + +------------ +Output files +------------ + +dataMatrix_out.tabular + | dataMatrix file with rows and columns sorted according to the dendrogram + | + +sampleMetadata_out.tabular + | sampleMetadata file with rows sorted according to the sample dendrogram; in case a number of sample groups is specified, and additional "heat_clust" column is added with the cluster group of each sample + | + +variableMetadata_out.tabular + | variableMetadata file with rows sorted according to the variable dendrogram; in case a number of variable groups is specified, and additional "heat_clust" column is added with the cluster group of each variable + | + +figure.pdf + | Heatmap + | + +information.txt + | File with all messages and warnings generated during the computation + | + +--------------------------------------------------- + +--------------- +Working example +--------------- + +.. class:: infomark + +See the **W4M00001a_sacurine-subset-statistics** shared history in the **Shared Data/Published Histories** menu + +--------------------------------------------------- + +---- +NEWS +---- + +CHANGES IN VERSION 2.2.0 +======================== + +NEW FEATURES + +Default method for the correlation coefficient is now 'pearson', instead of 'spearman' previously (the latter can still be selected in the advanced parameters) + +The 1-abs(correlation) dissimilarity is now available (in addition to the default '1-correlation') in case the sign of correlations between samples and between variables does not matter, as well as the euclidean, maximum, manhattan, canberra, binary, and minkowski dissimilarities + +A new red-green color scale is available + + +CHANGES IN VERSION 2.1.2 +======================== + +INTERNAL MODIFICATIONS + +Creating additional files for planemo and travis running and installation validation + +CHANGES IN VERSION 2.1.1 +======================== + +Internal replacement of the as.hclust function which happened to produce error messages + + </help> + + <citations> + <citation type="bibtex">@Article{Thevenot2015, + Title = {Analysis of the human adult urinary metabolome variations with age, body mass index and gender by implementing a comprehensive workflow for univariate and OPLS statistical analyses}, + Author = {Thevenot, Etienne A. and Roux, Aurelie and Xu, Ying and Ezan, Eric and Junot, Christophe}, + Journal = {Journal of Proteome Research}, + Year = {2015}, + Note = {PMID: 26088811}, + Number = {8}, + Pages = {3322-3335}, + Volume = {14}, + + Doi = {10.1021/acs.jproteome.5b00354}, + Url = {http://pubs.acs.org/doi/full/10.1021/acs.jproteome.5b00354} + }</citation> + </citations> + +</tool>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/heatmap_script.R Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,258 @@ +## Etienne Thevenot +## CEA, MetaboHUB +## W4M Core Development Team +## etienne.thevenot@cea.fr +## 2015-05-30 + + +heatmapF <- function(proMN, + obsDF, + feaDF, + disC, ## dissimilarity + cutSamN, ## number of sample clusters + cutVarN, ## number of variable clusters + fig.pdfC, + corMetC, ## correlation method + aggMetC, ## agglomeration method + colC, ## color scale + scaL, + cexN) { + + ncaN <- 14 ## Sample and variable name truncature for display + + if(aggMetC == "ward") { + + rvsLs <- R.Version() + aggMetC <- paste0(aggMetC, + ifelse(as.numeric(rvsLs[["major"]]) > 3 || + as.numeric(rvsLs[["major"]]) == 3 && as.numeric(rvsLs[["minor"]]) > 0.3, + ".D", + "")) + + } + + if(disC %in% c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski")) { + + obsHcl <- hclust(dist(proMN, method = disC), + method = aggMetC) + + feaHcl <- hclust(dist(t(proMN), method = disC), + method = aggMetC) + + } else if(disC == "1-cor") { + + obsHcl <- hclust(as.dist(1-cor(t(proMN), + method = corMetC, + use = "pairwise.complete.obs")), + method = aggMetC) + + feaHcl <- hclust(as.dist(1-cor(proMN, + method = corMetC, + use = "pairwise.complete.obs")), + method = aggMetC) + + } else if(disC == "1-abs(cor)") { + + obsHcl <- hclust(as.dist(1-abs(cor(t(proMN), + method = corMetC, + use = "pairwise.complete.obs"))), + method = aggMetC) + + feaHcl <- hclust(as.dist(1-abs(cor(proMN, + method = corMetC, + use = "pairwise.complete.obs"))), + method = aggMetC) + + } + + heaMN <- proMN <- proMN[obsHcl[["order"]], feaHcl[["order"]]] + + if(scaL) + heaMN <- scale(heaMN) + + heaMN <- heaMN[, rev(1:ncol(heaMN)), drop = FALSE] + + switch(colC, + blueOrangeRed = { + imaPalVn <- colorRampPalette(c("blue", "orange", "red"), + space = "rgb")(5)[1:5] + }, + redBlackGreen = { + imaPalVn <- colorRampPalette(c("red", "black", "green"), + space = "rgb")(5)[1:5] + }) + + + ## figure + ##------- + + pdf(fig.pdfC, + width = 14, + height = 14) + + layout(matrix(1:4, nrow = 2), + widths = c(1, 9), heights = c(1, 9)) + + ## Color scale + + scaN <- length(imaPalVn) + + par(mar = c(0.6, 0.6, 0.6, 4.1)) + + ylimVn <- c(0, scaN) + ybottomVn <- 0:(scaN - 1) + ytopVn <- 1:scaN + + plot(x = 0, + y = 0, + bty = "n", + font.axis = 2, + font.lab = 2, + type = "n", + xlim = c(0, 1), + ylim = ylimVn, + xlab = "", + ylab = "", + xaxs = "i", + yaxs = "i", + xaxt = "n", + yaxt = "n") + + rect(xleft = 0.8, + ybottom = ybottomVn, + xright = 1, + ytop = ytopVn, + col = imaPalVn, + border = NA) + + prtVn <- pretty(range(heaMN, na.rm = TRUE)) + axis(at = scaN / diff(range(prtVn)) * (prtVn - min(prtVn)), + font = 2, + font.axis = 2, + labels = prtVn, + las = 1, + lwd = 2, + lwd.ticks = 2, + side = 4, + xpd = TRUE) + + arrows(par("usr")[2], + par("usr")[4], + par("usr")[2], + par("usr")[3], + code = 0, + lwd = 2, + xpd = TRUE) + + ## Feature dendrogram + + par(mar = c(7.1, 0.6, 0, 0.1), + lwd = 2) + + plot(rev(as.dendrogram(feaHcl)), horiz = TRUE, + leaflab = "none", + main = "", xaxs = "i", yaxs = "i", + xaxt = "n", yaxt = "n", xlab = "", ylab = "") + + revFeaHcl <- list(merge = cbind(feaHcl[["merge"]][, 2], feaHcl[["merge"]][, 1]), + height = feaHcl[["height"]], + order = rev(feaHcl[["order"]]), + labels = feaHcl[["labels"]]) + + if(cutVarN > 1) { + cluFeaVn <- cutree(revFeaHcl, k = cutVarN)[revFeaHcl[["order"]]] + cutFeaVn <- which(abs(diff(cluFeaVn)) > 0) + cutFeaTxtVn <- c(cutFeaVn[1] / 2, cutFeaVn + diff(c(cutFeaVn, length(cluFeaVn))) / 2) + 0.5 + cutFeaLinVn <- cutFeaVn + 0.5 + text(par("usr")[1] + 0.2 * diff(par("usr")[1:2]), + cutFeaTxtVn, + labels = unique(cluFeaVn), + cex = 2, + font = 2, + las = 2) + } + + ## Observation dendrogram + + par(mar = c(0.1, 0, 0.6, 7.1), + lwd = 2) + + plot(as.dendrogram(obsHcl), leaflab = "none", + main = "", xaxs = "i", yaxs = "i", + yaxt = "n", xlab = "", ylab = "") + + if(cutSamN > 1) { + cluObsVn <- cutree(obsHcl, k = cutSamN)[obsHcl[["order"]]] + cutObsVn <- which(abs(diff(cluObsVn)) > 0) + cutObsTxtVn <- c(cutObsVn[1] / 2, cutObsVn + diff(c(cutObsVn, length(cluObsVn))) / 2) + 0.5 + cutObsLinVn <- cutObsVn + 0.5 + text(cutObsTxtVn, + 0.8 * par("usr")[4], + labels = unique(cluObsVn), + cex = 2, + font = 2) + } + + ## Heatmap + + par(mar = c(7.1, 0, 0, 7.1)) + + image(x = 1:nrow(heaMN), + y = 1:ncol(heaMN), + z = round(heaMN), + col = imaPalVn, + font.axis = 2, + font.lab = 2, + xaxt = "n", + yaxt = "n", + xlab = "", + ylab = "") + + obsOrdVc <- obsHcl[["labels"]][obsHcl[["order"]]] + obsOrdLenVn <- sapply(obsOrdVc, nchar) + obsOrdVc <- substr(obsOrdVc, 1, ncaN) + obsOrdVc <- paste0(obsOrdVc, ifelse(obsOrdLenVn > ncaN, ".", ""), " ") + + mtext(obsOrdVc, + at = 1:nrow(heaMN), + cex = cexN, + las = 2, + side = 1) + + feaOrdVc <- feaHcl[["labels"]][feaHcl[["order"]]] + feaOrdLenVn <- sapply(feaOrdVc, nchar) + feaOrdVc <- substr(feaOrdVc, 1, ncaN) + feaOrdVc <- paste0(" ", feaOrdVc, ifelse(feaOrdLenVn > ncaN, ".", "")) + + mtext(feaOrdVc, + at = ncol(heaMN):1, + cex = cexN, + las = 2, + side = 4) + + if(cutVarN > 1) + abline(h = cutFeaLinVn) + if(cutSamN > 1) + abline(v = cutObsLinVn) + + box() + + dev.off() + + ## Returning + ##---------- + + if(cutSamN > 1) + obsDF[, "heat_clust"] <- cutree(obsHcl, k = cutSamN) + obsDF <- obsDF[obsHcl[["order"]], , drop = FALSE] + + if(cutVarN > 1) + feaDF[, "heat_clust"] <- cutree(feaHcl, k = cutVarN) + feaDF <- feaDF[feaHcl[["order"]], , drop = FALSE] + + return(invisible(list(proMN = proMN, + obsDF = obsDF, + feaDF = feaDF))) + + +} ## end of heatmapF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/heatmap_wrapper.R Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,156 @@ +#!/usr/bin/env Rscript + +library(batch) ## parseCommandArgs + +source_local <- function(fname){ + argv <- commandArgs(trailingOnly = FALSE) + base_dir <- dirname(substring(argv[grep("--file=", argv)], 8)) + source(paste(base_dir, fname, sep="/")) +} + +source_local("heatmap_script.R") + +argVc <- unlist(parseCommandArgs(evaluate=FALSE)) + + +##------------------------------ +## Initializing +##------------------------------ + +## options +##-------- + +strAsFacL <- options()[["stringsAsFactors"]] +options(stringsAsFactors=FALSE) + +## constants +##---------- + +modNamC <- "Heatmap" ## module name + +## log file +##--------- + +sink(argVc["information"]) + +cat("\nStart of the '", modNamC, "' module: ", + format(Sys.time(), "%a %d %b %Y %X"), "\n", sep="") + +## loading +##-------- + +proMN <- t(as.matrix(read.table(argVc["dataMatrix_in"], + check.names = FALSE, + header = TRUE, + row.names = 1, + sep = "\t"))) + +obsDF <- read.table(argVc["sampleMetadata_in"], + check.names = FALSE, + header = TRUE, + row.names = 1, + sep = "\t") + +feaDF <- read.table(argVc["variableMetadata_in"], + check.names = FALSE, + header = TRUE, + row.names = 1, + sep = "\t") + +## adding default parameter values +##-------------------------------- + + +if(!("corMetC" %in% names(argVc))) + argVc["corMetC"] <- "pearson" +if(!("aggMetC" %in% names(argVc))) + argVc["aggMetC"] <- "ward" +if(!("colC" %in% names(argVc))) + argVc["colC"] <- "blueOrangeRed" +if(!("scaL" %in% names(argVc))) + argVc["scaL"] <- "TRUE" +if(!("cexN" %in% names(argVc))) + argVc["cexN"] <- "0.8" + +## checking +##--------- + +if(as.numeric(argVc["cutSamN"]) > nrow(proMN)) + stop("Number of sample clusters must be inferior to the number of samples") +if(as.numeric(argVc["cutVarN"]) > ncol(proMN)) + stop("Number of variable clusters must be inferior to the number of variables") + +## printing arguments +##------------------- + +cat("\nArguments used:\n\n") +argMC <- as.matrix(argVc) +colnames(argMC) <- "value" +argDatVl <- grepl("\\.dat$", argVc) ## discarding dataset file names +if(sum(argDatVl)) + argMC <- argMC[!argDatVl, , drop = FALSE] +print(argMC) + + +##------------------------------ +## Computation +##------------------------------ + + +heaLs <- heatmapF(proMN = proMN, + obsDF = obsDF, + feaDF = feaDF, + disC = argVc["disC"], + cutSamN = as.numeric(argVc["cutSamN"]), + cutVarN = as.numeric(argVc["cutVarN"]), + fig.pdfC = argVc["figure"], + corMetC = argVc["corMetC"], + aggMetC = argVc["aggMetC"], + colC = argVc["colC"], + scaL = as.logical(argVc["scaL"]), + cexN = as.numeric(argVc["cexN"])) + + +##------------------------------ +## Ending +##------------------------------ + + +## saving +##------- + +proDF <- cbind.data.frame(dataMatrix = colnames(heaLs[["proMN"]]), + as.data.frame(t(heaLs[["proMN"]]))) +write.table(proDF, + file = argVc["dataMatrix_out"], + quote = FALSE, + row.names = FALSE, + sep = "\t") + +obsDF <- cbind.data.frame(sampleMetadata = rownames(heaLs[["obsDF"]]), + heaLs[["obsDF"]]) +write.table(obsDF, + file = argVc["sampleMetadata_out"], + quote = FALSE, + row.names = FALSE, + sep = "\t") + +feaDF <- cbind.data.frame(variableMetadata = rownames(heaLs[["feaDF"]]), + heaLs[["feaDF"]]) +write.table(feaDF, + file = argVc["variableMetadata_out"], + quote = FALSE, + row.names = FALSE, + sep = "\t") + +## Ending +##------- + +cat("\nEnd of the '", modNamC, "' Galaxy module call: ", + format(Sys.time(), "%a %d %b %Y %X"), "\n", sep = "") + +sink() + +options(stringsAsFactors = strAsFacL) + +rm(list = ls())
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input-dataMatrix.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +dataMatrix HU_017 HU_028 HU_034 HU_051 HU_060 HU_078 HU_091 HU_093 HU_099 HU_110 HU_130 HU_134 HU_138 HU_149 HU_152 HU_175 HU_178 HU_185 HU_204 HU_208 +HMDB03193 76043 412165 44943 27242 436566 173175 242549 57066 559869 3732 339188 471368 262271 127285 451270 212500 79673 NA 891129 43907 +HMDB01101 30689 6877586 52217 3158 10789748 229568 4763576 3878773 976436 831937 608298 1605075 72021 442510 1107705 1464339 31250 2724553 72900 32742 +HMDB10348 47259 544877 60885 34582 529874 168264 176500 76457 610110 16262 279156 524468 451573 591487 433529 161069 214392 13781 1580343 39315 +HMDB59717 357351 1030464 301983 67604 306862 1028110 1530493 270027 1378535 289677 808334 1132813 871209 895435 715190 1563158 784738 146195 994336 239030 +HMDB00822 483755 579287 1132413 157113 1577570 1469735 1085454 477909 814755 245417 610681 763706 2406336 827531 992508 569605 355321 150259 1334200 271010 +HMDB13189 2644620 727587 1661412 619181 136278 2755434 593863 837865 3526136 2003278 1608814 3446611 1941527 113937 3132404 2893445 2092753 1034666 1517319 841661 +HMDB00299 250551 1046138 456162 159386 1013302 808657 614370 250403 768004 242085 504108 1014041 1362408 1057660 1110050 566050 411886 142233 1992420 284775 +HMDB00191 560002 771533 575790 392284 888498 785428 645785 591569 960658 910201 639437 1092885 1409045 2292023 1246459 1945577 710519 773384 1061418 622898 +HMDB00518 34236 58249 85944 NA 342102 129886 175800 13154 230242 NA 440223 315368 10657 419508 48673 28361 514579 23108 867108 73831 +HMDB00715 1252089 2547452 905408 371059 4983588 5140022 2658555 814523 2558923 859466 4184204 3865723 3236644 2615560 3820724 3577833 2295288 625924 7517724 1341900 +HMDB01032 2569205 26023086 1604999 430453 8103558 26222916 257139 675754 59906109 263055 31151730 18648127 14989438 1554658 20249262 5588731 871010 15920 9120781 44276 +HMDB00208 747080 13420742 595872 1172376 7172632 3143654 4059767 1433702 5593888 5402629 2477288 3346077 4230072 7621236 8960828 10335722 7037373 1574738 3359238 2540044 +HMDB04824 374028 1144386 539206 178517 1046190 959381 605191 310260 1253319 477259 477995 825691 1157093 1089284 1411802 1020206 782673 346761 1824553 387811 +HMDB00512 53304 319783 280560 85009 1333877 556003 590779 209285 342532 198512 569970 525240 246282 1140422 542345 1171008 827723 222953 438839 85554 +HMDB00251 368600 616555 94936 622468 180988 293988 352855 767894 268331 167246 310918 1248919 577184 10985 335711 403815 80614 63393 454489 616061
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input-sampleMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,21 @@ +sampleMetadata injectionOrder mode age bmi gender +HU_017 2 pos 41 23.03 M +HU_028 7 pos 41 23.92 F +HU_034 9 pos 52 23.37 M +HU_051 20 pos 24 23.23 F +HU_060 24 pos 55 28.72 F +HU_078 34 pos 46 25.18 M +HU_091 42 pos 61 26.12 M +HU_093 43 pos 53 21.71 M +HU_099 46 pos 23 21.3 M +HU_110 53 pos 50 20.9 F +HU_130 63 pos 33 26.06 M +HU_134 67 pos 48 22.89 M +HU_138 68 pos 42 21.88 M +HU_149 72 pos 35 19.49 F +HU_152 75 pos 26 17.58 F +HU_175 87 pos 35 21.26 F +HU_178 88 pos 60 32.87 F +HU_185 95 pos 42 21.09 F +HU_204 104 pos 31 29.06 M +HU_208 106 pos 27 18.61 F
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input-variableMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +variableMetadata name +HMDB03193 Testosterone_glucuronide +HMDB01101 p-Anisic_acid +HMDB10348 Dehydroepiandrosterone_3-glucuronide +HMDB59717 Glu-Val +HMDB00822 p-Hydroxymandelic_acid +HMDB13189 3-Indole_carboxylic_acid_glucuronide +HMDB00299 Xanthosine +HMDB00191 L-Aspartic_acid +HMDB00518 Chenodeoxycholic_acid +HMDB00715 Kynurenic_acid +HMDB01032 Dehydroepiandrosterone_sulfate +HMDB00208 Oxoglutaric_acid +HMDB04824 N2,N2-Dimethylguanosine +HMDB00512 N-Acetyl-L-phenylalanine +HMDB00251 Taurine
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output-dataMatrix.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +dataMatrix HU_051 HU_208 HU_178 HU_130 HU_175 HU_099 HU_152 HU_204 HU_017 HU_138 HU_034 HU_078 HU_060 HU_149 HU_028 HU_093 HU_134 HU_091 HU_110 HU_185 +HMDB13189 619181 841661 2092753 1608814 2893445 3526136 3132404 1517319 2644620 1941527 1661412 2755434 136278 113937 727587 837865 3446611 593863 2003278 1034666 +HMDB00251 622468 616061 80614 310918 403815 268331 335711 454489 368600 577184 94936 293988 180988 10985 616555 767894 1248919 352855 167246 63393 +HMDB01101 3158 32742 31250 608298 1464339 976436 1107705 72900 30689 72021 52217 229568 10789748 442510 6877586 3878773 1605075 4763576 831937 2724553 +HMDB00191 392284 622898 710519 639437 1945577 960658 1246459 1061418 560002 1409045 575790 785428 888498 2292023 771533 591569 1092885 645785 910201 773384 +HMDB00208 1172376 2540044 7037373 2477288 10335722 5593888 8960828 3359238 747080 4230072 595872 3143654 7172632 7621236 13420742 1433702 3346077 4059767 5402629 1574738 +HMDB59717 67604 239030 784738 808334 1563158 1378535 715190 994336 357351 871209 301983 1028110 306862 895435 1030464 270027 1132813 1530493 289677 146195 +HMDB00512 85009 85554 827723 569970 1171008 342532 542345 438839 53304 246282 280560 556003 1333877 1140422 319783 209285 525240 590779 198512 222953 +HMDB00518 NA 73831 514579 440223 28361 230242 48673 867108 34236 10657 85944 129886 342102 419508 58249 13154 315368 175800 NA 23108 +HMDB00822 157113 271010 355321 610681 569605 814755 992508 1334200 483755 2406336 1132413 1469735 1577570 827531 579287 477909 763706 1085454 245417 150259 +HMDB00715 371059 1341900 2295288 4184204 3577833 2558923 3820724 7517724 1252089 3236644 905408 5140022 4983588 2615560 2547452 814523 3865723 2658555 859466 625924 +HMDB01032 430453 44276 871010 31151730 5588731 59906109 20249262 9120781 2569205 14989438 1604999 26222916 8103558 1554658 26023086 675754 18648127 257139 263055 15920 +HMDB00299 159386 284775 411886 504108 566050 768004 1110050 1992420 250551 1362408 456162 808657 1013302 1057660 1046138 250403 1014041 614370 242085 142233 +HMDB04824 178517 387811 782673 477995 1020206 1253319 1411802 1824553 374028 1157093 539206 959381 1046190 1089284 1144386 310260 825691 605191 477259 346761 +HMDB03193 27242 43907 79673 339188 212500 559869 451270 891129 76043 262271 44943 173175 436566 127285 412165 57066 471368 242549 3732 NA +HMDB10348 34582 39315 214392 279156 161069 610110 433529 1580343 47259 451573 60885 168264 529874 591487 544877 76457 524468 176500 16262 13781
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/output-variableMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +variableMetadata name heat_clust +HMDB13189 3-Indole_carboxylic_acid_glucuronide 3 +HMDB00251 Taurine 3 +HMDB01101 p-Anisic_acid 2 +HMDB00191 L-Aspartic_acid 2 +HMDB00208 Oxoglutaric_acid 2 +HMDB59717 Glu-Val 2 +HMDB00512 N-Acetyl-L-phenylalanine 2 +HMDB00518 Chenodeoxycholic_acid 1 +HMDB00822 p-Hydroxymandelic_acid 1 +HMDB00715 Kynurenic_acid 1 +HMDB01032 Dehydroepiandrosterone_sulfate 1 +HMDB00299 Xanthosine 1 +HMDB04824 N2,N2-Dimethylguanosine 1 +HMDB03193 Testosterone_glucuronide 1 +HMDB10348 Dehydroepiandrosterone_3-glucuronide 1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/exa1/dataMatrix.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,39 @@ +dataMatrix S1 S2 S3 S4 S5 S6 +V1 196502 237810 198284 182894 105331 132150 +V2 2544571 2614302 2451909 3142179 3768416 3713752 +V3 1230784 1161975 1143745 1150915 1344578 1220503 +V4 1630089 1818363 1563465 2387030 3502620 2954208 +V5 2184963 2374515 1974647 2313226 1782744 1860757 +V6 5262172 6365930 5010369 9109487 6410977 6378638 +V7 2232587 2745906 2200995 3832216 2708070 2869295 +V8 483320 660332 433486 1062013 677822 748514 +V9 112905 136174 123604 162138 240686 195271 +V10 179154 195001 180519 98623 132470 123032 +V11 175220 169515 158401 111215 103539 159727 +V12 46503 55313 76310 46932 92318 43629 +V13 113796 91557 95960 92685 140973 112898 +V14 540798 596737 511783 876548 1626199 1385367 +V15 140806 135469 145016 229518 434119 398941 +V16 1334798 1318651 1308783 2345055 4068874 3565724 +V17 1083792 1145232 916864 838363 1678307 1304234 +V18 91671 101007 79999 85402 146939 126314 +V19 274181 282331 292645 394175 330817 293481 +V20 879658 809068 903330 1273966 959314 938277 +V21 608434 662366 727426 920178 1106194 1201520 +V22 1600960 1545158 1608816 1880288 2246189 2069613 +V23 2171614 2239769 2106004 2565354 4913676 4072322 +V24 4045143 3862213 4053630 7352540 5574415 6185035 +V25 202805 182042 165499 57267 86611 89320 +V26 586997 667911 522193 748212 595063 659353 +V27 229790 256287 253497 1189248 1025521 746948 +V28 1644853 1759382 1760494 3379214 4572430 4386799 +V29 8491372 9275641 8655578 12105700 13265172 13484917 +V30 724039 730730 640992 1475658 1191085 1213210 +V31 86524840 89500400 88593487 183705591 150949959 169189091 +V32 26916143 30167854 28256416 39049936 45546213 47237473 +V33 2683733 2654918 2386486 4786536 3622659 3879731 +V34 3919797 4529379 3595989 7965534 5963667 6339219 +V35 84384696 90691983 83322980 51888441 86013709 79735533 +V36 95751916 101056674 92760886 129551865 109580811 118980909 +V37 374328 416298 355931 255675 371223 338701 +V38 2219529 2333885 2206832 903780 981633 1136522
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/exa1/sampleMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,7 @@ +sampleMetadata smeta1 smeta2 +S1 196502 2544571 +S2 237810 2614302 +S3 198284 2451909 +S4 182894 3142179 +S5 105331 3768416 +S6 132150 3713752
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/exa1/variableMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,39 @@ +variableMetadata vmeta1 vmeta2 vmeta3 vmeta4 vmeta5 vmeta6 +V1 196502 237810 198284 182894 105331 132150 +V2 2544571 2614302 2451909 3142179 3768416 3713752 +V3 1230784 1161975 1143745 1150915 1344578 1220503 +V4 1630089 1818363 1563465 2387030 3502620 2954208 +V5 2184963 2374515 1974647 2313226 1782744 1860757 +V6 5262172 6365930 5010369 9109487 6410977 6378638 +V7 2232587 2745906 2200995 3832216 2708070 2869295 +V8 483320 660332 433486 1062013 677822 748514 +V9 112905 136174 123604 162138 240686 195271 +V10 179154 195001 180519 98623 132470 123032 +V11 175220 169515 158401 111215 103539 159727 +V12 46503 55313 76310 46932 92318 43629 +V13 113796 91557 95960 92685 140973 112898 +V14 540798 596737 511783 876548 1626199 1385367 +V15 140806 135469 145016 229518 434119 398941 +V16 1334798 1318651 1308783 2345055 4068874 3565724 +V17 1083792 1145232 916864 838363 1678307 1304234 +V18 91671 101007 79999 85402 146939 126314 +V19 274181 282331 292645 394175 330817 293481 +V20 879658 809068 903330 1273966 959314 938277 +V21 608434 662366 727426 920178 1106194 1201520 +V22 1600960 1545158 1608816 1880288 2246189 2069613 +V23 2171614 2239769 2106004 2565354 4913676 4072322 +V24 4045143 3862213 4053630 7352540 5574415 6185035 +V25 202805 182042 165499 57267 86611 89320 +V26 586997 667911 522193 748212 595063 659353 +V27 229790 256287 253497 1189248 1025521 746948 +V28 1644853 1759382 1760494 3379214 4572430 4386799 +V29 8491372 9275641 8655578 12105700 13265172 13484917 +V30 724039 730730 640992 1475658 1191085 1213210 +V31 86524840 89500400 88593487 183705591 150949959 169189091 +V32 26916143 30167854 28256416 39049936 45546213 47237473 +V33 2683733 2654918 2386486 4786536 3622659 3879731 +V34 3919797 4529379 3595989 7965534 5963667 6339219 +V35 84384696 90691983 83322980 51888441 86013709 79735533 +V36 95751916 101056674 92760886 129551865 109580811 118980909 +V37 374328 416298 355931 255675 371223 338701 +V38 2219529 2333885 2206832 903780 981633 1136522
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/exa2/dataMatrix.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,117 @@ +dataMatrix S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 S22 S23 S24 S25 S26 S27 S28 +V1 1484.78 1106.3 1217.84 1441.38 1213.63 1302.49 1412.79 1322.28 1258.89 1365.49 1146.78 1243 1242.47 1250.61 1307.52 1423.59 1290.51 1126.64 1421.23 1235.75 1084.56 1252.87 1254.74 1584.64 1474.43 1283.85 1347.74 1557.35 +V2 0 0 0 13.14 0 0 0 16.36 0 0 11.8 0 0 0 0 12.34 12.45 0 0 6.87 6.41 0 15.53 12.87 0 14.58 0 0 +V3 0 5.93 7.82 16.41 7.58 9.54 8.25 20.52 5.89 6.27 20.86 5.2 8.97 10.93 6.51 21.06 25.05 0 0 11.79 16.97 7.23 19.58 20.56 11.07 20.87 0 6.18 +V4 10.86 12.56 7.93 14.32 10.64 11.38 8.24 15.8 11.75 11.29 12 6.34 8.05 16.12 13.33 18.81 24.44 8.26 6.99 9.76 10.29 9.11 19.32 26.55 15.58 17.38 3.31 7.2 +V5 9.49 5.72 6.96 5.48 6.38 9.57 6.31 8.67 8.21 9.1 9.23 9.68 7.1 6.89 4.39 7.98 11.58 7.71 10.99 8.67 13.18 7.19 10.96 5.86 7.98 10.39 4.69 11.78 +V6 43.5 19.95 34.96 31.98 31.27 49.9 38.17 26.44 27.19 40.64 40.9 47 26.26 30.31 20.64 49.54 49.06 26.73 64.56 43.29 80.61 38.08 42.01 37.22 26.37 25.97 25.2 41.05 +V7 333.79 311.77 321.24 391.51 297.03 263.85 246.39 221.76 447.49 418.79 300.37 414.43 262.68 244.09 213.24 423.97 523.16 344.76 413.98 402.45 251.38 225.47 300.48 230.58 301.51 246.9 361.04 375.51 +V8 49.48 20.81 27.33 17.44 15.39 14.84 17.67 13.41 29.27 63.13 34.04 23.41 25.16 16.2 11.68 42.53 31.46 12.83 38.02 40.28 25.77 12.44 41.05 15.25 23.21 27.11 25.98 22.33 +V9 2.56 1.18 1.07 1.39 2.59 2.53 1.98 3.84 1.61 1.72 1.76 1.73 0.63 2.13 2.02 2.44 0 1.24 1.22 1.87 7.83 4.15 5.88 4.77 5.77 7.81 0 1.67 +V10 6.37 4.55 2.63 5.09 6.29 6.32 6.31 6.61 4.35 5.98 4.79 6.3 1.24 6.98 5.09 6.64 7.21 3.63 4.14 5.47 19.45 8.4 9.41 10.83 10.78 11.98 1.29 3.86 +V11 11.9 21.21 10.67 19.08 17.84 10.64 13.61 10.41 17.75 17.87 13.24 15.27 7.83 18.66 13.5 18.67 26.37 14.46 13.18 18.29 26.21 10.65 16.46 21.52 19.57 17.89 8.81 10.4 +V12 4.38 8.56 4.95 8.83 5.87 3.53 5.15 0.45 7.67 5.85 5.32 4.88 4.55 5.87 5.12 6.16 10.97 6.67 4.69 6.11 7.33 3.34 5.44 8.94 5.83 5.07 5.77 3.8 +V13 0.78 1.17 0.61 1.21 0.89 0 0.56 0.45 1.04 1.03 0 0.71 0.62 0.78 0 1.25 0 0.63 1.1 1.16 1.13 0 0.87 1.05 1.06 0.63 0.36 0.82 +V14 1511.11 1158.59 1529.32 1471.39 1654.17 2320.94 2630.11 2148.49 1248.21 1590.03 1120.83 1388.4 1523.12 2293.02 0 1566.36 1543.42 842.31 1421.66 1850.9 2870.84 2338.83 1979.28 3581.78 1757.49 2983.66 2967.62 1392.97 +V15 638.35 560.78 803.6 597.71 719.25 805.09 773.49 777.4 566.6 780.02 607.71 493.24 655.73 880.88 0 768.64 625.98 451.52 443.79 745.64 692.9 839.58 727.49 1376.26 622.72 1421.07 997.77 827.06 +V16 165.37 51.55 130.59 57.95 98.46 310.56 233.32 147.43 39.69 109.04 0 101.57 0 97.94 0 107.15 90.92 0 177.32 137.54 432.77 267.66 128.29 331.03 144.05 118.52 162.61 64.33 +V17 1586.23 2103.69 1926.52 1614.01 2166.04 2284.19 2506.01 2040.02 1327.06 1705.97 1461.31 1649.21 1759.17 2442.95 0 1875.52 1881.42 1512.88 1520.67 1981.82 3021.6 2389.78 2088.67 4697.26 1646.11 3269.32 2805.59 2315.4 +V18 243.32 227.33 349.71 195.5 327.78 307.89 703.12 197.9 0 234.07 330.09 246.26 256.2 419.19 0 265.17 192.4 188.52 255.13 481.91 462.41 216.66 336.29 478.85 152.09 424.2 257.62 198.53 +V19 1921.6 2015.61 2872.21 2975.67 2406.07 2438.08 2381.42 2789.98 2881.8 2119.69 1953.23 1880.63 1985.58 1819.19 0 2343.84 2473.67 1909.11 1798.62 2824.34 1735 2429.73 1958.41 4299.39 2609.31 3374.62 2824.95 3079.01 +V20 539.06 432.85 724.98 347.76 380.87 522.5 444.07 550.04 502.86 576.95 744.34 410.58 415.64 321.36 0 805.68 451.18 292.67 471.68 793.63 804.05 679.41 0 1047.85 444.04 444.5 547.87 738.82 +V21 288.7 0 0 0 0 0 0 0 0 144.5 0 0 0 154.85 0 119.48 0 0 0 0 0 0 0 179.2 0 208.44 0 0 +V22 273.95 149.66 287.92 0 327.34 0 717.56 0 0 311.8 0 121.95 0 172.76 0 238.66 161.38 0 0 0 0 0 608.86 398.84 173.3 462.34 347.64 312.02 +V23 614.701 98.849 0 217.085 320.044 246.769 107.187 114.252 185.453 0 0 179.589 0 0 0 169.996 58.781 133.231 209.81 106.94 159.654 97.758 160.071 0 131.035 0 169.996 0 +V24 7.329 7.035 6.437 5.973 6.656 0 0 6.663 7.697 7.511 6.876 7.531 6.817 6.579 5.978 0 7.191 7.57 6.105 6.994 6.84 0 0 0 7.322 7.182 0 5.935 +V25 28.846 26.604 26.246 0 25.943 0 24.929 0 29.452 27.652 28.324 28.299 0 0 24.957 0 28.278 28.029 25.955 27.292 27.437 24.795 0 0 0 26.468 0 0 +V26 16.71 15.574 15.343 0 0 14.629 0 16.021 18.624 16.703 16.82 15.859 15.086 14.725 14.543 0 16.698 16.782 14.461 16.186 16.36 0 0 14.682 0 14.853 0 14.503 +V27 187.78 134.86 104.51 164.53 145.23 101.57 194.53 143.99 147.12 34.35 110 105.84 95.85 160.24 97.8 108.21 112.99 23.83 110.36 146.6 127.22 132.54 134.6 123.13 156.39 138.56 133.67 14.17 +V28 20.22 14.96 11.79 17.94 16.79 11.55 22.08 17.8 16.64 3.74 13.56 12.82 11.43 19.05 11.62 12.97 13.58 2.8 13.44 17.3 15.87 14.87 16.1 14.06 16.01 17.45 15.64 1.43 +V29 75.78 77.98 38.21 69.93 86.6 35.94 93.92 70.68 68.63 21.05 45.99 55.4 45.65 58.75 39.82 34.02 46.6 9.28 29.73 65.55 65.73 62.13 56.75 35.83 61.46 60.77 54.74 13.94 +V30 12.75 14.38 8.06 13.79 15.45 7.33 16.09 14.9 12.84 3.34 8.78 11.42 9.47 12.32 7.87 7.82 9.61 1.87 8.15 11.43 13.59 8.63 11.36 8.74 10.62 15.01 10.94 2.45 +V31 152.24 143.82 99.08 127.98 140.79 77.54 137.85 112.09 123.92 25.64 107.74 112.76 89.79 107.46 71.99 82.81 95.43 16.35 78.04 79.82 132.59 126.74 133.86 82.86 109.23 124.44 108.45 24.55 +V32 938.99 725.51 504.85 599.76 701.02 393.83 668.81 533.32 633.26 165.95 562.51 557.52 415.33 598.74 338.85 352.62 470.93 115.55 385.39 327.2 589.46 648.36 743.1 360.36 591.98 574.85 527.59 150.99 +V33 2988.64 2781 2451.36 2290.88 2497.75 1772.76 2434.42 2222.88 2429.96 365.39 2071.07 2358.74 1919.88 2141.82 1236.79 1292.48 1836.8 465.52 1668.16 1167.73 2095.17 3286.45 2900.66 1323.11 2346.08 2245.29 2129.08 735.12 +V34 1644.27 1378.93 970.38 1310.7 1277.11 838.94 1276.17 1038.97 1216.93 256.38 1070.93 1248.62 908.78 1301.31 795.45 690.35 1002.58 246.43 1039.85 738.11 1609.77 1444.48 1417.84 843.04 1359.28 1512.42 1245.6 326.87 +V35 34.28 28.91 29.9 31.11 38.88 17.48 39.24 23.23 30.38 7.43 19.24 32.68 22.86 29.83 13.98 13.69 22.05 7.96 21.14 30.86 25.14 34.58 29.31 14.04 32.27 29.3 27.08 6.72 +V36 34.69 25.94 25.12 31.06 34.84 18.45 27.52 20.78 27.3 6.01 16.27 32.31 21.57 24.55 15.88 13.34 20.65 7.03 16.83 25.77 27.02 38.17 26.83 15.03 36.42 32.65 27.34 8.39 +V37 53.33 33.39 38.28 56 18.46 33.81 39.24 25.03 37.19 12.79 19.02 29.64 29.32 36.33 21.06 26.69 27.01 6.3 24.3 49.3 23.38 133.19 49.05 20.55 57.23 32.46 48.68 36.85 +V38 55.46 32.06 38.14 73.93 17.66 27.63 40.29 24.64 38.73 18.25 17.06 30.63 28.54 39.35 15.18 27.94 26.45 9.01 22.52 62.43 17.96 222 42.3 16.94 65.81 35.65 60.7 67.84 +V39 1615.79 832.94 948.85 1163.14 780.73 932.8 827.92 651.39 969.19 300.59 651.84 688.09 704.96 886.23 511.33 657.76 683.37 120.74 872.17 1307.25 802.54 2032.41 1544.2 758.36 1356.28 1432.05 1263.16 435.85 +V40 1699.27 766.05 997.32 1114.23 990.02 987.62 890.66 680.92 1015.76 309.1 716.86 590.9 623.14 866.72 485.55 674.31 659.58 128.63 766 948.5 764.57 1414.08 1579.67 769.54 1269.34 1677.86 1148.7 383.33 +V41 3995.34 1888.42 2393.66 1835.16 1684.97 1796.85 1192.55 1091.08 1984.75 909.69 1763.01 1285.69 1150.88 1126.86 1048.41 1193.59 1261.41 257.87 1437.84 1248.8 1395.5 2019.26 3393.17 1548.47 2189.84 2792.08 2003.12 761.04 +V42 6200.76 2703.73 3569.72 2967.38 2647.22 2701.52 1896.29 1731.65 3052.28 1397.8 2729.69 1770.64 1689.06 1813.5 1552.25 1977.75 1922.15 419.79 2262.29 1830.99 2226.75 2961.28 5042.17 2440.05 3329.37 4602.08 3086.87 1171.63 +V43 2766.76 1286.7 1535.67 1776.16 1043.65 1253.94 1165.85 989.89 1477.33 581.17 1081.96 962.62 1015.15 1217.68 877.56 1123.53 1046.42 120.87 1150.86 1405.41 1211.44 2590.33 1996.95 1466.31 2124.7 2561.89 1813.49 583.43 +V44 1808.56 1052.58 1064.38 1465.2 861.99 1062.52 1290.66 962.53 1196.05 311.32 811.08 1038.58 980.55 1253.84 820.41 794.37 949.8 179.67 766.54 1582.99 1107.43 3061.94 1384.89 1171.4 1849.11 2223.83 1643.52 731.04 +V45 361.49 289.55 263.82 424.39 250.66 201.69 240.88 240.95 284.18 73.44 248.27 273.46 216.48 217.64 165.11 174.49 215.91 41.61 227.97 327.36 274.12 615.76 379.63 251.66 345.47 506.13 366.01 133.46 +V46 2607.82 2000.16 1671.95 2357.94 1683.26 1571.32 1935.52 1840.49 1958.56 359.59 1995.27 1867.04 1691.03 1610.68 1121.25 1356.18 1606.91 323.82 1288.12 2384.86 1957.6 4620.77 2142.9 2097.88 2778.2 3638.56 2613.61 1057.86 +V47 4306.74 3278.54 2766.81 3676.12 2584.89 2707.8 3218.81 3013.78 3194.19 573.31 3189.42 3307.49 2902.72 2845.79 2162.9 2270.99 2779.88 470.14 2005.07 3846.66 3287.96 7678.68 3441.2 3648.6 4534.31 6234.27 4334.59 1807.15 +V48 2757.36 1972.09 1921.97 2047.43 2307.53 3450.36 2481.9 3192.32 2516.37 573.41 1605.23 4187.86 1340.3 2548.83 2241.75 1147.41 2178.56 1120.09 946.32 1988.3 3012.52 4348.05 4947.77 2894.49 2605.46 6227.79 3371.34 1704.39 +V49 2846.27 2112.17 2074.85 2484.04 2030.38 2892.38 2323.34 2689.36 2431.6 349.58 1659.98 3637.59 1615.48 2586.62 2360.5 1413.49 2212.28 835.81 1208.92 2272.05 2841.18 5130.58 4188 2879.36 2853.44 5754.18 3390.96 1517.17 +V50 63.24 68.39 44.94 64.93 37.36 31.18 60.74 35.49 50.78 15.1 52.13 43.34 53.45 55.07 31.66 31.25 44.48 10.88 33.05 60.72 34.37 209.37 55.71 37.41 51.12 69.22 68.87 58.26 +V51 1745.37 1185.09 1129.87 1082.42 1354.59 1492.4 1089.89 1391.1 1308.84 232.89 1028.07 1955.9 729.97 1004.49 961.76 574.74 1042.49 481.45 420.8 926.39 1134.46 2690.76 2585.95 984.56 1268.87 2558.63 1571.3 896.32 +V52 2325.89 1572.13 1488.2 1298.49 1823.74 2252.49 1456.85 2073.13 1786.37 391.59 1356.24 2938.31 868.29 1287.9 1431.16 730.25 1435.36 788.12 531.96 1115.79 1682.73 2924.65 3710.59 1520.02 1620.38 3734.6 2105.09 1202.01 +V53 352.51 261.05 248.74 309.45 289.73 416.53 266.85 428.71 321.69 70.28 236.94 537.25 193.5 326 319.28 189.21 300.36 130.33 152.84 203.76 442.22 511.73 516.04 437.43 331.36 880.17 434.44 225.04 +V54 216.14 119.32 400.57 336.36 56.47 89.37 155.36 49.48 177.88 130.48 97.22 114.95 135.48 117.64 76.58 160.44 117.05 29.18 83.99 83.8 18.56 195.87 181.22 21.21 196.54 152.66 116.73 74.64 +V55 3354.74 1889.02 3463.96 2595.51 1095.04 1188.43 1840.09 983.93 2051.34 989.95 1188.04 1824.94 1599.03 1844.36 1384.25 1654.65 1582.54 256.02 1244.41 1674.07 559.55 2535.71 2199.75 710.19 2034.19 3209.59 1770.93 909.24 +V56 689.37 323.77 632.5 615.72 142.49 199.66 291.67 166.84 382.75 226.87 180.91 296.75 246.47 305.63 207.47 338.53 262.63 61.25 203.85 288.31 71.53 584.03 353.14 107.89 389.42 519.26 314.68 183.74 +V57 6414.27 4067.65 4605.44 4227.56 3397.35 4016.57 3910.51 3544.13 4272.94 943.77 3394.68 4289.36 3906.95 4409.8 3951.68 4184.76 4022.87 363.34 3950.15 6095.62 3268.86 5116.94 4149.28 5007.15 4429.98 9674.53 5211.56 1994.81 +V58 6266.36 3952.06 4638.28 5920.74 2062.48 2497.54 4169.02 3215.66 4090.27 1503.58 1974.3 2964.15 3022.96 3735.08 2495.87 3708.52 2983.48 685.38 2577.02 5480.39 1887.75 9838.32 2801.7 2511.25 3945.65 6713.94 4469.5 2726.1 +V59 2080.03 874.53 1695.81 1374.04 1394.91 765.07 1135.71 1004.63 1290.59 440.83 1819.62 1091.7 968.82 881.98 936.64 1111.28 1135.01 347.02 942.22 791.46 436.14 1258.84 1124.31 632.85 885.87 2287.78 1044.93 565.34 +V60 4019.07 2882.43 2920.72 2773.03 2331.94 2583.34 2238.8 2947.54 2837.11 547.71 2278.86 2457.49 2253.88 2589.84 2426.05 2732.92 2456.51 183.15 2860.57 3738.87 2620.94 4076.27 2372.31 3116.74 2923.46 6850.52 3569.96 1439.67 +V61 30316.42 25360.24 24223.65 23154.87 18133.87 22307.77 23062.85 23590.21 23768.74 3389.17 15197.09 21838.91 19822.74 25644.43 20471.11 22104.93 20846.53 3426.18 25946.74 31472.14 23168.38 33432.4 20220.09 23962.44 22402.54 56752.04 29669.59 11842.22 +V62 62402.87 35366.22 42321.8 31258.28 45712.77 37769.84 37522.2 43278.66 41954.08 9480.21 43459.12 35791.78 33007.49 37555.87 30867.86 39466.54 36691.44 4528.68 42271.25 38040.41 33835.98 31348.66 36815.48 42979.08 35687.18 100505.6 45185.45 22694.47 +V63 5345.95 2464.9 3091.4 2805.39 3415.52 2539.93 3108.55 3202.34 3246.75 909.16 3585.55 2965.11 2611.3 2390.26 2831.05 3065.67 2908.16 412.12 2899.18 2910.75 2276.04 2502.17 3031.16 2991.49 2581.47 8752.35 3493.07 2141.79 +V64 5292.96 4008.72 4012.44 3886.04 3647.09 4488.47 3153.78 4115.83 4075.66 624.71 3329.53 3032.83 2312.02 3514.26 3087.36 3808.11 3180.69 512.3 5079.61 5010.13 3983.6 3431.06 4013.46 4214.52 3237.19 10957.47 4990.88 2498.27 +V65 25444.34 13558.49 16493.22 12642.32 18907.52 18009.06 14231.51 18620.1 17238.32 4086.37 19094.31 14715.79 12230.13 14978.12 11587.05 17803.28 15068.11 2966.33 20658.33 15965.36 15559.69 10040.91 15401.79 19709.15 13056.25 46168.25 19569.97 11265.33 +V66 13899.53 8944.63 10159.96 11074.5 10592.6 8214.08 10176.94 9842.82 10363.13 1692.08 10224.02 8347.23 9132.47 9222.4 7107.34 10746.74 9130.03 1305.62 12811.74 12563.23 8865.71 12920.36 8100.75 11165.92 10182.24 27260.68 12983.83 6047.39 +V67 23512.63 13724.09 15652.33 13277.44 14818.7 9962.66 15178.26 16531.8 15332.24 3861.68 16746.25 14037.72 17098.1 13131.82 11032.59 15239.5 14547.66 2299.46 12753.96 18982.74 12462.65 21193.96 9974.96 15787.58 16677.68 36925.01 18094.82 8438.68 +V68 821.85 585.07 674.53 840.2 718.19 574.86 651.98 653.13 689.98 98.6 706.95 560.39 503.06 591.94 388.25 697.71 574.72 120.85 1200.77 898.01 617.64 580.33 598.67 661.06 518.03 1915.59 873.76 476.91 +V69 5665.21 3978.35 4089.75 6323.17 5026.21 3349.48 4344.41 4708.65 4685.65 964.71 5080.09 3035.72 3840.01 3568.7 2368.7 4560.78 3742.33 988.46 7508.69 6081.63 3875.94 4956.96 3618.8 4029.91 4201.27 11407.44 5710.08 2652.15 +V70 22886.12 12566.47 13528.14 14763.84 14470.03 10368.79 13211.34 16198.81 14749.19 3707.08 18464.21 12968.59 14976.46 11752.16 9218.14 15570.81 13825.06 3229.53 15895.44 17072.56 12786.98 16896.42 8923.53 16188.56 14585.89 34726.7 17134.51 7604.44 +V71 11423.67 7260.23 8970.27 7850.77 7000.97 7015.29 6913.61 7283.92 7964.84 1553.03 6763.98 8126.89 6577.43 7492.23 8528.18 8010.27 7583.16 782.55 8054.41 8188.51 6660.61 8871.33 7225.66 8376.3 7110.27 20520.68 9375.97 4562.98 +V72 15637.27 10686.69 12884.29 7658.22 11941.71 16143.55 12067.08 13664.64 12585.43 2720.13 8240.99 12552.56 6342.23 11346.03 11072.08 8526.86 9680.13 2345.48 10280.75 9082.97 11453.12 8256.47 14972.26 12789.22 8817.57 34220.75 13734.14 8577.94 +V73 135.27 87.47 100.36 112.7 84.8 79.57 89.6 87.62 97.17 18.55 90.81 70.86 83.71 83.59 71.35 94.23 82.42 9.69 140.04 119.03 80.9 117.49 74.17 97.09 93.08 275.42 124.65 64.66 +V74 14754.19 9880.17 10295.05 8265.04 9657.1 14237.48 10965.97 14015.39 11508.8 2467.86 7500.76 12549.98 5789.86 8750.01 8146.62 7193.56 8321.8 2299.97 8467.08 8028.29 8820.04 6808.25 13820.28 11066.16 7654.05 27388.57 11506.59 6795.54 +V75 5044.67 4123.9 3380.68 3943.65 4810.8 3194.4 5781.71 4796.76 4384.57 880.42 3954.38 4991.5 3876.63 4266.2 4298.95 3072.12 4076.63 630.29 4034.2 4324.63 2909.16 3440.2 4620.79 2600.36 4008.27 5293.72 3903.92 890.76 +V76 27989.88 27031.11 27818.36 26202.32 31496.87 31500.9 29211.25 33237.97 29311.08 2502.57 30111.45 28276.59 27232.92 31880.59 26296.06 28183.17 28663.46 2023.76 31918.73 34538.92 29086.99 27914.54 27498.1 39484.04 33320.98 43351.62 33389.24 5645.12 +V77 6033.59 5638.84 5757.39 5676.17 6856.34 6971.39 5687.13 8714.58 6416.93 1072.27 6824.08 6173.48 5757.01 6766.91 5862.96 6737.69 6353.69 483.48 7038.06 7289.71 6550.93 6474.58 6456.35 8406.92 5959.81 9192.51 7171.11 1101.49 +V78 7531.71 9766.33 7917.05 7066.02 12533.47 8597.12 10418.97 11146.66 9372.17 1920.47 9102.5 9784.31 7945.3 9496.2 8096.37 6447.88 8478.76 1239.67 6847.86 10800.66 8877.01 9466.25 7931.75 8909.79 9603.09 8932.52 8921.12 1169.52 +V79 3370.7 4671.45 3614.71 3446.79 5356.27 4618.38 4037.77 7068.76 4523.1 1239.4 4406.1 4263.32 3463.28 4600.41 3959.76 3752.84 4074.29 427.18 3553.62 5079.92 4848.24 4350.41 4002.13 5329.31 3919.06 4823.83 4488.31 627.07 +V80 2868.85 5047.99 6140.96 3806.85 7216.89 5022.46 5256.06 7169.93 5316.25 1519.33 6397.22 6182.99 4471.19 4996.46 5044.24 3879.66 5161.96 972.74 4630.92 5302.12 5241.23 6062.4 4313.43 6004.09 4748.38 3915.5 5027.26 767.88 +V81 1281.17 2380.08 2630.57 1937.7 2948.17 2691.06 2049.1 4141.95 2507.47 842.56 2926.15 2622.13 1919.88 2621.26 2455.64 2368.02 2485.52 336.42 2351.46 2619.77 3160.6 2527.13 2012.54 3985.57 2068.56 2219.55 2618.15 662.38 +V82 2146.74 3932.04 7069.54 3549.09 7827.98 6430.48 4776.82 6935.8 5333.56 2022.04 6914.18 5835.39 4308.74 5546.11 4125.61 3316.45 5007.75 1321.86 5274.98 6382.23 4334.58 7275.77 4046.02 6099.75 5484.72 2524.77 5177.85 1504.1 +V83 1907.68 3559.05 5257.18 3193.54 6000.27 5750.61 3999.64 7589.13 4657.14 1824.28 6055.9 5410.81 3697.01 5334.87 4176.24 3397.35 4678.7 1069.69 5656.93 5396.48 4561.55 5252.67 3739.43 5920.38 4914.96 2876.17 4789.82 1031.33 +V84 1563.87 3853.97 8432.18 3998.8 8762.48 7300.71 5457.68 7690.55 5882.53 2579.31 7568.64 6990.02 4975.96 6365.79 4614.85 3298.13 5635.56 1615.25 6009.26 8596.72 5386.72 9056.14 3895.21 8087.23 6738.97 2065.6 6229.48 2415.73 +V85 3302.09 7922.23 14839.62 8695.1 14895.67 16252.17 9849.17 16439.95 11524.5 4784.86 15467.28 13457.69 9570.14 14436.95 11137.53 7751.42 11970.17 2992.62 14886.11 19383.47 13977.26 15573.95 8041.42 19837.99 14672.95 5478.44 13981.45 4998.55 +V86 0 296.05 366.33 1166.3 169.79 130.5 910.02 161.2 400.02 414.37 118.7 194.08 229.06 300.62 98.91 317.51 209.81 90.62 117.23 575.01 90.37 827.4 371.26 112.71 288.72 0 297.84 283.19 +V87 4401.04 2934.89 3681.01 6152.67 2603.61 2332.57 5978.46 1842.04 3740.79 1638.59 2181.44 2571.46 2344.9 3162.33 1741.34 4144.96 2691.07 852.26 2984.39 3569.27 1848.09 3728.68 4482.7 3372.3 3045.7 5581.86 3576.62 1103.72 +V88 4420.06 1904.34 2745.79 4347.63 2944.8 1893.85 4677.78 1650.45 3073.09 1248.88 2285.76 1717.32 1691.2 1981.19 1265.7 3952.21 2148.9 946 1923.49 2689.61 1150.01 2382.48 3544.16 2397.09 2072.07 4295.69 2556.82 977.41 +V89 2025.01 1309.69 1534.02 1724.7 997.37 1112.13 1504.17 1062.01 1408.64 356.9 1060.36 1233.53 1053.84 1231.26 1037.81 1653.63 1211.74 234.19 1373.49 870.32 1061.5 971.79 1322.44 1953.7 1160.28 3600.17 1539.21 897.22 +V90 7867.46 4397.17 5500.73 6128.55 4480.76 4361.83 6223.22 3656.82 5327.07 1374.86 5401.66 4479.81 3795.24 4545.42 3955.3 6335.78 4752.2 958.89 5860.18 3637.58 3601.16 3030.4 5119.26 7934.1 3942.76 12438.43 5695.48 3154 +V91 15420.21 6374.06 8675.69 9187.97 9400.76 7612.14 11663.12 6741.51 9384.43 2960.52 10596.69 7079.71 6181.61 7096.04 6025.42 12463.24 8240.45 2652.77 9551.32 5992.62 5097.49 4421.58 9300.09 12959.02 6316.93 21213.88 9356.62 5563.45 +V92 6810.22 3429.58 4299.33 6127.84 4075.32 3344.66 5125.32 3028.74 4530.12 1375.11 4175.7 3140.88 3084.36 3031.18 2636.89 6669.27 3789.71 1500.91 3604.49 2605.3 2145.3 2993.63 4287.71 5353.81 3153.44 9144.78 4161.06 2250.33 +V93 0 354.36 350.3 379.16 287.08 292.88 444.09 303.69 301.44 132.41 207.65 392.54 274.35 267.83 257.3 382.95 297.1 74.08 238.86 145.6 268.33 189 452.98 351.16 243.21 1063.47 369.08 296.38 +V94 2856.36 2456.4 2540.2 3367.98 2179.99 1475.83 2299.58 2163.25 2417.45 552.18 1869.28 2155.91 1924.65 1709.17 1633.53 3130.02 2070.43 550.12 1852.97 935.78 2010.54 1819.26 2184.75 2451.9 1909.68 5332.67 2312.19 1296.17 +V95 24091.97 15443.29 15942.72 17970 12145.72 10870.02 14682.71 15930 15884.55 4008.56 13247.25 15454.42 13712.53 11623.37 9969.61 19752.29 13959.91 3398.12 9621.47 5782.84 11913.08 12015.65 12566.22 17116.78 13006.74 34928.36 14618.89 8804.83 +V96 60793.4 33382.53 33715.73 32764.43 24127.78 25432.17 29776.84 35260.09 34406.62 11394.51 28888.49 34024.7 31279.19 25136.41 21490.99 42646.24 30577.67 7389.9 16961.84 12299.55 24074.2 26183.98 25604.38 38438.79 28979.32 78126.8 31333.61 20446.85 +V97 17570.51 9240.64 9721.88 10284.94 6788.15 7088.16 9220.42 9323.72 9904.8 3334.56 7668.14 9513.44 7976.91 7000.53 6579.27 12453.69 8532 2170.52 4915.75 3693.18 6545.25 7271.72 7741.63 11272.66 8234.6 21625.05 8912.48 5612.76 +V98 0 149.15 135.65 144.37 124.09 117.76 110.31 127.3 113.58 47.7 128.4 127.61 126.27 136.02 105.67 160.41 130.73 17.73 118.88 107.55 121.9 120.41 133.07 129.53 119.35 0 106.34 43.64 +V99 314.71 233.89 257.32 290.71 136.54 131.91 212.71 151.12 216.11 70.67 144.84 161.98 199.1 177.26 109.83 276.15 178.19 56.71 136.06 92.56 133.57 240.27 196.46 181.17 175.41 0 144.44 73.62 +V100 1063.57 888.31 802.4 899.21 524.53 465.73 990.79 508.3 767.86 235.42 425.38 531.11 631.35 755.31 380.35 795.06 586.43 170.6 399.27 323.3 426.24 771.87 698.1 557.47 570.57 1826.56 696.67 480.86 +V101 2587.9 1673.54 1654.1 1984.41 1404.72 1474.72 2767.56 1490.35 1879.66 525.82 725.28 1591.13 1128.98 1962.5 1210.7 1571.45 1365.01 433.48 897.88 885.71 1024.88 1264.44 2472.8 1515.25 1349.88 4852 1782.85 1340.9 +V102 3565.72 1975.42 2013.22 2140.6 1668.46 2455.07 3602.33 2361.46 2472.79 726.93 769.9 2420.79 1099.54 1908.1 1814.65 1765.41 1629.73 596.03 990.98 1185.95 1435.53 1123.37 4179.54 2564.22 1660.72 6490.51 2453.85 1944.54 +V103 0 48.29 0 0 0 0 70.19 0 14.81 28.04 0 0 0 0 0 0 0 0 0 123.9 0 0 0 0 0 5.93 16.23 43.56 +V104 0 123.49 65.51 80.81 98.52 68.99 195.36 83.25 89.49 55.5 97.05 128.29 99.81 113.05 120.62 0 93.14 47.16 119.68 367.75 78.17 59.42 81.7 79.25 121.63 0 113.45 109.53 +V105 0 85.23 0 0 0 0 168.05 0 31.66 62.66 0 0 0 0 0 0 0 0 0 233.87 0 0 0 0 0 0 29.23 82.69 +V106 0 183.94 76.89 113 125.6 0 370.73 0 108.77 125.97 150.38 121.92 135.84 186.45 103.87 0 116.41 63.52 154.21 496.94 107.83 94.48 106.85 0 141.87 0 137.77 156.29 +V107 423.7 0 164.21 507.86 578.77 522.85 0 346.55 317.99 234.19 0 299.3 343.68 661.93 499.17 759.59 427.28 274.44 363.88 432.47 486.04 383.04 381.67 0 497.37 0 318.06 202.18 +V108 4.6 2.76 2.42 3.59 3.85 3.27 5.32 4.47 3.79 0.98 4.96 3.56 3.84 4.62 5.72 5.58 4.72 0.89 3.99 4.66 4.99 4.79 4.25 2.82 3.33 4.09 4.11 0.74 +V109 1.46 1.14 1.27 1.13 1.52 1.57 1.35 1.14 1.32 0.18 1.18 1.28 1.13 1.2 1.14 1.63 1.26 0.19 1.32 0.9 1.14 1.6 1.07 1.42 1.87 0.91 1.28 0.34 +V110 0.52 0.55 0 0.49 0 0 0 0.51 0.26 0.28 0.35 0.38 0.56 0.44 0 0.55 0.38 0.2 0.32 0.37 0.35 0.52 0 0.44 0.44 0.28 0.34 0.16 +V111 0.4 0 0 0.43 0.32 0 0 0.39 0.19 0.21 0.3 0.37 0 0.4 0 0.42 0.25 0.2 0 0.36 0.25 0.47 0 0.39 0.38 0 0.23 0.2 +V112 0.76 0.49 0.43 0.64 0.49 0.48 0.23 0.71 0.53 0.17 0.47 0.52 0.59 0.62 0.38 0.65 0.54 0.1 0.32 0.49 0.38 0.55 0.49 0.6 0.64 0.47 0.49 0.11 +V113 0.61 0.58 0.53 0.53 0.45 0.31 0.15 0.51 0.46 0.15 0.36 0.51 0.44 0.45 0.48 0.66 0.48 0.1 0.33 0.53 0.37 0.61 0.36 0.51 0.67 0.33 0.46 0.13 +V114 0 0 0 0 0.09 0 0 0.12 0.03 0.05 0 0.1 0 0 0 0 0.02 0.04 0 0 0.1 0 0.12 0.11 0 0 0.04 0.06 +V115 0 0 0 0 0 0 0 0.13 0.02 0.04 0 0.11 0 0 0 0 0.02 0.05 0 0 0 0 0.15 0.12 0 0 0.03 0.06 +V116 1.76 1.89 1.43 1.19 1.34 1.64 0 2.33 1.44 0.68 1.16 2.16 0 1.74 2.23 1.12 1.4 0.83 0 1.47 1.37 1.34 2.27 1.83 1.51 1.43 1.4 0.65
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/exa2/sampleMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,29 @@ +sampleMetadata meta1 +S1 A +S2 A +S3 A +S4 A +S5 A +S6 A +S7 A +S8 A +S9 B +S10 B +S11 B +S12 B +S13 B +S14 B +S15 B +S16 C +S17 C +S18 C +S19 C +S20 C +S21 C +S22 C +S23 C +S24 C +S25 BC +S26 AB +S27 BC +S28 AC
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/exa2/variableMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,117 @@ +variableMetadata meta2 +V1 ER +V2 GGG +V3 GGG +V4 GGG +V5 GGG +V6 CE +V7 CE +V8 CE +V9 TG +V10 TG +V11 TG +V12 TG +V13 TG +V14 AM +V15 AM +V16 AM +V17 AM +V18 AM +V19 AM +V20 AM +V21 AM +V22 AM +V23 AM +V24 AM +V25 AM +V26 AM +V27 AM +V28 AM +V29 AM +V30 AM +V31 AM +V32 ER +V33 ER +V34 ER +V35 ER +V36 ER +V37 CER +V38 CER +V39 CER +V40 CER +V41 CER +V42 CER +V43 CER +V44 CER +V45 CER +V46 CER +V47 PP +V48 PP +V49 PP +V50 PP +V51 PP +V52 PP +V53 PP +V54 PP +V55 PP +V56 PP +V57 PP +V58 PP +V59 PP +V60 PP +V61 PP +V62 PP +V63 PP +V64 CC +V65 CC +V66 CC +V67 CC +V68 CC +V69 CC +V70 CC +V71 CC +V72 CC +V73 CC +V74 CC +V75 CC +V76 CC +V77 CC +V78 CC +V79 CC +V80 CC +V81 CC +V82 CC +V83 CC +V84 CC +V85 SM +V86 SM +V87 SM +V88 SM +V89 SM +V90 SM +V91 SM +V92 SM +V93 SM +V94 SM +V95 SM +V96 PI +V97 PI +V98 PI +V99 PI +V100 PI +V101 PI +V102 PI +V103 PI +V104 PI +V105 PI +V106 PI +V107 NG +V108 NG +V109 NG +V110 SO +V111 SO +V112 SO +V113 SO +V114 SO +V115 SO +V116 SO
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/heatmap_runtests.R Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,105 @@ +#!/usr/bin/env Rscript + +## Package +##-------- + +library(RUnit) + +## Constants +##---------- + +testOutDirC <- "output" +argVc <- commandArgs(trailingOnly = FALSE) +scriptPathC <- sub("--file=", "", argVc[grep("--file=", argVc)]) + + +## Functions +##----------- + +## Reading tables (matrix or data frame) +readTableF <- function(fileC, typeC = c("matrix", "dataframe")[1]) { + + file.exists(fileC) || stop(paste0("No output file \"", fileC ,"\".")) + + switch(typeC, + matrix = return(t(as.matrix(read.table(file = fileC, + header = TRUE, + row.names = 1, + sep = "\t", + stringsAsFactors = FALSE)))), + dataframe = return(read.table(file = fileC, + header = TRUE, + row.names = 1, + sep = "\t", + stringsAsFactors = FALSE))) + +} + +## Call wrapper +wrapperCallF <- function(paramLs) { + + ## Set program path + wrapperPathC <- file.path(dirname(scriptPathC), "..", "heatmap_wrapper.R") + + ## Set arguments + argLs <- NULL + for (parC in names(paramLs)) + argLs <- c(argLs, parC, paramLs[[parC]]) + + ## Call + wrapperCallC <- paste(c(wrapperPathC, argLs), collapse = " ") + + if(.Platform$OS.type == "windows") + wrapperCallC <- paste("Rscript", wrapperCallC) + + wrapperCodeN <- system(wrapperCallC) + + if (wrapperCodeN != 0) + stop("Error when running heatmap_wrapper.R.") + + ## Get output + outLs <- list() + if ("dataMatrix_out" %in% names(paramLs)) + outLs[["datMN"]] <- readTableF(paramLs[["dataMatrix_out"]], "matrix") + if ("sampleMetadata_out" %in% names(paramLs)) + outLs[["samDF"]] <- readTableF(paramLs[["sampleMetadata_out"]], "dataframe") + if ("variableMetadata_out" %in% names(paramLs)) + outLs[["varDF"]] <- readTableF(paramLs[["variableMetadata_out"]], "dataframe") + if("information" %in% names(paramLs)) + outLs[["infVc"]] <- readLines(paramLs[["information"]]) + + return(outLs) +} + +## Setting default parameters +defaultArgF <- function(testInDirC) { + + defaultArgLs <- list() + if(file.exists(file.path(dirname(scriptPathC), testInDirC, "dataMatrix.tsv"))) + defaultArgLs[["dataMatrix_in"]] <- file.path(dirname(scriptPathC), testInDirC, "dataMatrix.tsv") + if(file.exists(file.path(dirname(scriptPathC), testInDirC, "sampleMetadata.tsv"))) + defaultArgLs[["sampleMetadata_in"]] <- file.path(dirname(scriptPathC), testInDirC, "sampleMetadata.tsv") + if(file.exists(file.path(dirname(scriptPathC), testInDirC, "variableMetadata.tsv"))) + defaultArgLs[["variableMetadata_in"]] <- file.path(dirname(scriptPathC), testInDirC, "variableMetadata.tsv") + + defaultArgLs[["dataMatrix_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "dataMatrix.tsv") + defaultArgLs[["sampleMetadata_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "sampleMetadata.tsv") + defaultArgLs[["variableMetadata_out"]] <- file.path(dirname(scriptPathC), testOutDirC, "variableMetadata.tsv") + defaultArgLs[["figure"]] <- file.path(dirname(scriptPathC), testOutDirC, "figure.pdf") + defaultArgLs[["information"]] <- file.path(dirname(scriptPathC), testOutDirC, "information.txt") + + defaultArgLs + +} + +## Main +##----- + +## Create output folder +file.exists(testOutDirC) || dir.create(testOutDirC) + +## Run tests +test.suite <- defineTestSuite('tests', dirname(scriptPathC), testFileRegexp = paste0('^.*_tests\\.R$'), testFuncRegexp = '^.*$') +isValidTestSuite(test.suite) +test.results <- runTestSuite(test.suite) +print(test.results)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/heatmap_tests.R Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,57 @@ +test_input_cut4 <- function() { + + testDirC <- "input" + argLs <- list(disC = "1-cor", + cutSamN = "4", + cutVarN = "3", + corMetC = "spearman", + aggMetC = "ward", + colC = "blueOrangeRed", + scaL = "TRUE", + cexN = "0.8") + + argLs <- c(defaultArgF(testDirC), argLs) + outLs <- wrapperCallF(argLs) + + checkEqualsNumeric(outLs[['samDF']][13, 'heat_clust'], 4) + +} + +test_exa1_cut3 <- function() { + + testDirC <- "exa1" + argLs <- list(disC = "1-cor", + cutSamN = "3", + cutVarN = "4", + corMetC = "spearman", + aggMetC = "ward", + colC = "blueOrangeRed", + scaL = "TRUE", + cexN = "1") + + argLs <- c(defaultArgF(testDirC), argLs) + outLs <- wrapperCallF(argLs) + + checkEqualsNumeric(outLs[['varDF']]['V24', 'heat_clust'], 4) + +} + +test_exa2_cut4 <- function() { + + testDirC <- "exa2" + argLs <- list(disC = "1-cor", + cutSamN = "1", + cutVarN = "1", + corMetC = "spearman", + aggMetC = "ward", + colC = "blueOrangeRed", + scaL = "TRUE", + cexN = "1") + + argLs <- c(defaultArgF(testDirC), argLs) + outLs <- wrapperCallF(argLs) + + checkEquals(outLs[['varDF']]['V31', 'meta2'], 'AM') + +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/input/dataMatrix.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +dataMatrix HU_017 HU_028 HU_034 HU_051 HU_060 HU_078 HU_091 HU_093 HU_099 HU_110 HU_130 HU_134 HU_138 HU_149 HU_152 HU_175 HU_178 HU_185 HU_204 HU_208 +HMDB03193 76043 412165 44943 27242 436566 173175 242549 57066 559869 3732 339188 471368 262271 127285 451270 212500 79673 NA 891129 43907 +HMDB01101 30689 6877586 52217 3158 10789748 229568 4763576 3878773 976436 831937 608298 1605075 72021 442510 1107705 1464339 31250 2724553 72900 32742 +HMDB10348 47259 544877 60885 34582 529874 168264 176500 76457 610110 16262 279156 524468 451573 591487 433529 161069 214392 13781 1580343 39315 +HMDB59717 357351 1030464 301983 67604 306862 1028110 1530493 270027 1378535 289677 808334 1132813 871209 895435 715190 1563158 784738 146195 994336 239030 +HMDB00822 483755 579287 1132413 157113 1577570 1469735 1085454 477909 814755 245417 610681 763706 2406336 827531 992508 569605 355321 150259 1334200 271010 +HMDB13189 2644620 727587 1661412 619181 136278 2755434 593863 837865 3526136 2003278 1608814 3446611 1941527 113937 3132404 2893445 2092753 1034666 1517319 841661 +HMDB00299 250551 1046138 456162 159386 1013302 808657 614370 250403 768004 242085 504108 1014041 1362408 1057660 1110050 566050 411886 142233 1992420 284775 +HMDB00191 560002 771533 575790 392284 888498 785428 645785 591569 960658 910201 639437 1092885 1409045 2292023 1246459 1945577 710519 773384 1061418 622898 +HMDB00518 34236 58249 85944 NA 342102 129886 175800 13154 230242 NA 440223 315368 10657 419508 48673 28361 514579 23108 867108 73831 +HMDB00715 1252089 2547452 905408 371059 4983588 5140022 2658555 814523 2558923 859466 4184204 3865723 3236644 2615560 3820724 3577833 2295288 625924 7517724 1341900 +HMDB01032 2569205 26023086 1604999 430453 8103558 26222916 257139 675754 59906109 263055 31151730 18648127 14989438 1554658 20249262 5588731 871010 15920 9120781 44276 +HMDB00208 747080 13420742 595872 1172376 7172632 3143654 4059767 1433702 5593888 5402629 2477288 3346077 4230072 7621236 8960828 10335722 7037373 1574738 3359238 2540044 +HMDB04824 374028 1144386 539206 178517 1046190 959381 605191 310260 1253319 477259 477995 825691 1157093 1089284 1411802 1020206 782673 346761 1824553 387811 +HMDB00512 53304 319783 280560 85009 1333877 556003 590779 209285 342532 198512 569970 525240 246282 1140422 542345 1171008 827723 222953 438839 85554 +HMDB00251 368600 616555 94936 622468 180988 293988 352855 767894 268331 167246 310918 1248919 577184 10985 335711 403815 80614 63393 454489 616061
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/input/sampleMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,21 @@ +sampleMetadata injectionOrder mode age bmi gender +HU_017 2 pos 41 23.03 M +HU_028 7 pos 41 23.92 F +HU_034 9 pos 52 23.37 M +HU_051 20 pos 24 23.23 F +HU_060 24 pos 55 28.72 F +HU_078 34 pos 46 25.18 M +HU_091 42 pos 61 26.12 M +HU_093 43 pos 53 21.71 M +HU_099 46 pos 23 21.3 M +HU_110 53 pos 50 20.9 F +HU_130 63 pos 33 26.06 M +HU_134 67 pos 48 22.89 M +HU_138 68 pos 42 21.88 M +HU_149 72 pos 35 19.49 F +HU_152 75 pos 26 17.58 F +HU_175 87 pos 35 21.26 F +HU_178 88 pos 60 32.87 F +HU_185 95 pos 42 21.09 F +HU_204 104 pos 31 29.06 M +HU_208 106 pos 27 18.61 F
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/input/variableMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +variableMetadata name +HMDB03193 Testosterone_glucuronide +HMDB01101 p-Anisic_acid +HMDB10348 Dehydroepiandrosterone_3-glucuronide +HMDB59717 Glu-Val +HMDB00822 p-Hydroxymandelic_acid +HMDB13189 3-Indole_carboxylic_acid_glucuronide +HMDB00299 Xanthosine +HMDB00191 L-Aspartic_acid +HMDB00518 Chenodeoxycholic_acid +HMDB00715 Kynurenic_acid +HMDB01032 Dehydroepiandrosterone_sulfate +HMDB00208 Oxoglutaric_acid +HMDB04824 N2,N2-Dimethylguanosine +HMDB00512 N-Acetyl-L-phenylalanine +HMDB00251 Taurine
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/output/dataMatrix.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +dataMatrix HU_051 HU_208 HU_178 HU_130 HU_175 HU_099 HU_152 HU_204 HU_017 HU_138 HU_034 HU_078 HU_060 HU_149 HU_028 HU_093 HU_134 HU_091 HU_110 HU_185 +HMDB13189 619181 841661 2092753 1608814 2893445 3526136 3132404 1517319 2644620 1941527 1661412 2755434 136278 113937 727587 837865 3446611 593863 2003278 1034666 +HMDB00251 622468 616061 80614 310918 403815 268331 335711 454489 368600 577184 94936 293988 180988 10985 616555 767894 1248919 352855 167246 63393 +HMDB01101 3158 32742 31250 608298 1464339 976436 1107705 72900 30689 72021 52217 229568 10789748 442510 6877586 3878773 1605075 4763576 831937 2724553 +HMDB00191 392284 622898 710519 639437 1945577 960658 1246459 1061418 560002 1409045 575790 785428 888498 2292023 771533 591569 1092885 645785 910201 773384 +HMDB00208 1172376 2540044 7037373 2477288 10335722 5593888 8960828 3359238 747080 4230072 595872 3143654 7172632 7621236 13420742 1433702 3346077 4059767 5402629 1574738 +HMDB59717 67604 239030 784738 808334 1563158 1378535 715190 994336 357351 871209 301983 1028110 306862 895435 1030464 270027 1132813 1530493 289677 146195 +HMDB00512 85009 85554 827723 569970 1171008 342532 542345 438839 53304 246282 280560 556003 1333877 1140422 319783 209285 525240 590779 198512 222953 +HMDB00518 NA 73831 514579 440223 28361 230242 48673 867108 34236 10657 85944 129886 342102 419508 58249 13154 315368 175800 NA 23108 +HMDB00822 157113 271010 355321 610681 569605 814755 992508 1334200 483755 2406336 1132413 1469735 1577570 827531 579287 477909 763706 1085454 245417 150259 +HMDB00715 371059 1341900 2295288 4184204 3577833 2558923 3820724 7517724 1252089 3236644 905408 5140022 4983588 2615560 2547452 814523 3865723 2658555 859466 625924 +HMDB01032 430453 44276 871010 31151730 5588731 59906109 20249262 9120781 2569205 14989438 1604999 26222916 8103558 1554658 26023086 675754 18648127 257139 263055 15920 +HMDB00299 159386 284775 411886 504108 566050 768004 1110050 1992420 250551 1362408 456162 808657 1013302 1057660 1046138 250403 1014041 614370 242085 142233 +HMDB04824 178517 387811 782673 477995 1020206 1253319 1411802 1824553 374028 1157093 539206 959381 1046190 1089284 1144386 310260 825691 605191 477259 346761 +HMDB03193 27242 43907 79673 339188 212500 559869 451270 891129 76043 262271 44943 173175 436566 127285 412165 57066 471368 242549 3732 NA +HMDB10348 34582 39315 214392 279156 161069 610110 433529 1580343 47259 451573 60885 168264 529874 591487 544877 76457 524468 176500 16262 13781
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/output/essai.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,21 @@ +sampleMetadata injectionOrder mode age bmi gender heat_clust +HU_017 2 pos 41 23.03 M 1 +HU_034 9 pos 52 23.37 M 1 +HU_204 104 pos 31 29.06 M 2 +HU_134 67 pos 48 22.89 M 2 +HU_099 46 pos 23 21.3 M 2 +HU_078 34 pos 46 25.18 M 2 +HU_130 63 pos 33 26.06 M 2 +HU_028 7 pos 41 23.92 F 2 +HU_138 68 pos 42 21.88 M 2 +HU_152 75 pos 26 17.58 F 2 +HU_051 20 pos 24 23.23 F 3 +HU_208 106 pos 27 18.61 F 3 +HU_110 53 pos 50 20.9 F 3 +HU_178 88 pos 60 32.87 F 3 +HU_149 72 pos 35 19.49 F 3 +HU_175 87 pos 35 21.26 F 3 +HU_060 24 pos 55 28.72 F 4 +HU_091 42 pos 61 26.12 M 4 +HU_093 43 pos 53 21.71 M 4 +HU_185 95 pos 42 21.09 F 4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/output/information.txt Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,24 @@ + +Start of the 'Heatmap' module: Tue 02 Aug 2016 11:48:22 AM + +Arguments used: + + value +dataMatrix_in "tests/input/dataMatrix.tsv" +sampleMetadata_in "tests/input/sampleMetadata.tsv" +variableMetadata_in "tests/input/variableMetadata.tsv" +dataMatrix_out "tests/output/dataMatrix.tsv" +sampleMetadata_out "tests/output/sampleMetadata.tsv" +variableMetadata_out "tests/output/variableMetadata.tsv" +figure "tests/output/figure.pdf" +information "tests/output/information.txt" +disC "1-cor" +cutSamN "4" +cutVarN "3" +corMetC "spearman" +aggMetC "ward" +colC "blueOrangeRed" +scaL "TRUE" +cexN "0.8" + +End of the 'Heatmap' Galaxy module call: Tue 02 Aug 2016 11:48:22 AM
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/output/sampleMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,21 @@ +sampleMetadata injectionOrder mode age bmi gender heat_clust +HU_051 20 pos 24 23.23 F 3 +HU_208 106 pos 27 18.61 F 3 +HU_178 88 pos 60 32.87 F 1 +HU_130 63 pos 33 26.06 M 1 +HU_175 87 pos 35 21.26 F 1 +HU_099 46 pos 23 21.3 M 1 +HU_152 75 pos 26 17.58 F 1 +HU_204 104 pos 31 29.06 M 1 +HU_017 2 pos 41 23.03 M 1 +HU_138 68 pos 42 21.88 M 1 +HU_034 9 pos 52 23.37 M 1 +HU_078 34 pos 46 25.18 M 1 +HU_060 24 pos 55 28.72 F 4 +HU_149 72 pos 35 19.49 F 4 +HU_028 7 pos 41 23.92 F 2 +HU_093 43 pos 53 21.71 M 2 +HU_134 67 pos 48 22.89 M 2 +HU_091 42 pos 61 26.12 M 2 +HU_110 53 pos 50 20.9 F 2 +HU_185 95 pos 42 21.09 F 2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/output/variableMetadata.tsv Tue Aug 02 06:26:41 2016 -0400 @@ -0,0 +1,16 @@ +variableMetadata name heat_clust +HMDB13189 3-Indole_carboxylic_acid_glucuronide 3 +HMDB00251 Taurine 3 +HMDB01101 p-Anisic_acid 2 +HMDB00191 L-Aspartic_acid 2 +HMDB00208 Oxoglutaric_acid 2 +HMDB59717 Glu-Val 2 +HMDB00512 N-Acetyl-L-phenylalanine 2 +HMDB00518 Chenodeoxycholic_acid 1 +HMDB00822 p-Hydroxymandelic_acid 1 +HMDB00715 Kynurenic_acid 1 +HMDB01032 Dehydroepiandrosterone_sulfate 1 +HMDB00299 Xanthosine 1 +HMDB04824 N2,N2-Dimethylguanosine 1 +HMDB03193 Testosterone_glucuronide 1 +HMDB10348 Dehydroepiandrosterone_3-glucuronide 1