KNIME for LCMS Drug Metabolite Quantitation?

Has anyone used KNIME (potentially along with OpenMS) for drug metabolite quantitation?

I’ve been digging through the modules, and a lot of them look like they are geared toward peptides analysis. I’m not sure how transferrable those modules are for less-complex quantitation.

Basically, I use Waters UHPLC/MS instruments, and I would like to quantitate them through a KNIME workflow. I’ve got quantitation methods (.mdb), and sample files (.raw). I have successfully converted the .raw files to .mzml, but I do not know how to use the .mdb file to re-create my quantitation method / metabolite identification in KNIME.

Any insight into the specific problem of just getting all of the necessary data converted and put to use would be great. If someone here has already done this or something similar, I’d love to know how your workflow was set up.

Hello bsnyder, I am the author of a workflow (Kimble) that does something similar for NMR metabolite quantitation https://cpm.lumc.nl/kimble, but for LCMS perhaps you can try KniMet: https://dx.doi.org/10.1007%2Fs11306-018-1349-5

Aswin,

Thank you for the quick response!
Following your suggestion, I’ll be giving KniMet a try this week. It sounds like I may be able to do some comparative work based on your Kimble workflow as well, so thank you for that link. I’ll post some updates to this thread as I go, in case anyone else needs to reference it in the future for their related projects.

@bsnyder, I am looking forward to your updates. I think Knime is excellent for this type of work.

Update 1:
I have not had as much time to work on this as I would like, however I have managed to get my .raw files converted with ProteoWizard to .mzML. I then set up a workflow consisting of:
[Input Files] > [Zip Loop Start] > [Noise Filter Gaussian] > [Resampler] > [Zip Loop End] > [Output Folder]

This workflow performs as expected, but when I try to attach either the [Baseline Filter] or the [PeakPickerWavelet] nodes to the [Resampler], I receive the following kind of error:


_ERROR PeakPickerWavelet 5:5 _

_Failing process stdout: [Debug level (after ini file): 1, _

_Value of string option ‘no_progress’: 0, _

_Value of string option ‘in’: C:\Users\admin001\Desktop\Advanta Analytical - Ascent Files Initial\Ascent - Waters\02 - Waters P60 Batch 1\170916 W3 A P60 KNW PNA 1_01.mzML, _

_Value of string option ‘out’: C:\Users\admin001\AppData\Local\Temp\knime_Workflow Manage47367\knime_fs-ZipLoopStart_5_8-47378\000\000\2_0_PeakPickerWavelet_0\170916 W3 A P60 KNW PNA 1_01.mzML, _

_Value of string option ‘write_peak_meta_data’: 0, _

_C:\jenkins\ws\openms_release_packaging\c2e226b2\source\src\openms\source\FORMAT\HANDLERS\XMLHandler.cpp(144): While loading ‘C:\Users\admin001\Desktop\Advanta Analytical - Ascent Files Initial\Ascent - Waters\02 - Waters P60 Batch 1\170916 W3 A P60 KNW PNA 1_01.mzML’: Ill formed absolute or relative sourceFile path: file://C:\Users\admin001\Desktop\Advanta Analytical - Ascent Files Initial\Ascent - Waters\02 - Waters P60 Batch 1\170916 W3 A P60 JF PNA 1 Raw Folders\170916 W3 A P60 KNW PNA 1_01.raw, _

_Progress of ‘loading chromatogram list’:, _

C:\jenkins\ws\openms_release_packaging\c2e226b2\source\src\openms\source\FORMAT\HANDLERS\XMLHandler.cpp(144): While loading ‘C:\Users\admin001\Desktop\Advanta Analytical - Ascent Files Initial\Ascent - Waters\02 - Waters P60 Batch 1\170916 W3 A P60 KNW PNA 1_01.mzML’: Unhandled cvParam ‘MS:1000130’ in tag ‘chromatogram’.,

_ ,_

_-- done [took 0.02 s (CPU), 0.01 s (Wall)] – , PeakPickerWavelet took 0.13 s (wall), 0.13 s (CPU), 0.02 s (system), 0.11 s (user)., Peak Memory Usage: 24 MB, _

The given file does not contain any conventional peak data, but might contain chromatograms. This tool currently cannot handle them, sorry.]

ERROR PeakPickerWavelet 5:5 Failing process stderr: []
ERROR PeakPickerWavelet 5:5 Execute failed: Failed to execute node PeakPickerWavelet


I’m not sure what is going wrong here, so at the moment I’m just trying different things.
Because I can open my .mzML files from the workflow before using [PeakPickerWavelet], I am somewhat reluctant to think that there is a problem with my upstream nodes.

You are implementing your own openms-based workflow? Cool! As for the error message, unfortunately I have not yet converted my LCMS colleagues to Knime, and I work exclusively with NMR, so I cannot be of much help.

@Aswin:
Yeah, to a large extent. I am basing the sequence of the workflow off of KniMet, but modifying some parts of it to better-suit my needs. Their solution also calls for using R with XCMS to do some filtering/data manipulation, while mine is just going to use KNIME nodes (hopefully) to do most of my smoothing, picking, calibration, and quantitation.

I just hope I can get it all to work. I’ve experimented with all three of the PeakPickers (Wavelet, Hi-Res, and Iterative), and there’s definitely something that I’m missing. PPWavelet fails to work with any of a plethora of settings I’ve applied. Hi-Res works, but the resulting peaks go from smooth curves to pointy, unfinished triangles. Iterative will process my data, but when I view it in ToppView, I get an error that says there are no peaks in the file.

I’m going to see if I can just run from [NoiseFilterGaussian] > [Resampler] > [FeatureFinderMetabo] without a PeakPicker in between. Definitely going to be an experiment. I hope I’m not the only one who finds the process challenging!