Mercurial > repos > eschen42 > w4mclassfilter
changeset 13:b24ca78a425b draft
planemo upload for repository https://github.com/HegemanLab/w4mclassfilter_galaxy_wrapper/tree/master commit 32cf96ed6c39a93eb9c6cf00494b128bd3c3febe
author | eschen42 |
---|---|
date | Mon, 03 Sep 2018 22:28:03 -0400 |
parents | 518cc205f289 |
children | 1d36ecf93e67 |
files | test-data/rangefilter_dataMatrix.tsv w4mclassfilter.xml w4mclassfilter_wrapper.R |
diffstat | 3 files changed, 574 insertions(+), 618 deletions(-) [+] |
line wrap: on
line diff
--- a/test-data/rangefilter_dataMatrix.tsv Fri Mar 02 08:29:53 2018 -0500 +++ b/test-data/rangefilter_dataMatrix.tsv Mon Sep 03 22:28:03 2018 -0400 @@ -1,6 +1,6 @@ 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_208 -HMDB00191 560002 771533 575790 392284 888498 785428 645785 591569 960658 910201 639437 1092885 1409045 2292023 1246459 1945577 710519 773384 622898 -HMDB00208 747080 13420742 595872 1172376 7172632 3143654 4059767 1433702 5593888 5402629 2477288 3346077 4230072 7621236 8960828 10335722 7037373 1574738 2540044 -HMDB01032 2569205 26023086 1604999 430453 8103558 26222916 257139 675754 59906109 263055 31151730 18648127 14989438 1554658 20249262 5588731 871010 15920 44276 -HMDB01101.1 6877586 52217 3158 10789748 229568 4763576 3878773 976436 831937 608298 1605075 72021 442510 1107705 1464339 31250 2724553 72900 30689 -HMDB13189 2644620 727587 1661412 619181 136278 2755434 593863 837865 3526136 2003278 1608814 3446611 1941527 113937 3132404 2893445 2092753 1034666 841661 +HMDB00191 19.0950724540801 19.5573683394871 19.1351832076319 18.581538968171 19.7610090032025 19.5831195045026 19.3006944055142 19.1741869272827 19.8736633887651 19.7958256457729 19.2864427002132 20.0597101691826 20.4262862563728 21.1281900906526 20.2494039981067 20.8917666482316 19.438513703552 19.5608253922588 19.2486364146654 +HMDB00208 19.5109032146715 23.6779611010349 19.1846429313023 20.1610039089984 22.7740711828923 21.5840110083096 21.9529654992985 20.451313755289 22.4154199380002 22.3652301844309 21.2403301698498 21.6740392144135 22.0122507889717 22.8615935600174 23.0952006159265 23.3011358356974 22.746605551146 20.5866803867983 21.2764220576728 +HMDB01032 21.2928905785523 24.6332887213057 20.6141409677961 18.7154961966847 22.9501240553341 24.6443247870262 17.9721889132336 19.3661386209868 25.8361997953493 18.0050049466979 24.8928089492302 24.1525273990616 23.8374429574498 20.5681658146509 24.2713659930314 22.4140893053724 19.7323297568288 13.958552715431 15.4342372710269 +HMDB01101.1 22.7134708439962 15.6722319530667 11.6247954558602 23.3631578345615 17.8085620299575 22.183613575742 21.8871689158671 19.8971659609365 19.6661147561338 19.214418735272 20.6142092807528 16.1361300108053 18.7553505325418 20.079142288524 20.4818181509538 14.9315685693242 21.3775881248719 16.1536311941017 14.9054340159519 +HMDB13189 21.3346290086766 19.4727602406215 20.6639784491577 19.2400016764968 17.0561931543153 21.3938481405109 19.1797706242895 19.6763582845664 21.7496566885488 20.9339312108399 20.6175661105571 21.7167470481744 20.8887603396637 16.7978767996065 21.5788388647145 21.4643567902489 20.9969706149343 19.9807336965562 19.6828797432404
--- a/w4mclassfilter.xml Fri Mar 02 08:29:53 2018 -0500 +++ b/w4mclassfilter.xml Mon Sep 03 22:28:03 2018 -0400 @@ -1,461 +1,476 @@ -<tool id="w4mclassfilter" name="W4m Data Subset" version="0.98.8"> - <description>Filter W4m data by values or metadata</description> - - <!-- Here is the hyphenation standard that I *try* to apply consistently in my documentation: http://www.sandranoonan.com/dont-let-hyphenation-drive-crazy/ --> - - <requirements> - <!-- <requirement type="package" version="6.2">readline</requirement> --> - <requirement type="package" version="3.4.1">r-base</requirement> - <requirement type="package" version="1.1_4">r-batch</requirement> - <requirement type="package" version="0.98.7">w4mclassfilter</requirement> - </requirements> - - <stdio> - <exit_code range="1:" level="fatal" /> - </stdio> - - - <command detect_errors="aggressive"><![CDATA[ - Rscript $__tool_directory__/w4mclassfilter_wrapper.R - dataMatrix_in '$dataMatrix_in' - sampleMetadata_in '$sampleMetadata_in' - variableMetadata_in '$variableMetadata_in' - sampleclassNames '$sampleclassNames' - inclusive '$inclusive' - wildcards '$wildcards' - classnameColumn '$classnameColumn' - samplenameColumn 'sampleMetadata' - variable_range_filter '$variableRangeFilter' - transformation '$transformation' - dataMatrix_out '$dataMatrix_out' - sampleMetadata_out '$sampleMetadata_out' - variableMetadata_out '$variableMetadata_out' - ]]></command> - - <inputs> - <param name="dataMatrix_in" label="Data matrix file" type="data" format="tabular" help="variable x sample, decimal: '.', missing: NA, mode: numerical, separator: tab" /> - <param name="sampleMetadata_in" label="Sample metadata file" type="data" format="tabular" help="sample x metadata columns, separator: tab" /> - <param name="variableMetadata_in" label="Variable metadata file" type="data" format="tabular" help="variable x metadata columns, separator: tab" /> - <param name="classnameColumn" label="Column that names the sample-class" type="text" value = "class" help="name of the column in sample metadata that has the values to be tested against the 'Names of sample-classes' input parameter - defaults to 'class'"> - <sanitizer> - <valid initial="string.letters"> - <add preset="string.digits"/> - <add value="-" /> <!-- dash, hyphen --> - <add value="." /> <!-- dot, period --> - <add value="_" /> <!-- underscore --> - </valid> - </sanitizer> - </param> - <param name="sampleclassNames" label="Names of sample-classes" type="text" value = "" help="comma-separated names (or regular expressions to match names) of sample-classes to filter in or out; defaults to no names"> - <sanitizer> - <valid initial="string.letters"> - <add preset="string.digits"/> - <add value="{" /> <!-- l-cube, left-curly-bracket --> - <add value="|" /> <!-- pipe --> - <add value="}" /> <!-- r-cube, right-curly-bracket --> - <add value="$" /> <!-- dollar, dollar-sign --> - <add value="(" /> <!-- left-paren --> - <add value=")" /> <!-- right-paren --> - <add value="*" /> <!-- splat, asterisk --> - <add value="+" /> <!-- plus --> - <add value="," /> <!-- comma --> - <add value="." /> <!-- dot, period --> - <add value=":" /> <!-- colon --> - <add value=";" /> <!-- semi, semicolon --> - <add value="?" /> <!-- what, question mark --> - <add value="[" /> <!-- l-squib, left-squre-bracket --> - <add value="\" /> <!-- whack, backslash --> - <add value="]" /> <!-- r-squib, right-squre-bracket --> - <add value="^" /> <!-- hat, caret --> - <add value="_" /> <!-- underscore --> - </valid> - </sanitizer> - </param> - - <param name="wildcards" label="Use 'wild cards' or 'regular expressions'" type="select" help="'wild-cards' (the default) - use '*' and '?' to match class names; 'regular-expressions' - use regular expressions to match class names"> - <option value="TRUE" selected="true">wild-cards</option> - <option value="FALSE">regular-expressions</option> - </param> - <param name="inclusive" label="Exclude/include named classes" type="select" help="'filter-out' (the default) - exclude only the named sample-classes; 'filter-in' - include only the named sample-classes"> - <option value="TRUE">filter-in</option> - <option value="FALSE" selected="true">filter-out</option> - </param> - - <param name="variableRangeFilter" label="Variable-range filters" type="text" value = "" help="comma-separated filters, each specified as 'variableMetadataColumnName:min:max'; default is no filters. (See help below.)"> - <sanitizer> - <valid initial="string.letters"> - <add preset="string.digits"/> - <add value="," /> <!-- comma --> - <add value="-" /> <!-- dash, hyphen --> - <add value="." /> <!-- dot, period --> - <add value=":" /> <!-- colon --> - <add value="_" /> <!-- underscore --> - </valid> - </sanitizer> - </param> - <param name="transformation" label="Data-transformation" type="select" help="'none' (the default) - do not transform data; 'log10' - log base 10 of data; in both cases, negative and missing values are imputed to zero"> - <option value="none" selected="true">none</option> - <option value="log10">log10</option> - </param> - - </inputs> - <outputs> - <data name="dataMatrix_out" label="${dataMatrix_in.name}.subset" format="tabular" ></data> - <data name="sampleMetadata_out" label="${sampleMetadata_in.name}.subset" format="tabular" ></data> - <data name="variableMetadata_out" label="${variableMetadata_in.name}.subset" format="tabular" ></data> - </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="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="M"/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-in"/> - <param name="variableRangeFilter" value="FEATMAX:6.30103:,mz:200:,rt::800"/> - <param name="transformation" value="log10"/> - <output name="sampleMetadata_out"> - <assert_contents> - <not_has_text text="HU_028" /> - <not_has_text text="HU_051" /> - <not_has_text text="HU_060" /> - <not_has_text text="HU_110" /> - <not_has_text text="HU_149" /> - <not_has_text text="HU_152" /> - <not_has_text text="HU_175" /> - <not_has_text text="HU_178" /> - <not_has_text text="HU_185" /> - <not_has_text text="HU_204" /> - <not_has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - </assert_contents> - </output> - <output name="variableMetadata_out"> - <assert_contents> - <not_has_text text="HMDB00191" /> - <has_text text="HMDB00208" /> - <not_has_text text="HMDB00251" /> - <not_has_text text="HMDB00299" /> - <not_has_text text="HMDB00512" /> - <not_has_text text="HMDB00518" /> - <not_has_text text="HMDB00715" /> - <not_has_text text="HMDB00822" /> - <has_text text="HMDB01032" /> - <has_text text="HMDB01101.1" /> - <not_has_text text="HMDB03193" /> - <not_has_text text="HMDB04824" /> - <not_has_text text="HMDB10348" /> - <has_text text="HMDB13189" /> - <not_has_text text="HMDB59717" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value="class"/> - <param name="sampleclassNames" value=""/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-out"/> - <param name="variableRangeFilter" value="FEATMAX:2e6:,mz:200:,rt::800"/> - <output name="sampleMetadata_out"> - <assert_contents> - <has_text text="HU_028" /> - <has_text text="HU_051" /> - <has_text text="HU_060" /> - <has_text text="HU_110" /> - <has_text text="HU_149" /> - <has_text text="HU_152" /> - <has_text text="HU_175" /> - <has_text text="HU_178" /> - <has_text text="HU_185" /> - <not_has_text text="HU_204" /> - <has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - </assert_contents> - </output> - <output name="variableMetadata_out"> - <assert_contents> - <has_text text="HMDB00191" /> - <has_text text="HMDB00208" /> - <not_has_text text="HMDB00251" /> - <not_has_text text="HMDB00299" /> - <not_has_text text="HMDB00512" /> - <not_has_text text="HMDB00518" /> - <not_has_text text="HMDB00715" /> - <not_has_text text="HMDB00822" /> - <has_text text="HMDB01032" /> - <has_text text="HMDB01101.1" /> - <not_has_text text="HMDB03193" /> - <not_has_text text="HMDB04824" /> - <not_has_text text="HMDB10348" /> - <has_text text="HMDB13189" /> - <not_has_text text="HMDB59717" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="M"/> - <param name="inclusive" value="filter-in"/> - <output name="dataMatrix_out"> - <assert_contents> - <not_has_text text="HU_028" /> - <not_has_text text="HU_051" /> - <not_has_text text="HU_060" /> - <not_has_text text="HU_110" /> - <not_has_text text="HU_149" /> - <not_has_text text="HU_152" /> - <not_has_text text="HU_175" /> - <not_has_text text="HU_178" /> - <not_has_text text="HU_185" /> - <not_has_text text="HU_204" /> - <not_has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - <has_text text="HMDB03193" /> - <not_has_text text="HMDB00822" /> - <has_text text="HMDB01101" /> - <has_text text="HMDB01101.1" /> - <has_text text="HMDB10348" /> - <has_text text="HMDB59717" /> - <has_text text="HMDB13189" /> - <has_text text="HMDB00299" /> - <has_text text="HMDB00191" /> - <has_text text="HMDB00518" /> - <has_text text="HMDB00715" /> - <has_text text="HMDB01032" /> - <has_text text="HMDB00208" /> - <has_text text="HMDB04824" /> - <has_text text="HMDB00512" /> - <has_text text="HMDB00251" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="*"/> - <param name="wildcards" value="TRUE"/> - <param name="inclusive" value="filter-in"/> - <output name="sampleMetadata_out"> - <assert_contents> - <not_has_text text="HU_204" /> - <has_text text="HU_028" /> - <has_text text="HU_051" /> - <has_text text="HU_060" /> - <has_text text="HU_110" /> - <has_text text="HU_149" /> - <has_text text="HU_152" /> - <has_text text="HU_175" /> - <has_text text="HU_178" /> - <has_text text="HU_185" /> - <has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="M"/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-in"/> - <output name="sampleMetadata_out"> - <assert_contents> - <not_has_text text="HU_028" /> - <not_has_text text="HU_051" /> - <not_has_text text="HU_060" /> - <not_has_text text="HU_110" /> - <not_has_text text="HU_149" /> - <not_has_text text="HU_152" /> - <not_has_text text="HU_175" /> - <not_has_text text="HU_178" /> - <not_has_text text="HU_185" /> - <not_has_text text="HU_204" /> - <not_has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="M"/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-in"/> - <output name="variableMetadata_out"> - <assert_contents> - <has_text text="HMDB03193" /> - <not_has_text text="HMDB00822" /> - <has_text text="HMDB01101" /> - <has_text text="HMDB01101.1" /> - <has_text text="HMDB10348" /> - <has_text text="HMDB59717" /> - <has_text text="HMDB13189" /> - <has_text text="HMDB00299" /> - <has_text text="HMDB00191" /> - <has_text text="HMDB00518" /> - <has_text text="HMDB00715" /> - <has_text text="HMDB01032" /> - <has_text text="HMDB00208" /> - <has_text text="HMDB04824" /> - <has_text text="HMDB00512" /> - <has_text text="HMDB00251" /> - </assert_contents> - </output> - </test> - <test> - <param name="dataMatrix_in" value="input_nofilter_dataMatrix.tsv"/> - <param name="sampleMetadata_in" value="input_sampleMetadata.tsv"/> - <param name="variableMetadata_in" value="input_variableMetadata.tsv"/> - <param name="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="M"/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-in"/> - <output name="variableMetadata_out"> - <assert_contents> - <has_text text="HMDB03193" /> - <not_has_text text="HMDB00822" /> - <has_text text="HMDB01101" /> - <has_text text="HMDB01101.1" /> - <has_text text="HMDB10348" /> - <has_text text="HMDB59717" /> - <not_has_text text="HMDB13189" /> - <has_text text="HMDB00299" /> - <has_text text="HMDB00191" /> - <has_text text="HMDB00518" /> - <has_text text="HMDB00715" /> - <has_text text="HMDB01032" /> - <has_text text="HMDB00208" /> - <has_text text="HMDB04824" /> - <has_text text="HMDB00512" /> - <has_text text="HMDB00251" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value="gender"/> - <param name="sampleclassNames" value="[Mm],[fF]"/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-in"/> - <output name="sampleMetadata_out"> - <assert_contents> - <has_text text="HU_028" /> - <has_text text="HU_051" /> - <has_text text="HU_060" /> - <has_text text="HU_110" /> - <has_text text="HU_149" /> - <has_text text="HU_152" /> - <has_text text="HU_175" /> - <has_text text="HU_178" /> - <has_text text="HU_185" /> - <not_has_text text="HU_204" /> - <has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - </assert_contents> - </output> - </test> - <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="classnameColumn" value=""/> - <param name="sampleclassNames" value="M"/> - <param name="wildcards" value="FALSE"/> - <param name="inclusive" value="filter-in"/> - <output name="sampleMetadata_out"> - <assert_contents> - <has_text text="HU_028" /> - <has_text text="HU_051" /> - <has_text text="HU_060" /> - <has_text text="HU_110" /> - <has_text text="HU_149" /> - <has_text text="HU_152" /> - <has_text text="HU_175" /> - <has_text text="HU_178" /> - <has_text text="HU_185" /> - <not_has_text text="HU_204" /> - <has_text text="HU_208" /> - <has_text text="HU_017" /> - <has_text text="HU_034" /> - <has_text text="HU_078" /> - <has_text text="HU_091" /> - <has_text text="HU_093" /> - <has_text text="HU_099" /> - <has_text text="HU_130" /> - <has_text text="HU_134" /> - <has_text text="HU_138" /> - </assert_contents> - </output> - </test> - </tests> - - - - <help><![CDATA[ +<tool id="w4mclassfilter" name="W4m Data Subset" version="0.98.11"> + <description>Filter W4m data by values or metadata</description> + <!-- Here is the hyphenation standard that I *try* to apply consistently in my documentation: http://www.sandranoonan.com/dont-let-hyphenation-drive-crazy/ --> + <requirements> + <!-- <requirement type="package" version="6.2">readline</requirement> --> + <requirement type="package" version="3.4.1">r-base</requirement> + <requirement type="package" version="1.1_4">r-batch</requirement> + <requirement type="package" version="0.98.8">w4mclassfilter</requirement> + </requirements> + <command detect_errors="aggressive"><![CDATA[ + Rscript $__tool_directory__/w4mclassfilter_wrapper.R + dataMatrix_in '$dataMatrix_in' + sampleMetadata_in '$sampleMetadata_in' + variableMetadata_in '$variableMetadata_in' + sampleclassNames '$sampleclassNames' + inclusive '$inclusive' + wildcards '$wildcards' + classnameColumn '$classnameColumn' + samplenameColumn 'sampleMetadata' + variable_range_filter '$variableRangeFilter' + transformation '$transformation' + dataMatrix_out '$dataMatrix_out' + sampleMetadata_out '$sampleMetadata_out' + variableMetadata_out '$variableMetadata_out' + ]]></command> + <inputs> + <param name="dataMatrix_in" format="tabular" label="Data matrix file" type="data" + help="variables ✖ samples" /> + <param name="sampleMetadata_in" format="tabular" label="Sample metadata file" type="data" + help="sample metadata, one row per sample" /> + <param name="variableMetadata_in" format="tabular" label="Variable metadata file" type="data" + help="variable metadata, one row per variable" /> + <param name="classnameColumn" label="Column that names the sample-class" type="text" value = "class" + help="name of the column in sample metadata that has the values to be tested against the 'Names of sample-classes' input parameter - defaults to 'class'"> + <sanitizer> + <valid initial="string.letters"> + <add preset="string.digits"/> + <add value="." /> <!-- dot, period --> + <add value="_" /> <!-- underscore --> + </valid> + </sanitizer> + </param> + <param name="sampleclassNames" label="Names of sample-classes" type="text" value = "" + help="comma-separated names (or regular expressions to match names) of sample-classes to filter in or out; defaults to no names"> + <sanitizer> + <valid initial="string.letters"> + <add preset="string.digits"/> + <add value="{" /> <!-- l-cube, left-curly-bracket --> + <add value="|" /> <!-- pipe --> + <add value="}" /> <!-- r-cube, right-curly-bracket --> + <add value="$" /> <!-- dollar, dollar-sign --> + <add value="(" /> <!-- left-paren --> + <add value=")" /> <!-- right-paren --> + <add value="*" /> <!-- splat, asterisk --> + <add value="+" /> <!-- plus --> + <add value="-" /> <!-- dash, hyphen --> + <add value="," /> <!-- comma --> + <add value="." /> <!-- dot, period --> + <add value=":" /> <!-- colon --> + <add value=";" /> <!-- semi, semicolon --> + <add value="?" /> <!-- what, question mark --> + <add value="[" /> <!-- l-squib, left-squre-bracket --> + <add value="\" /> <!-- whack, backslash --> + <add value="]" /> <!-- r-squib, right-squre-bracket --> + <add value="^" /> <!-- hat, caret --> + <add value="_" /> <!-- underscore --> + </valid> + </sanitizer> + </param> + <param name="wildcards" label="Use 'wild cards' or 'regular expressions'" type="select" + help="'wild-cards' (the default) - use '*' and '?' to match class names; 'regular-expressions' - use regular expressions to match class names"> + <option value="TRUE" selected="true">wild-cards</option> + <option value="FALSE">regular-expressions</option> + </param> + <param name="inclusive" label="Exclude/include named classes" type="select" + help="'filter-out' (the default) - exclude only the named sample-classes; 'filter-in' - include only the named sample-classes"> + <option value="TRUE">filter-in</option> + <option value="FALSE" selected="true">filter-out</option> + </param> + <param name="variableRangeFilter" label="Variable-range filters" type="text" value = "" + help="comma-separated filters, each specified as 'variableMetadataColumnName:min:max'; default is no filters. (See help below.)"> + <sanitizer> + <valid initial="string.letters"> + <add preset="string.digits"/> + <add value="," /> <!-- comma --> + <add value="." /> <!-- dot, period --> + <add value=":" /> <!-- colon --> + <add value="_" /> <!-- underscore --> + </valid> + </sanitizer> + </param> + <param name="transformation" label="Data-transformation" type="select" + help="'none' (the default) - do not transform data; 'log2' - log base 2 of data; 'log10' - log base 10 of data; in all cases, negative and missing values are imputed to zero"> + <option value="none" selected="true">none</option> + <option value="log2">log2</option> + <option value="log10">log10</option> + </param> + </inputs> + <outputs> + <data name="dataMatrix_out" format="tabular" label="${dataMatrix_in.name}.subset" ></data> + <data name="sampleMetadata_out" format="tabular" label="${sampleMetadata_in.name}.subset" ></data> + <data name="variableMetadata_out" format="tabular" label="${variableMetadata_in.name}.subset" ></data> + </outputs> + <tests> + <!-- test 1 --> + <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="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="M"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <param name="variableRangeFilter" value="FEATMAX:6.30103:,mz:200:,rt::800"/> + <param name="transformation" value="log10"/> + <output name="dataMatrix_out"> + <assert_contents> + <has_text text="5.87336711011293" /> + </assert_contents> + </output> + <output name="sampleMetadata_out"> + <assert_contents> + <not_has_text text="HU_028" /> + <not_has_text text="HU_051" /> + <not_has_text text="HU_060" /> + <not_has_text text="HU_110" /> + <not_has_text text="HU_149" /> + <not_has_text text="HU_152" /> + <not_has_text text="HU_175" /> + <not_has_text text="HU_178" /> + <not_has_text text="HU_185" /> + <not_has_text text="HU_204" /> + <not_has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + </assert_contents> + </output> + <output name="variableMetadata_out"> + <assert_contents> + <not_has_text text="HMDB00191" /> + <has_text text="HMDB00208" /> + <not_has_text text="HMDB00251" /> + <not_has_text text="HMDB00299" /> + <not_has_text text="HMDB00512" /> + <not_has_text text="HMDB00518" /> + <not_has_text text="HMDB00715" /> + <not_has_text text="HMDB00822" /> + <has_text text="HMDB01032" /> + <has_text text="HMDB01101.1" /> + <not_has_text text="HMDB03193" /> + <not_has_text text="HMDB04824" /> + <not_has_text text="HMDB10348" /> + <has_text text="HMDB13189" /> + <not_has_text text="HMDB59717" /> + </assert_contents> + </output> + </test> + <!-- test 2 --> + <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="classnameColumn" value="sampleMetadata"/> + <!-- test that hyphens in regular expressions work --> + <param name="sampleclassNames" value="HU_[0-9][0-9][0-9]"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <param name="variableRangeFilter" value="FEATMAX:20.93157:,mz:200:,rt::800"/> + <param name="transformation" value="log2"/> + <output name="dataMatrix_out"> + <assert_contents> + <has_text text="19.5109032146715" /> + </assert_contents> + </output> + <output name="sampleMetadata_out"> + <assert_contents> + <has_text text="HU_028" /> + <has_text text="HU_051" /> + <has_text text="HU_060" /> + <has_text text="HU_110" /> + <has_text text="HU_149" /> + <has_text text="HU_152" /> + <has_text text="HU_175" /> + <has_text text="HU_178" /> + <has_text text="HU_185" /> + <not_has_text text="HU_204" /> + <has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + </assert_contents> + </output> + <output name="variableMetadata_out"> + <assert_contents> + <has_text text="HMDB00191" /> + <has_text text="HMDB00208" /> + <not_has_text text="HMDB00251" /> + <not_has_text text="HMDB00299" /> + <not_has_text text="HMDB00512" /> + <not_has_text text="HMDB00518" /> + <not_has_text text="HMDB00715" /> + <not_has_text text="HMDB00822" /> + <has_text text="HMDB01032" /> + <has_text text="HMDB01101.1" /> + <not_has_text text="HMDB03193" /> + <not_has_text text="HMDB04824" /> + <not_has_text text="HMDB10348" /> + <has_text text="HMDB13189" /> + <not_has_text text="HMDB59717" /> + </assert_contents> + </output> + </test> + <!-- test 3 --> + <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="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="M"/> + <param name="inclusive" value="filter-in"/> + <param name="transformation" value="none"/> + <output name="dataMatrix_out"> + <assert_contents> + <not_has_text text="HU_028" /> + <not_has_text text="HU_051" /> + <not_has_text text="HU_060" /> + <not_has_text text="HU_110" /> + <not_has_text text="HU_149" /> + <not_has_text text="HU_152" /> + <not_has_text text="HU_175" /> + <not_has_text text="HU_178" /> + <not_has_text text="HU_185" /> + <not_has_text text="HU_204" /> + <not_has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + <has_text text="HMDB03193" /> + <not_has_text text="HMDB00822" /> + <has_text text="HMDB01101" /> + <has_text text="HMDB01101.1" /> + <has_text text="HMDB10348" /> + <has_text text="HMDB59717" /> + <has_text text="HMDB13189" /> + <has_text text="HMDB00299" /> + <has_text text="HMDB00191" /> + <has_text text="HMDB00518" /> + <has_text text="HMDB00715" /> + <has_text text="HMDB01032" /> + <has_text text="HMDB00208" /> + <has_text text="HMDB04824" /> + <has_text text="HMDB00512" /> + <has_text text="HMDB00251" /> + </assert_contents> + </output> + </test> + <!-- test 4 --> + <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="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="*"/> + <param name="wildcards" value="TRUE"/> + <param name="inclusive" value="filter-in"/> + <output name="sampleMetadata_out"> + <assert_contents> + <not_has_text text="HU_204" /> + <has_text text="HU_028" /> + <has_text text="HU_051" /> + <has_text text="HU_060" /> + <has_text text="HU_110" /> + <has_text text="HU_149" /> + <has_text text="HU_152" /> + <has_text text="HU_175" /> + <has_text text="HU_178" /> + <has_text text="HU_185" /> + <has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + </assert_contents> + </output> + </test> + <!-- test 5 --> + <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="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="M"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <output name="sampleMetadata_out"> + <assert_contents> + <not_has_text text="HU_028" /> + <not_has_text text="HU_051" /> + <not_has_text text="HU_060" /> + <not_has_text text="HU_110" /> + <not_has_text text="HU_149" /> + <not_has_text text="HU_152" /> + <not_has_text text="HU_175" /> + <not_has_text text="HU_178" /> + <not_has_text text="HU_185" /> + <not_has_text text="HU_204" /> + <not_has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + </assert_contents> + </output> + </test> + <!-- test 6 --> + <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="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="M"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <output name="variableMetadata_out"> + <assert_contents> + <has_text text="HMDB03193" /> + <not_has_text text="HMDB00822" /> + <has_text text="HMDB01101" /> + <has_text text="HMDB01101.1" /> + <has_text text="HMDB10348" /> + <has_text text="HMDB59717" /> + <has_text text="HMDB13189" /> + <has_text text="HMDB00299" /> + <has_text text="HMDB00191" /> + <has_text text="HMDB00518" /> + <has_text text="HMDB00715" /> + <has_text text="HMDB01032" /> + <has_text text="HMDB00208" /> + <has_text text="HMDB04824" /> + <has_text text="HMDB00512" /> + <has_text text="HMDB00251" /> + </assert_contents> + </output> + </test> + <!-- test 7 --> + <test> + <param name="dataMatrix_in" value="input_nofilter_dataMatrix.tsv"/> + <param name="sampleMetadata_in" value="input_sampleMetadata.tsv"/> + <param name="variableMetadata_in" value="input_variableMetadata.tsv"/> + <param name="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="M"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <output name="variableMetadata_out"> + <assert_contents> + <has_text text="HMDB03193" /> + <not_has_text text="HMDB00822" /> + <has_text text="HMDB01101" /> + <has_text text="HMDB01101.1" /> + <has_text text="HMDB10348" /> + <has_text text="HMDB59717" /> + <not_has_text text="HMDB13189" /> + <has_text text="HMDB00299" /> + <has_text text="HMDB00191" /> + <has_text text="HMDB00518" /> + <has_text text="HMDB00715" /> + <has_text text="HMDB01032" /> + <has_text text="HMDB00208" /> + <has_text text="HMDB04824" /> + <has_text text="HMDB00512" /> + <has_text text="HMDB00251" /> + </assert_contents> + </output> + </test> + <!-- test 8 --> + <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="classnameColumn" value="gender"/> + <param name="sampleclassNames" value="[Mm],[fF]"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <output name="sampleMetadata_out"> + <assert_contents> + <has_text text="HU_028" /> + <has_text text="HU_051" /> + <has_text text="HU_060" /> + <has_text text="HU_110" /> + <has_text text="HU_149" /> + <has_text text="HU_152" /> + <has_text text="HU_175" /> + <has_text text="HU_178" /> + <has_text text="HU_185" /> + <not_has_text text="HU_204" /> + <has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + </assert_contents> + </output> + </test> + <!-- test 9 --> + <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="classnameColumn" value=""/> + <param name="sampleclassNames" value="M"/> + <param name="wildcards" value="FALSE"/> + <param name="inclusive" value="filter-in"/> + <output name="sampleMetadata_out"> + <assert_contents> + <has_text text="HU_028" /> + <has_text text="HU_051" /> + <has_text text="HU_060" /> + <has_text text="HU_110" /> + <has_text text="HU_149" /> + <has_text text="HU_152" /> + <has_text text="HU_175" /> + <has_text text="HU_178" /> + <has_text text="HU_185" /> + <not_has_text text="HU_204" /> + <has_text text="HU_208" /> + <has_text text="HU_017" /> + <has_text text="HU_034" /> + <has_text text="HU_078" /> + <has_text text="HU_091" /> + <has_text text="HU_093" /> + <has_text text="HU_099" /> + <has_text text="HU_130" /> + <has_text text="HU_134" /> + <has_text text="HU_138" /> + </assert_contents> + </output> + </test> + </tests> + <help><![CDATA[ **Author** Arthur Eschenlauer (University of Minnesota, esch0041@umn.edu) @@ -489,7 +504,7 @@ Data for a sample are collected as MS intensities, each of which is associated with a position on a 2D plane with dimensions of rt and m/z. Ideally, features would be sufficiently reproducible among sample-runs to distinguish features that are commmon among samples from those that differ. -The chromatographic retention-time for a chemical can vary from one chromatography run to the next. +The chromatographic retention-time for a chemical can vary from one chromatography run to the next. Workflow4Metabolomics (W4m, [Giacomoni *et al.*, 2014, Guitton *et al.* 2017]) is a "flavor" of Galaxy that uses the XCMS preprocessing tools for "retention-time correction" to align features among samples. Features may be better aligned if pooled samples and blanks are included. @@ -570,7 +585,7 @@ | Column that names the sample-class (default = '``class``') - | name of the column in **sampleMetadata** that has the values to be tested against the '``Names of sample-classes``' input parameter + | name of the column in **sampleMetadata** that has the values to be tested against the '``Names of sample-classes``' input parameter; only letters, digits, periods, and underscores are permitted. | Names of sample-classes (default = no names) @@ -593,6 +608,7 @@ Data-transformation (default = '``none``') | '``none``' - do not transform data matrix values + | '``log2``' - take the log base 2 of the values in the data matrix | '``log10``' - take the log base 10 of the values in the data matrix | In both cases, negative and missing values are imputed to zero. | @@ -681,11 +697,11 @@ in the output. Each range is a string of three colon-separated values (e.g., "mz:200:800") in the following order: -- the **name of a column of `variableMetadata`** which must have numerical data (e.g., "mz"); -- the **minimum allowed value** in that column for the feature to be retained (e.g., 200); -- the **maximum allowed value** (e.g., 800). +- the **name of a column of `variableMetadata`** which must have numerical data (only letters, digits, periods, and underscores are permitted in the name itself), e.g., 'mz'; +- the **minimum allowed value** in that column for the feature to be retained, e.g., '200'; +- the **maximum allowed value**, e.g., '800'. -Note for the range specification strings: +Note for the range specification strings: - **If the "maximum" is less than the "minimum", then the range is exclusive** (e.g., "mz:800:200" means retain only features whose mz is NOT in the range 200-800) - **If the name supplied in the first field is 'FEATMAX',** then the string is defining the minimum (and possibly, though less useful, maximum) intensity for each feature in the dataMatrix. For example, "FEATMAX:1e6:" would specify that any feature would be excluded if no sample had an intensity for that feature greater than 1000000. @@ -704,15 +720,15 @@ Input Files ----------- -+------------------------------------------------------------------------------------------------------------------------+ -| Input File URL | -+========================================================================================================================+ -| https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/input_dataMatrix.tsv | -+------------------------------------------------------------------------------------------------------------------------+ -| https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/input_sampleMetadata.tsv | -+------------------------------------------------------------------------------------------------------------------------+ -| https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/input_variableMetadata.tsv | -+------------------------------------------------------------------------------------------------------------------------+ ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Input File URL | ++======================================================================================================================================================+ +| https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/input_dataMatrix.tsv | ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +| https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/input_sampleMetadata.tsv | ++------------------------------------------------------------------------------------------------------------------------------------------------------+ +| https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/input_variableMetadata.tsv | ++------------------------------------------------------------------------------------------------------------------------------------------------------+ .. class:: infomark @@ -724,27 +740,31 @@ **Input parameters** -+------------------------------------+-----------------+ -| Input Parameter | Value | -+====================================+=================+ -| Names of sample-classes | M | -+------------------------------------+-----------------+ -| Include named classes | filter-in | -+------------------------------------+-----------------+ -| Column that names the sample-class | gender | -+------------------------------------+-----------------+ ++------------------------------------+-------------------------------+ +| Input Parameter | Value | ++====================================+===============================+ +| Names of sample-classes | M | ++------------------------------------+-------------------------------+ +| Include named classes | filter-in | ++------------------------------------+-------------------------------+ +| Column that names the sample-class | gender | ++------------------------------------+-------------------------------+ +| Variable range-filters | (Leave this field empty.) | ++------------------------------------+-------------------------------+ +| Data transforamtion | none | ++------------------------------------+-------------------------------+ **Expected outputs** -+-------------------+---------------------------------------------------------------------------------------------------------------------------+ -| Expected Output | Download from URL | -+===================+===========================================================================================================================+ -| Data matrix | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/expected_dataMatrix.tsv | -+-------------------+---------------------------------------------------------------------------------------------------------------------------+ -| Sample metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/expected_sampleMetadata.tsv | -+-------------------+---------------------------------------------------------------------------------------------------------------------------+ -| Variable metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/expected_variableMetadata.tsv | -+-------------------+---------------------------------------------------------------------------------------------------------------------------+ ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ +| Expected Output | Download from URL | ++===================+=================================================================================================================================================+ +| Data matrix | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/expected_dataMatrix.tsv | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ +| Sample metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/expected_sampleMetadata.tsv | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ +| Variable metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/expected_variableMetadata.tsv | ++-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ .. class:: infomark @@ -757,121 +777,44 @@ **Input parameters** -+------------------------------------+-------------------------------+ -| Input Parameter | Value | -+====================================+===============================+ -| Names of sample-classes | (Leave this field empty.) | -+------------------------------------+-------------------------------+ -| Include named classes | filter-out | -+------------------------------------+-------------------------------+ -| Column that names the sample-class | class | -+------------------------------------+-------------------------------+ -| Variable range-filters | FEATMAX:2e6:,mz:200:,rt::800 | -+------------------------------------+-------------------------------+ ++------------------------------------+------------------------------------+ +| Input Parameter | Value | ++====================================+====================================+ +| Names of sample-classes | (Leave this field empty.) | ++------------------------------------+------------------------------------+ +| Include named classes | filter-out | ++------------------------------------+------------------------------------+ +| Column that names the sample-class | gender | ++------------------------------------+------------------------------------+ +| Variable range-filters | FEATMAX:20.93157:,mz:200:,rt::800 | ++------------------------------------+------------------------------------+ +| Data transforamtion | log2 | ++------------------------------------+------------------------------------+ **Expected outputs** -+-------------------+------------------------------------------------------------------------------------------------------------------------------+ -| Expected Output | Download from URL | -+===================+==============================================================================================================================+ -| Data matrix | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/rangefilter_dataMatrix.tsv | -+-------------------+------------------------------------------------------------------------------------------------------------------------------+ -| Sample metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/rangefilter_sampleMetadata.tsv | -+-------------------+------------------------------------------------------------------------------------------------------------------------------+ -| Variable metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/rangefilter_variableMetadata.tsv | -+-------------------+------------------------------------------------------------------------------------------------------------------------------+ - ------------------------------------------------------------------------------ - ----- -NEWS ----- - -Changes in version 0.98.8 -========================= - -New features - -- The tool now appears in Galaxy with a new, more representative name: "W4m Data Subset". (Earlier versions of this tool appeared in Galaxy with the name "Sample Subset".) -- Option was added to log-transform data matrix values. -- Output datasets are named in conformance with the W4m convention of appending the name of each preprocessing tool to the input dataset name. -- Superflous "Column that names the sample" input parameter was eliminated. -- Some documentation was updated or clarified. - -Internal modifications - -- None - -Changes in version 0.98.7 -========================= - -New features - -- First column of output variableMetadata (that has feature names) now is always named "variableMetadata". -- First column of output sampleMetadata now (that has sample names) now is always named "sampleMetadata". - -Internal modifications - -- Now uses w4mclassfilter R package v0.98.7. - -Changes in version 0.98.6 -========================= - -New features - -- Added support for filtering out features whose attributes fall outside specified ranges. - For more detail, see "Variable-range filters" above. - -Internal modifications - -- Now uses w4mclassfilter R package v0.98.6. -- Now sorts sample names and feature names in output files because some statistical tools expect the same order in `dataMatrix` row and column names as in the corresponding metadata files. - -Changes in version 0.98.3 -========================= - -Internal modifications - -- Improved input handling. -- Now uses w4mclassfilter R package v0.98.3, although that version has no functional implications for this tool. -- Improved reference-list. - -Changes in version 0.98.2 -========================= - -New features - -- Added support for R-flavored regular expression pattern-matching when selecting names of sample-classes. -- Empty classes argument or zero-length class_column result in no samples filtered out. - -Internal modifications - -- Support and tests for new features. - -Changes in version 0.98.1 -========================= - -First release - Wrap the w4mclassfilter R package that implements filtering of W4m data matrix, variable metadata, and sample metadata by class of sample. - -New features - -- Output *dataMatrix* is input dataMatrix as modified by the tool -- Output *sampleMetadata* is input sampleMetadata as modified by the tool -- Output *variableMetadata* is input variableMetadata as modified by the tool - - ]]></help> - <citations> - <!-- Giacomoni_2014 W4m 2.5 --> - <citation type="doi">10.1093/bioinformatics/btu813</citation> - <!-- Guitton_2017 W4m 3.0 --> - <citation type="doi">10.1016/j.biocel.2017.07.002</citation> - <!-- Kuhl_2012 CAMERA --> - <citation type="doi">10.1021/ac202450g</citation> - <!-- Smith_2006 XCMS --> - <citation type="doi">10.1021/ac051437y</citation> - <!-- Thevenot_2015 Urinary metabolome statistics --> - <citation type="doi">10.1021/acs.jproteome.5b00354</citation> - </citations> - <!-- - vim:noet:sw=2:ts=2 ++-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ +| Expected Output | Download from URL | ++===================+===================================================================================================================================================+ +| Data matrix | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/rangefilter_dataMatrix.tsv | ++-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ +| Sample metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/rangefilter_sampleMetadata.tsv | ++-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ +| Variable metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/tools/w4mclassfilter/test-data/rangefilter_variableMetadata.tsv | ++-------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ + ]]></help> + <citations> + <!-- Giacomoni_2014 W4m 2.5 --> + <citation type="doi">10.1093/bioinformatics/btu813</citation> + <!-- Guitton_2017 W4m 3.0 --> + <citation type="doi">10.1016/j.biocel.2017.07.002</citation> + <!-- Kuhl_2012 CAMERA --> + <citation type="doi">10.1021/ac202450g</citation> + <!-- Smith_2006 XCMS --> + <citation type="doi">10.1021/ac051437y</citation> + <!-- Thevenot_2015 Urinary metabolome statistics --> + <citation type="doi">10.1021/acs.jproteome.5b00354</citation> + </citations> + <!-- + vim:noet:sw=4:ts=4 --> </tool>
--- a/w4mclassfilter_wrapper.R Fri Mar 02 08:29:53 2018 -0500 +++ b/w4mclassfilter_wrapper.R Mon Sep 03 22:28:03 2018 -0400 @@ -102,18 +102,31 @@ ## ----------------------------- my_w4m_filter_imputation <- if (transformation == "log10") { function(m) { + if (!is.matrix(m)) + stop("Cannot impute and transform data - the supplied data is not in matrix form") + if (nrow(m) == 0) + stop("Cannot impute and transform data - data matrix has no rows") + if (ncol(m) == 0) + stop("Cannot impute and transform data - data matrix has no columns") suppressWarnings( # suppress warnings here since non-positive values will produce NaN's that will be fixed in the next step m <- log10(m) ) - # replace NaN values with zero - m[is.nan(m)] <- 0 - # replace NA values with zero - m[is.na(m)] <- 0 - # replace negative values with zero, if applicable (It should never be applicable!) - m[m<0] <- 0 - # return matrix as the result - return (m) + return ( w4m_filter_imputation(m) ) + } +} else if (transformation == "log2") { + function(m) { + if (!is.matrix(m)) + stop("Cannot impute and transform data - the supplied data is not in matrix form") + if (nrow(m) == 0) + stop("Cannot impute and transform data - data matrix has no rows") + if (ncol(m) == 0) + stop("Cannot impute and transform data - data matrix has no columns") + suppressWarnings( + # suppress warnings here since non-positive values will produce NaN's that will be fixed in the next step + m <- log2(m) + ) + return ( w4m_filter_imputation(m) ) } } else { # use the method from the w4mclassfilter class