Repository 'w4mclassfilter'
hg clone https://toolshed.g2.bx.psu.edu/repos/eschen42/w4mclassfilter

Changeset 6:38ccf6722d54 (2018-01-15)
Previous changeset 5:2cdf7d5982c8 (2017-09-07) Next changeset 7:582a8a42a93b (2018-01-29)
Commit message:
planemo upload for repository https://github.com/HegemanLab/w4mclassfilter_galaxy_wrapper/tree/master commit a06ae79d25b31d02217b934b9cd61a5aba3f640f
modified:
test-data/expected_dataMatrix.tsv
test-data/expected_variableMetadata.tsv
test-data/input_variableMetadata.tsv
w4mclassfilter.xml
w4mclassfilter_wrapper.R
added:
test-data/rangefilter_dataMatrix.tsv
test-data/rangefilter_sampleMetadata.tsv
test-data/rangefilter_variableMetadata.tsv
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 test-data/expected_dataMatrix.tsv
--- a/test-data/expected_dataMatrix.tsv Thu Sep 07 17:41:09 2017 -0400
+++ b/test-data/expected_dataMatrix.tsv Mon Jan 15 14:06:39 2018 -0500
b
@@ -1,16 +1,16 @@
  HU_017 HU_034 HU_078 HU_091 HU_093 HU_099 HU_130 HU_134 HU_138
-HMDB03193 76043 44943 173175 242549 57066 559869 339188 471368 262271
-HMDB01101 30689 52217 229568 4763576 3878773 976436 608298 1605075 72021
-HMDB01101.1 6877586 3158 4763576 3878773 976436 831937 1605075 72021 442510
-HMDB10348 47259 60885 168264 176500 76457 610110 279156 524468 451573
-HMDB59717 357351 301983 1028110 1530493 270027 1378535 808334 1132813 871209
-HMDB13189 2644620 1661412 2755434 593863 837865 3526136 1608814 3446611 1941527
+HMDB00191 560002 575790 785428 645785 591569 960658 639437 1092885 1409045
+HMDB00208 747080 595872 3143654 4059767 1433702 5593888 2477288 3346077 4230072
+HMDB00251 368600 94936 293988 352855 767894 268331 310918 1248919 577184
 HMDB00299 250551 456162 808657 614370 250403 768004 504108 1014041 1362408
-HMDB00191 560002 575790 785428 645785 591569 960658 639437 1092885 1409045
+HMDB00512 0 280560 556003 590779 209285 342532 569970 525240 246282
 HMDB00518 0 85944 129886 175800 13154 230242 440223 315368 10657
 HMDB00715 1252089 905408 5140022 2658555 814523 2558923 4184204 3865723 3236644
 HMDB01032 2569205 1604999 26222916 257139 675754 59906109 31151730 18648127 14989438
-HMDB00208 747080 595872 3143654 4059767 1433702 5593888 2477288 3346077 4230072
+HMDB01101 30689 52217 229568 4763576 3878773 976436 608298 1605075 72021
+HMDB01101.1 6877586 3158 4763576 3878773 976436 831937 1605075 72021 442510
+HMDB03193 76043 44943 173175 242549 57066 559869 339188 471368 262271
 HMDB04824 374028 539206 959381 605191 310260 1253319 477995 825691 1157093
-HMDB00512 0 280560 556003 590779 209285 342532 569970 525240 246282
-HMDB00251 368600 94936 293988 352855 767894 268331 310918 1248919 577184
+HMDB10348 47259 60885 168264 176500 76457 610110 279156 524468 451573
+HMDB13189 2644620 1661412 2755434 593863 837865 3526136 1608814 3446611 1941527
+HMDB59717 357351 301983 1028110 1530493 270027 1378535 808334 1132813 871209
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 test-data/expected_variableMetadata.tsv
--- a/test-data/expected_variableMetadata.tsv Thu Sep 07 17:41:09 2017 -0400
+++ b/test-data/expected_variableMetadata.tsv Mon Jan 15 14:06:39 2018 -0500
b
@@ -1,16 +1,16 @@
-variableMetadata name
-HMDB03193 Testosterone_glucuronide
-HMDB01101 p-Anisic_acid
-HMDB01101.1 p-Anisic_acid_2
-HMDB10348 Dehydroepiandrosterone_3-glucuronide
-HMDB59717 Glu-Val
-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
+variableMetadata name mz rt
+HMDB00191 loquor 650 600
+HMDB00208 loquimini 873 476
+HMDB00251 pasamur 500 423
+HMDB00299 bantur 700 500
+HMDB00512 pantur 900 543
+HMDB00518 loquoris 870 250
+HMDB00715 loquitur 725 900
+HMDB01032 loquimur 550 425
+HMDB01101 bar 150 300
+HMDB01101.1 baz 200 225
+HMDB03193 foo 100 200
+HMDB04824 loquantur 950 522
+HMDB10348 batur 300 275
+HMDB13189 baris 800 325
+HMDB59717 bamur 125 400
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 test-data/input_variableMetadata.tsv
--- a/test-data/input_variableMetadata.tsv Thu Sep 07 17:41:09 2017 -0400
+++ b/test-data/input_variableMetadata.tsv Mon Jan 15 14:06:39 2018 -0500
b
@@ -1,17 +1,17 @@
-variableMetadata name
-HMDB03193 Testosterone_glucuronide
-HMDB01101 p-Anisic_acid
-HMDB01101 p-Anisic_acid_2
-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
+variable name mz rt
+HMDB03193 foo 100 200
+HMDB01101 bar 150 300
+HMDB01101 baz 200 225
+HMDB00208 loquimini 873 476
+HMDB10348 batur 300 275
+HMDB00299 bantur 700 500
+HMDB00191 loquor 650 600
+HMDB00518 loquoris 870 250
+HMDB59717 bamur 125 400
+HMDB00822 bamini 300 199
+HMDB13189 baris 800 325
+HMDB00715 loquitur 725 900
+HMDB01032 loquimur 550 425
+HMDB04824 loquantur 950 522
+HMDB00512 pantur 900 543
+HMDB00251 pasamur 500 423
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 test-data/rangefilter_dataMatrix.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rangefilter_dataMatrix.tsv Mon Jan 15 14:06:39 2018 -0500
b
@@ -0,0 +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
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 test-data/rangefilter_sampleMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rangefilter_sampleMetadata.tsv Mon Jan 15 14:06:39 2018 -0500
b
@@ -0,0 +1,20 @@
+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_208 106 pos 27 18.61 F
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 test-data/rangefilter_variableMetadata.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rangefilter_variableMetadata.tsv Mon Jan 15 14:06:39 2018 -0500
b
@@ -0,0 +1,6 @@
+variableMetadata name mz rt
+HMDB00191 loquor 650 600
+HMDB00208 loquimini 873 476
+HMDB01032 loquimur 550 425
+HMDB01101.1 baz 200 225
+HMDB13189 baris 800 325
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 w4mclassfilter.xml
--- a/w4mclassfilter.xml Thu Sep 07 17:41:09 2017 -0400
+++ b/w4mclassfilter.xml Mon Jan 15 14:06:39 2018 -0500
b
b'@@ -1,10 +1,11 @@\n-<tool id="w4mclassfilter" name="Sample_Subset" version="0.98.3">\n+\xef\xbb\xbf<tool id="w4mclassfilter" name="Sample_Subset" version="0.98.6">\n   <description>Filter W4M data by sample class</description>\n \n   <requirements>\n-    <requirement type="package" version="3.3.2">r-base</requirement>\n+\t  <!-- <requirement type="package" version="6.2">readline</requirement> -->\n+    <requirement type="package" version="3.4.1">r-base</requirement>\n     <requirement type="package" version="1.1_4">r-batch</requirement>\n-    <requirement type="package" version="0.98.3">w4mclassfilter</requirement>\n+    <requirement type="package" version="0.98.6">w4mclassfilter</requirement>\n   </requirements>\n \n   <stdio>\n@@ -22,6 +23,7 @@\n   wildcards \'$wildcards\'\n   classnameColumn \'$classnameColumn\'\n   samplenameColumn \'$samplenameColumn\'\n+  variable_range_filter \'$variableRangeFilter\'\n   dataMatrix_out \'$dataMatrix_out\'\n   sampleMetadata_out \'$sampleMetadata_out\'\n   variableMetadata_out \'$variableMetadata_out\'\n@@ -56,8 +58,8 @@\n           <add value="&#125;" /> <!-- r-cube, right-curly-bracket -->\n         </valid>\n       </sanitizer>\n+    </param>\n \n-    </param>\n     <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 comma-less regular expressions to match class names">\n       <option value="TRUE" selected="true">wild-cards</option>\n       <option value="FALSE">regular-expressions</option>\n@@ -66,6 +68,18 @@\n       <option value="TRUE">filter-in</option>\n       <option value="FALSE" selected="true">filter-out</option>\n     </param>\n+    \n+    <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.)">\n+      <sanitizer>\n+        <valid initial="string.letters">\n+          <add preset="string.digits"/>\n+          <add value="&#44;"  /> <!-- comma -->\n+          <add value="&#58;"  /> <!-- colon -->\n+          <add value="&#46;"  /> <!-- dot, period -->\n+        </valid>\n+      </sanitizer>\n+    </param>\n+    \n   </inputs>\n   <outputs>\n     <data name="dataMatrix_out" label="${tool.name}_${dataMatrix_in.name}" format="tabular" ></data>\n@@ -78,6 +92,60 @@\n       <param name="dataMatrix_in" value="input_dataMatrix.tsv"/>\n       <param name="sampleMetadata_in" value="input_sampleMetadata.tsv"/>\n       <param name="variableMetadata_in" value="input_variableMetadata.tsv"/>\n+      <param name="classnameColumn" value="class"/>\n+      <param name="sampleclassNames" value=""/>\n+      <param name="wildcards" value="FALSE"/>\n+      <param name="samplenameColumn" value="sampleMetadata"/>\n+      <param name="inclusive" value="filter-out"/>\n+      <param name="variableRangeFilter" value="FEATMAX:2e6:,mz:200:,rt::800"/>\n+      <output name="sampleMetadata_out">\n+        <assert_contents>\n+          <has_text text="HU_028" />\n+          <has_text text="HU_051" />\n+          <has_text text="HU_060" />\n+          <has_text text="HU_110" />\n+          <has_text text="HU_149" />\n+          <has_text text="HU_152" />\n+          <has_text text="HU_175" />\n+          <has_text text="HU_178" />\n+          <has_text text="HU_185" />\n+          <not_has_text text="HU_204" />\n+          <has_text text="HU_208" />\n+          <has_text text="HU_017" />\n+          <has_text text="HU_034" />\n+          <has_text text="HU_078" />\n+          <has_text text="HU_091" />\n+          <has_text text="HU_093" />\n+          <has_text text="HU_099" />\n+          <has_text text="HU_130" />\n+          <has_text text="HU_134" />\n+          <has_text text="HU_138" />\n+        </assert_contents>\n+      </output>\n+      <output name="variableMetadata_out">\n+        <assert_contents>\n+          <has_text     text="HMDB00191" />\n+          <has_text     text="HMDB00208" />\n+          <not_has_text text="H'..b'er/tests/testthat/expected_sampleMetadata.tsv   |\n-+-------------------+-----------------------------------------------------------------------------------------------------------------+\n-| Variable metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter/master/tests/testthat/expected_variableMetadata.tsv |\n-+-------------------+-----------------------------------------------------------------------------------------------------------------+\n-\n++-------------------+------------------------------------------------------------------------------------------------------------------------------+\n+| Expected Output   | Download from URL                                                                                                            |\n++===================+==============================================================================================================================+\n+| Data matrix       | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/rangefilter_dataMatrix.tsv       |\n++-------------------+------------------------------------------------------------------------------------------------------------------------------+\n+| Sample metadata   | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/rangefilter_sampleMetadata.tsv   |\n++-------------------+------------------------------------------------------------------------------------------------------------------------------+\n+| Variable metadata | https://raw.githubusercontent.com/HegemanLab/w4mclassfilter_galaxy_wrapper/master/test-data/rangefilter_variableMetadata.tsv |\n++-------------------+------------------------------------------------------------------------------------------------------------------------------+\n \n -----------------------------------------------------------------------------\n \n@@ -568,42 +704,54 @@\n NEWS\n ----\n \n-CHANGES IN VERSION 0.98.3\n+Changes in version 0.98.6\n =========================\n \n-INTERNAL MODIFICATIONS\n+New features\n+\n+* Added support for filtering out features whose attributes fall outside specified ranges.\n+  For more detail, see "Variable-range filters" above.\n+  \n+Internal modifications\n+\n+* Now uses w4mclassfilter R package v0.98.6.\n+* 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.\n+\n+Changes in version 0.98.3\n+=========================\n+\n+Internal modifications\n \n * Improved input handling.\n * Now uses w4mclassfilter R package v0.98.3, although that version has no functional implications for this tool.\n * Improved reference-list.\n \n-CHANGES IN VERSION 0.98.2\n+Changes in version 0.98.2\n =========================\n \n-NEW FEATURES\n+New features\n \n * Added support for R-flavored regular expression pattern-matching when selecting names of sample-classes.\n * Empty classes argument or zero-length class_column result in no samples filtered out.\n \n-INTERNAL MODIFICATIONS\n+Internal modifications\n \n * Support and tests for new features.\n \n-\n-CHANGES IN VERSION 0.98.1\n+Changes in version 0.98.1\n =========================\n \n-NEW FEATURES\n-\n First release - Wrap the w4mclassfilter R package that implements filtering of W4M data matrix, variable metadata, and sample metadata by class of sample.\n \n-*dataMatrix* *is* modified by the tool, so it *does* appear as an output file\n-*sampleMetadata* *is* modified by the tool, so it *does* appear as an output file\n-*variableMetadata* *is* modified by the tool, so it *does* appear as an output file\n+New features\n \n-INTERNAL MODIFICATIONS\n+* *dataMatrix* *is* modified by the tool, so it *does* appear as an output file\n+* *sampleMetadata* *is* modified by the tool, so it *does* appear as an output file\n+* *variableMetadata* *is* modified by the tool, so it *does* appear as an output file\n \n-none\n+Internal modifications\n+\n+* N/A\n \n   ]]></help>\n   <citations>\n'
b
diff -r 2cdf7d5982c8 -r 38ccf6722d54 w4mclassfilter_wrapper.R
--- a/w4mclassfilter_wrapper.R Thu Sep 07 17:41:09 2017 -0400
+++ b/w4mclassfilter_wrapper.R Mon Jan 15 14:06:39 2018 -0500
[
@@ -82,8 +82,8 @@
 
 # other parameters
 
+wildcards <- as.logical(argVc["wildcards"])
 sampleclassNames <- as.character(argVc["sampleclassNames"])
-wildcards <- as.logical(argVc["wildcards"])
 sampleclassNames <- strsplit(x = sampleclassNames, split = ",", fixed = TRUE)[[1]]
 if (wildcards) {
   sampleclassNames <- gsub("[.]", "[.]", sampleclassNames)
@@ -93,22 +93,26 @@
 classnameColumn <- as.character(argVc["classnameColumn"])
 samplenameColumn <- as.character(argVc["samplenameColumn"])
 
+variable_range_filter <- as.character(argVc["variable_range_filter"])
+variable_range_filter <- strsplit(x = variable_range_filter, split = ",", fixed = TRUE)[[1]]
+
 ##------------------------------
 ## Computation
 ##------------------------------
 
 result <- w4m_filter_by_sample_class(
-  dataMatrix_in        = dataMatrix_in
-, sampleMetadata_in    = sampleMetadata_in
-, variableMetadata_in  = variableMetadata_in
-, dataMatrix_out       = dataMatrix_out
-, sampleMetadata_out   = sampleMetadata_out
-, variableMetadata_out = variableMetadata_out
-, classes              = sampleclassNames
-, include              = inclusive
-, class_column         = classnameColumn
-, samplename_column    = samplenameColumn
-, failure_action       = my_print
+  dataMatrix_in         = dataMatrix_in
+, sampleMetadata_in     = sampleMetadata_in
+, variableMetadata_in   = variableMetadata_in
+, dataMatrix_out        = dataMatrix_out
+, sampleMetadata_out    = sampleMetadata_out
+, variableMetadata_out  = variableMetadata_out
+, classes               = sampleclassNames
+, include               = inclusive
+, class_column          = classnameColumn
+, samplename_column     = samplenameColumn
+, variable_range_filter = variable_range_filter
+, failure_action        = my_print
 )
 
 my_print("\nResult of '", modNamC, "' Galaxy module call to 'w4mclassfilter::w4m_filter_by_sample_class' R function: ",