From 73a5b8703033349ebf03b6cbd8f4d125fb136651 Mon Sep 17 00:00:00 2001 From: Jiri Novotny Date: Thu, 17 Sep 2020 16:06:55 +0200 Subject: [PATCH 1/3] add aplcms --- tools/aplcms/.shed.yml | 16 +++ tools/aplcms/aplcms_hybrid.xml | 80 +++++++++++++++ tools/aplcms/aplcms_macros.xml | 146 +++++++++++++++++++++++++++ tools/aplcms/aplcms_unsupervised.xml | 70 +++++++++++++ 4 files changed, 312 insertions(+) create mode 100644 tools/aplcms/.shed.yml create mode 100644 tools/aplcms/aplcms_hybrid.xml create mode 100644 tools/aplcms/aplcms_macros.xml create mode 100644 tools/aplcms/aplcms_unsupervised.xml diff --git a/tools/aplcms/.shed.yml b/tools/aplcms/.shed.yml new file mode 100644 index 00000000..81aba750 --- /dev/null +++ b/tools/aplcms/.shed.yml @@ -0,0 +1,16 @@ +owner: recetox +remote_repository_url: "https://github.com/RECETOX/galaxytools/tree/master/tools/aplcms" +homepage_url: "http://web1.sph.emory.edu/apLCMS/" +categories: + - Metabolomics +repositories: + recetox_aplcms_unsupervised: + description: "Generate a feature table from a batch of LC/MS spectra using apLCMS's Unsupervised method." + include: + - aplcms_unsupervised.xml + - aplcms_macros.xml + recetox_aplcms_hybrid: + description: "Generate a feature table from a batch of LC/MS spectra using apLCMS's Hybrid method." + include: + - aplcms_hybrid.xml + - aplcms_macros.xml diff --git a/tools/aplcms/aplcms_hybrid.xml b/tools/aplcms/aplcms_hybrid.xml new file mode 100644 index 00000000..47cbc8df --- /dev/null +++ b/tools/aplcms/aplcms_hybrid.xml @@ -0,0 +1,80 @@ + + + aplcms_macros.xml + + + + + + + + + + + + + + + + + + + + + + This is the Hybrid version of apLCMS which is incorporating the knowledge of known metabolites and historically + detected features on the same machinery to help detect and quantify lower-intensity peaks. + + CAUTION: To use such knowledge, especially historical data, you must keep using (1) the same chromatography + system (otherwise the retention time will not match), and (2) the same type of samples with similar extraction + technique, such as human serum. + + @GENERAL_HELP@ + + + + \ No newline at end of file diff --git a/tools/aplcms/aplcms_macros.xml b/tools/aplcms/aplcms_macros.xml new file mode 100644 index 00000000..ec5155a7 --- /dev/null +++ b/tools/aplcms/aplcms_macros.xml @@ -0,0 +1,146 @@ + + {{tool_version}} + + + + recetox_datatypes + {{container_registry}}:{{tool_version}} + + + + + + + + + + + + +
+ + +
+
+ + +
+ + + + + + + +
+
+ + +
+ + + + + + + + + + + + + + + + + +
+
+ + +
+ + + +
+
+ + +
+ + + + +
+
+ + + apLCMS is a software which generates a feature table from a batch of LC/MS spectra. The m/z and retention time + tolerance levels are estimated from the data. A run-filter is used to detect peaks and remove noise. + Non-parametric statistical methods are used to find-tune peak selection and grouping. After retention time + correction, a feature table is generated by aligning peaks across spectra. For further information on apLCMS + please refer to http://web1.sph.emory.edu/apLCMS. + + + + + 10.1093/bioinformatics/btp291 + 10.1186/1471-2105-11-559 + 10.1021/pr301053d + 10.1093/bioinformatics/btu430 + + +
\ No newline at end of file diff --git a/tools/aplcms/aplcms_unsupervised.xml b/tools/aplcms/aplcms_unsupervised.xml new file mode 100644 index 00000000..73a37e9f --- /dev/null +++ b/tools/aplcms/aplcms_unsupervised.xml @@ -0,0 +1,70 @@ + + + aplcms_macros.xml + + + + + + + + + + + + + + + + + + + + This is the Unsupervised version of apLCMS which is not relying on any existing knowledge about metabolites or + any historically detected features. For such functionality please use the Hybrid version of apLCMS. + + @GENERAL_HELP@ + + + + \ No newline at end of file From 890ce18667d04f003722cd6a6bda138c58f77d38 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Thu, 17 Sep 2020 19:40:16 +0200 Subject: [PATCH 2/3] switch to public image --- tools/aplcms/aplcms_hybrid.xml | 4 ++-- tools/aplcms/aplcms_macros.xml | 6 +++--- tools/aplcms/aplcms_unsupervised.xml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/aplcms/aplcms_hybrid.xml b/tools/aplcms/aplcms_hybrid.xml index 47cbc8df..bfa911d9 100644 --- a/tools/aplcms/aplcms_hybrid.xml +++ b/tools/aplcms/aplcms_hybrid.xml @@ -1,4 +1,4 @@ - + aplcms_macros.xml @@ -77,4 +77,4 @@ - \ No newline at end of file + diff --git a/tools/aplcms/aplcms_macros.xml b/tools/aplcms/aplcms_macros.xml index ec5155a7..002a4447 100644 --- a/tools/aplcms/aplcms_macros.xml +++ b/tools/aplcms/aplcms_macros.xml @@ -1,10 +1,10 @@ - {{tool_version}} + 6.6.6 recetox_datatypes - {{container_registry}}:{{tool_version}} + recetox/aplcms:6.6.6-recetox0 @@ -143,4 +143,4 @@ 10.1093/bioinformatics/btu430 - \ No newline at end of file + diff --git a/tools/aplcms/aplcms_unsupervised.xml b/tools/aplcms/aplcms_unsupervised.xml index 73a37e9f..c4461c18 100644 --- a/tools/aplcms/aplcms_unsupervised.xml +++ b/tools/aplcms/aplcms_unsupervised.xml @@ -1,4 +1,4 @@ - + aplcms_macros.xml @@ -67,4 +67,4 @@ - \ No newline at end of file + From 3ab532b1ec8e0565bafa463bc8758042a449d9bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Novotn=C3=BD?= <409963@muni.cz> Date: Thu, 24 Sep 2020 01:16:20 +0200 Subject: [PATCH 3/3] Migrate towards HDF5 outputs --- tools/aplcms/aplcms_hybrid.xml | 27 +++++++++++---------------- tools/aplcms/aplcms_unsupervised.xml | 21 ++++++++------------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/tools/aplcms/aplcms_hybrid.xml b/tools/aplcms/aplcms_hybrid.xml index bfa911d9..2cb47a4a 100644 --- a/tools/aplcms/aplcms_hybrid.xml +++ b/tools/aplcms/aplcms_hybrid.xml @@ -9,9 +9,9 @@ #set file_str = str('", "').join([str($f) for $f in $files]) Rscript - -e 'result <- apLCMS::hybrid( + -e 'x <- apLCMS::hybrid( files = c("$file_str"), - known_table = arrow::read_feather("$known_table"), + known_table = rhdf5::h5read("$known_table", "aplcms_known_table"), min_exp = $noise_filtering.min_exp, min_pres = $noise_filtering.min_pres, min_run = $noise_filtering.min_run, @@ -38,13 +38,13 @@ use_observed_range = $weak_signal_recovery.use_observed_range, recover_min_count = $weak_signal_recovery.recover_min_count )' - -e 'arrow::write_feather(result\$final_times, "$times")' - -e 'arrow::write_feather(result\$final_features, "$features")' - -e 'arrow::write_feather(result\$updated_known_table, "$updated_known_table")' - -e 'arrow::write_feather(result\$aligned_times, "$aligned_times")' - -e 'arrow::write_feather(result\$aligned_features, "$aligned_features")' - -e 'arrow::write_feather(result\$corrected_features, "$corrected_features")' - -e 'arrow::write_feather(result\$extracted_features, "$extracted_features")' + -e 'rhdf5::h5write(x\$final_peaks, "$peaks", "peaks")' + -e 'rhdf5::h5write(x\$aligned_peaks, "$peaks", "aligned_peaks")' + -e 'rhdf5::h5write(x\$corrected_features, "$peaks", "corrected_features")' + -e 'rhdf5::h5write(x\$extracted_features, "$peaks", "extracted_features")' + -e 'rhdf5::h5write(x\$aligned_mz_tolerance, "$peaks", "aligned_mz_tolerance")' + -e 'rhdf5::h5write(x\$aligned_rt_tolerance, "$peaks", "aligned_rt_tolerance")' + -e 'rhdf5::h5write(x\$updated_known_table, "$updated_known_table", "aplcms_known_table")' ]]> @@ -56,13 +56,8 @@ - - - - diff --git a/tools/aplcms/aplcms_unsupervised.xml b/tools/aplcms/aplcms_unsupervised.xml index c4461c18..a361104f 100644 --- a/tools/aplcms/aplcms_unsupervised.xml +++ b/tools/aplcms/aplcms_unsupervised.xml @@ -9,7 +9,7 @@ #set file_str = str('", "').join([str($f) for $f in $files]) Rscript - -e 'result <- apLCMS::unsupervised( + -e 'x <- apLCMS::unsupervised( files = c("$file_str"), min_exp = $noise_filtering.min_exp, min_pres = $noise_filtering.min_pres, @@ -35,12 +35,12 @@ use_observed_range = $weak_signal_recovery.use_observed_range, recover_min_count = $weak_signal_recovery.recover_min_count )' - -e 'arrow::write_feather(result\$final_times, "$times")' - -e 'arrow::write_feather(result\$final_features, "$features")' - -e 'arrow::write_feather(result\$aligned_times, "$aligned_times")' - -e 'arrow::write_feather(result\$aligned_features, "$aligned_features")' - -e 'arrow::write_feather(result\$corrected_features, "$corrected_features")' - -e 'arrow::write_feather(result\$extracted_features, "$extracted_features")' + -e 'rhdf5::h5write(x\$final_peaks, "$peaks", "peaks")' + -e 'rhdf5::h5write(x\$aligned_peaks, "$peaks", "aligned_peaks")' + -e 'rhdf5::h5write(x\$corrected_features, "$peaks", "corrected_features")' + -e 'rhdf5::h5write(x\$extracted_features, "$peaks", "extracted_features")' + -e 'rhdf5::h5write(x\$aligned_mz_tolerance, "$peaks", "aligned_mz_tolerance")' + -e 'rhdf5::h5write(x\$aligned_rt_tolerance, "$peaks", "aligned_rt_tolerance")' ]]> @@ -51,12 +51,7 @@ - - -