ElucidataInc / ElMaven

LC-MS data processing tool for large-scale metabolomics experiments.
https://resources.elucidata.io/elmaven/
GNU General Public License v2.0
88 stars 52 forks source link

Missing peak detection for isotopologues #1255

Open LuojiaoHuang opened 4 years ago

LuojiaoHuang commented 4 years ago

Describe the bug I was working with 13C labeled LC-MS data in El-MAVEN (v0.10.0). To discover all isotopic peaks when the parent peak abundance is 0, we imported one unlabeled sample together with three labeled samples. After performing peak detection according to a defined database, all good peaks were shown in a bookmark table. The problem we saw from the table results were that isotopic peaks were not correctly detected. There were missing (unsolid) circles assigned for some existing peaks. It happens to most metabolites. We have tried changing related parameters: distX Weight, distY Weight (value: 1, 2, 6), match retention time (value: 0.25, 0.5), isotope is within [x] scans of parent (value: 1, 5). The problem couldn't be fixed

To Reproduce Steps to reproduce the behavior:

  1. Go to Align, then peaks
  2. Click on 'find peaks'
  3. See error 1) parent peak deetction parent peak deetction

    2) 13C-label-3 peak detection 13C-label-3 peak detection

    3) 13C-label-3 peak detection missing in the second sample 13C-label-3 peak detection missing in the second sample

System:

saifulbkhan commented 4 years ago

Hi @624284916. Thanks for reporting. I was able to reproduce this just now. We will definitely look into this and let you know when the fix is available.

rmtfleming commented 4 years ago

@saifulbkhan Have you been able to resolve this issue? We are considering now whether we can continue with ElMaven or must switch to another solution so we need to make a decision.

saifulbkhan commented 4 years ago

@rmtfleming This issue is part of the v0.11.0 plan. The tentative date for this release is May 15th. We might be able to share an internal build with this issue fixed, sooner, but with such builds there's a high chance of encountering bugs and other stability issues. Please allow us the time to properly resolve this.

chubukov commented 4 years ago

@saifulbkhan any chance you could provide a short description of the underlying cause of the bug? it would be great to evaluate whether we expect it to affect our workflow as well

saifulbkhan commented 4 years ago

@chubukov I did a bit of inspection and the issue seems to be that, the initial search for an intensity value for each isotope has been limited to only ± 2 scans from the parent peak's scan. The setting "Isotope is within [X] scans of parent", is only later applied for finding the nearest chromatographic peak - but only after it is confirmed that there is some intensity within 2 scans of the parent peak at isotope's m/z. The fix would be to adjust the initial scan range based on the user's setting.

This issue exists on older versions as far back as v0.8.0, at least. Probably even older. The isotope detection module has not seen much change over the last two years.

chubukov commented 4 years ago

@saifulbkhan hm, I think understand what you're saying, but from the screenshots, it looks like there should be non-zero intensities all along the relevant rt range, no?

@624284916 have you tried lowering the minimum isotope-parent correlation?

saifulbkhan commented 4 years ago

@chubukov Good point. It could be getting filtered out because of isotope-parent correlation, but the default (0.2) is low enough to allow peak shapes that are very different from parent, to pass through. Unless that correlation setting was raised.

vincentroyrichard commented 3 years ago

Hi I seem to be having the same issue, was a solution to this problem ever found?

Thanks !

saif-el commented 3 years ago

@vincentroyrichard Are you facing this issue in the latest version (which is v0.12.0). The entire isotope-detection method was rewritten to resolve many issues including this one. So if you are still getting this, it is likely that it can be fixed using some setting adjustment.