I’m new to using both Knime (v 4.0.0) and OpenMS on metabolomics data processing and I’m having a hard time getting past the MapAlignerPoseClustering and FeatureLinkerUnlabeledQT steps. I’ve tried to follow this workflow from tutorial section 5 exactly, but it leads to errors on the aforementioned steps.
Some details: I’m using a Windows virtual machine and using as many as 10 .mzML files obtained through centroiding with ProteoWizard.
The steps from input -> ziploopEnd seem to execute without any issues.
For MapAlignerPoseClustering, I get this error:
ERROR MapAlignerPoseClustering 2:5 Failing process stdout: [Picking a reference (by size) … done, Progress of ‘Aligning input maps’:, FeatureXMLFile::store(): found 1 invalid unique ids, , ---------------------------------------------------, FATAL: uncaught exception!, ---------------------------------------------------, last entry in the exception handler: , exception of type IllegalArgument occured in line 742, function void __cdecl OpenMS::PoseClusteringAffineSuperimposer::run(const class std::vector<class OpenMS::Peak2D,class std::allocator > &,const class std::vector<class OpenMS::Peak2D,class std::allocator > &,class OpenMS::TransformationDescription &) of C:\jenkins\ws\openms_release_packaging\c2e226b2\source\src\openms\source\ANALYSIS\MAPMATCHING\PoseClusteringAffineSuperimposer.cpp, error message: One of the input maps is empty! This is not allowed!, ---------------------------------------------------]
ERROR MapAlignerPoseClustering 2:5 Failing process stderr:
ERROR MapAlignerPoseClustering 2:5 Execute failed: Failed to execute node MapAlignerPoseClustering
For the FeatureLinkerUnlabeledQT step, my error message is:
ERROR FeatureLinkerUnlabeledQT 2:6 Failing process stdout: [Linking 2 featureXMLs., Progress of ‘reading input’:, , – done [took 0.00 s (CPU), 0.00 s (Wall)] – ]
ERROR FeatureLinkerUnlabeledQT 2:6 Failing process stderr:
ERROR FeatureLinkerUnlabeledQT 2:6 Execute failed: Failed to execute node FeatureLinkerUnlabeledQT
What can be going wrong? Is my feature finding not yielding any output?
Indeed that might be the case for at least one of your inputs.
You can check the standard output of the previous FeatureFinder by right-clicking
on it and selecting “View: Standard Output”.
It hopefully complains about something during feature finding.
This is what the “Standard Output” looks like below. It’s telling me that there is an “unknown parameter ‘noise_threshold_int’”. Kind of confusing seeing how this is a supplied parameter to the FeatureFinder.
I changed its value a few times- 1000, 10, 5- but still the same result.
Also this message, “found 1 invalid unique ids”… I don’t know what the deal with that is.
I’ve tried different combinations of files and the result is always the same. These .mzML files run fine with other preprocessing programs like XCMS & MZMine2, so I don’t think the files themselves are the problem.
If it helps at all, I’ve attached the images of these parameter sets. Do you see parameter here that could lead to these errors?
Thanks for all the information. But let’s continue the discussion on the OpenMS GitHub since it turned out to be about the tool(s) itself
Is there any updates on this?
I have exactly the same problem. I am using the exact example from here https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Tutorials/Handout/master/handout.pdf “Label-free quantification of metabolites”. The error I get from MapAlignerPoseClustering is:
Picking a reference (by size) … done, Progress of ‘Aligning input maps’:, , ---------------------------------------------------, FATAL: uncaught exception!, ---------------------------------------------------, last entry in the exception handler: , exception of type InvalidValue occured in line 1039, function virtual void OpenMS::PoseClusteringAffineSuperimposer::run(const std::vectorOpenMS::Peak2D&, const std::vectorOpenMS::Peak2D&, OpenMS::TransformationDescription&) of /home/jenkins/ws/openms_release_packaging/40c74027/source/src/openms/source/ANALYSIS/MAPMATCHING/PoseClusteringAffineSuperimposer.cpp, error message: the value ‘-nan’ was used but is not valid; Superimposer could not compute an initial transformation!You can try to increase ‘max_num_peaks_considered’ to solve this.
The FeatureFinderMetabo parameters are exactly as the example and the second output port is Inactive.
The files I use are of the example: 2012_02_03_PStd_10_1.mzML, 2012_02_03_PStd_10_2.mzML, 2012_02_03_PStd_10_3.mzML, 2012_02_03_PStd_050_1.mzML, 2012_02_03_PStd_050_2.mzML, 2012_02_03_PStd_050_3.mzML
and the std output of FeatureFinderMetabo is:
File ‘/home/kostas/.OpenMS/OpenMS.ini’ is deprecated.
Updating missing/wrong entries in ‘/home/kostas/.OpenMS/OpenMS.ini’ with defaults!
Progress of ‘loading spectra list’:
– done [took 3.66 s (CPU), 3.66 s (Wall)] –
Progress of ‘loading chromatogram list’:
– done [took 0.00 s (CPU), 0.00 s (Wall)] –
Progress of ‘mass trace detection’:
– done [took 50.53 s (CPU), 50.55 s (Wall)] –
Warning: ElutionPeakDetection received the unknown parameter ‘noise_threshold_int’!
Progress of ‘elution peak detection’:
– done [took 0.45 s (CPU), 0.45 s (Wall)] –
Progress of ‘assembling mass traces to features’:
Loading metabolite isotope model with 5% RMS error
– done [took 0.42 s (CPU), 0.43 s (Wall)] –
– FF-Metabo stats –
Input traces: 2978
Output features: 2515 (total trace count: 2978)
Progress of ‘Storing featureXML file’:
– done [took 1.28 s (CPU), 1.27 s (Wall)] –
FeatureFinderMetabo took 58.13 s (wall), 58.11 s (CPU), 0.15 s (system), 57.96 s (user).
as mentioned in the linked GitHub issue, this was fixed in the nightly version of OpenMS under the update site:
It will also appear in the 2.5 release probably in the upcoming week.
Thank you very much for your answer! Ok…I just saw what is a nightly version. However it says it not for production and that it not as thouroughly checked as the standard versions. I am using knime 3.7.2 but I also tried with knime 4.1.1 and still fails in MapAlignerPoseClustering(version 2.4). Any ideas of when is the next Knime release? It seems I can not access the link, it says “Forbidden: You don’t have permission to access this resource.”
Ah! There was a slight misunderstanding here.
I was talking about the nightly version of the OpenMS plugin in KNIME. You can usually use any recent KNIME version (4.1 is perfect).
Then follow these steps:
And then install/update the plugin.
Yes, it is not for production use but there will also be a stable release next week.
Thank you so much for your time and effort! I used the nightly version and it worked as you said!
Unfortunately now there is an other problem. The Joiner (“Combine ID and Quantification Data”) created an empty data table. I checked the values of the bottom table(23 rows) with the values of the top table(44051 rows) and they exist. I am doing an inner join on retention_time-rt_cf and exp_mass_to_charge-mz_cf, as it was by default. I checked for white spaces and there aren’t any. Also the types(Double) are all the same. If I use left or outer or full join the node is not creating any empty table.
I really do not know why the Joiner is not working properly in the nightly version. If I do not use the nightly version and use my previous version with width_filtering=auto in FeatureFinderMetabo, then Joiner works. But with the previous version if I put width_filtering=off(as the suggested parameters from the Metabolite_ID workflow are) I get the MapAlignerPoseClustering error. Is it possible that the width_filtering=off with the joiner(“Combine ID and Quantification Data”) in the nightly version are somehow influencing each other, or lack of some type of compatibilty?
Interesting, thank you for the detailed description. I will have a look at it myself.
I am guessing that maybe column names/types changed since 2.4?
Thank you very much! Interestingly, if I do inner join only on retention_time-rt_cf OR exp_mass_to_charge-mz_cf I get some results, but I do not get any results if I do inner join on both! It looks like it cannot find any common rows based on these two columns. I also checked the column names/types again and everything is the same. I will keep looking…
Hmm unfortunately I cannot reproduce the empty Joiner results.
Can you re-download the newest version of the workflow as well?
So, I downloaded the last version of the workflow, I used Knime 4.1.1 with the nightly version of openMS, I updated the nodes FeatureFinderMetabo, MapAlignerPoseClustering, FeatureLinkerUnlabeledQT, FileConverter, Text Exporter and AccurateMassSearch with the ones from the nightly version. I used the optimized parmeters from the handout(https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Tutorials/Handout/master/handout.pdf ). Still the empty joiner data table.
However, if I do not use the optimized parameters from the handout the joiner works and gives 87 common rows…but they are wrong because there supposed to result in metabolites like Nialamide, Reserpine, Terfenadine, Propionyl-L-carnitine-d3, Sulfadimethoxine-d6.
Are you using the tutorial data or own data?
Edit: sorry about the second question. I overread your sentence.
No worries! On the contrary thank you very much for your time! I am using the tutorial data:
2012_02_03_PStd_10_1.mzML, 2012_02_03_PStd_10_2.mzML, 2012_02_03_PStd_10_3.mzML, 2012_02_03_PStd_050_1.mzML, 2012_02_03_PStd_050_2.mzML, 2012_02_03_PStd_050_3.mzML
It looks that optimizing the parameters of FeatureFinderMetabo causes join an empty table, but still even if I do not optimize it I get wrong results.
Sorry I could not help, I redirected the question to a Metabolomics expert.
Quick follow-up from myself: How do you know, that there should be metabolites like Nialamide, … ?
Do you know the dataset?
Thanks a lot! There supposed to be 7 metabolites(Propionyl-L-carnitine-d3,Nialamide,Sulfadimethoxine-d6,Reserpine,Terfenadine,Hexadecanoyl-L-carnitine-d3,Octadecanoyl-L-carnitine-d3) among others. It comes from the original paper/publication of FeatureFinderMetabo (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3879626/pdf/zjw348.pdf - Table I, p. 353) where they used those 6 files to end up to the results of the paper, meaning a handful of metabolites.
Aaah! Thanks for clarifying. We will see that we can reproduce those results again. A lot of things probably changed in-between (hopefully not for the worse).
BUT: I am not sure if we are using the full data though in the tutorials.
It might well be that we:
a) took a subset of the files
b) cut the files at certain RT or m/z limits to make them smaller for our tutorials
Edit: And: They are heavily filtered to exclude false discoveries. I would need to recheck the paper if the same cutoffs were applied.