MetaSys-LISBP / IsoCor

IsoCor: Isotope Correction for mass spectrometry labeling experiments
https://isocor.readthedocs.io
GNU General Public License v3.0
24 stars 9 forks source link

Correction created new isotopologues #26

Closed chuyaowang closed 1 year ago

chuyaowang commented 1 year ago

Hello, I just used isocor2 to correct my mass distribution vector data. I noticed that in the result, there are areas for isotopologues that were not detected before correction, like this one:

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">

sample | metabolite | derivative | isotopologue | isotopic_inchi | area | corrected_area | isotopologue_fraction | residuum | mean_enrichment -- | -- | -- | -- | -- | -- | -- | -- | -- | -- Sample_ 4 | Lys |   | 0 | /a(C6+0) | 9216906 | 7964483 | 0.610855 | 5.48E-06 | 0.379587 Sample_ 4 | Lys |   | 1 | /a(C1+1),(C5+0) | 1900426 | 0 | 0 | -0.00689 | 0.379587 Sample_ 4 | Lys |   | 2 | /a(C2+1),(C4+0) | 1473943 | 0 | 0 | 0.021652 | 0.379587 Sample_ 4 | Lys |   | 3 | /a(C3+1),(C3+0) | 0 | 0 | 0 | -0.03084 | 0.379587 Sample_ 4 | Lys |   | 4 | /a(C4+1),(C2+0) | 0 | 0 | 0 | -0.00561 | 0.379587 Sample_ 4 | Lys |   | 5 | /a(C5+1),(C1+0) | 0 | 747765.2 | 0.057352 | -0.00054 | 0.379587 Sample_ 4 | Lys |   | 6 | /a(C6+1) | 0 | 4326014 | 0.331794 | -2.23E-05 | 0.379587

The M+5 and M+6 isotopologues were not detected before correction, yet have values after correction. Am I doing something wrong here? How to interpret this added area?

pierremillard commented 1 year ago

Hello @chuyaowang

this is the expected outcome. The 'corrected area' corresponds to the areas corrected for the contribution of naturally occurring isotopes and isotopic purity of the tracer, i.e. the expected measured areas if there was no naturally occurring isotopes and if the label input was isotopically pure (100% of tracer isotope).

Let's take the example of a molecule with elemental formula 'C2' which is corrected only for the natural abundance of carbon isotopes, and with measured areas of 0 / 100 / 0 for M0 / M1 / M2, respectively. If the isotopic purity is set at 99%, IsoCor will correct areas of M0, M1 and M2 for the contribution of 12C from the impurities of the label input. The results are:

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">

sample | metabolite | derivative | isotopologue | isotopic_inchi | area | corrected_area | isotopologue_fraction | residuum | mean_enrichment -- | -- | -- | -- | -- | -- | -- | -- | -- | -- Sample_1 | C2 |   | 0 | /a(C2+0) | 0 | 0 | 0 | -0.01009998 | 0.50000052 Sample_1 | C2 |   | 1 | /a(C1+1),(C1+0) | 100 | 100.999794 | 0.99999896 | 0.00010202 | 0.50000052 Sample_1 | C2 |   | 2 | /a(C2+1) | 0 | 0.00010514 | 1.04E-06 | -1.03E-06 | 0.50000052

As you can see, the area of M2 is no longer 0 but 0.000105142842413808. Importantly, this might reflect a bias in the measured areas of some isotopologues. This bias can be evaluated based on the values of the column "residuum", which should be close to 0 if no inconsistencies are detected in the input data. In the example above, you can see a residuum in M0 of ~0.01, which means that, in theory, we should have detected about 1% of M0. In your data, you can see that the residuum of some isotopologues is not 0. It is about 2% for M2 and 3% for M3. In this case, I would check the chromatogram to see if all the peaks have been correctly integrated.

Hope this helps.

Best, Pierre

chuyaowang commented 1 year ago

Thanks for your explanation! We were using a combination of 80% C12 and 20% C13 fully labeled glucose. So the purity is 0.2. I think this could be why the correction values were high.

On Friday, March 31, 2023, Pierre Millard @.***> wrote:

Hello @chuyaowang https://github.com/chuyaowang

this is the expected outcome. The 'corrected area' corresponds to the areas corrected for the contribution of naturally occurring isotopes and isotopic purity of the tracer, i.e. the expected measured areas if there was no naturally occurring isotopes and if the label input was isotopically pure (100% of tracer isotope).

Let's take the example of a molecule with elemental formula 'C2' which is corrected only for the natural abundance of carbon isotopes, and with measured areas of 0 / 100 / 0 for M0 / M1 / M2, respectively. If the isotopic purity is set at 99%, IsoCor will correct areas of M0, M1 and M2 for the contribution of 12C from the impurities of the label input. The results are: sample metabolite derivative isotopologue isotopic_inchi area corrected_area isotopologue_fraction residuum mean_enrichment Sample_1 C2 0 /a(C2+0) 0 0 0 -0.01009998 0.50000052 Sample_1 C2 1 /a(C1+1),(C1+0) 100 100.999794 0.99999896 0.00010202 0.50000052 Sample_1 C2 2 /a(C2+1) 0 0.00010514 1.04E-06 -1.03E-06 0.50000052

As you can see, the area of M2 is no longer 0 but 0.000105142842413808. Importantly, this might reflect a bias in the measured areas of some isotopologues. This bias can be evaluated based on the values of the column "residuum", which should be close to 0 if no inconsistencies are detected in the input data. In the example above, you can see a residuum in M0 of ~0.01, which means that, in theory, we should have detected about 1% of M0. In your data, you can see that the residuum of some isotopologues is not 0. It is about 2% for M2 and 3% for M3. In this case, I would check the chromatogram to see if all the peaks have been correctly integrated.

Hope this helps.

Best, Pierre

— Reply to this email directly, view it on GitHub https://github.com/MetaSys-LISBP/IsoCor/issues/26#issuecomment-1491865406, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUJKUZGM54WL3YALFGVHT43W63F4LANCNFSM6AAAAAAVBT3HOA . You are receiving this because you were mentioned.Message ID: @.***>

pierremillard commented 1 year ago

Hello @chuyaowang

the purity does not correspond to the proportion of 13C glucose you use in the experiment. It corresponds to the isotopic purity of 13C isotopes at the labeled positions of the 13C glucose. For instance, if you use 1-13C1-glucose from sigma aldrich (https://www.sigmaaldrich.com/FR/fr/substance/dglucose113c1811540762229) the purity is 99%

This may explain the inconsistency in the corrected data.

chuyaowang commented 1 year ago

I was thinking if 20% U-13C glucose was mixed with 80% unlabeled glucose, that would be equivalent to using a U-13C glucose with 20% isotopic purity at each carbon position. Thank you for the clarification, but I think the 80% unlabeled glucose should still affect the measured mass isotopomer distribution in some way. Should this be modeled in the metabolic flux analysis step instead?

On Fri, Apr 14, 2023 at 5:14 PM Pierre Millard @.***> wrote:

Reopened #26 https://github.com/MetaSys-LISBP/IsoCor/issues/26.

— Reply to this email directly, view it on GitHub https://github.com/MetaSys-LISBP/IsoCor/issues/26#event-9005680535, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUJKUZBOFWC4XDMEZSQHMJTXBEIQHANCNFSM6AAAAAAVBT3HOA . You are receiving this because you were mentioned.Message ID: @.***>

pierremillard commented 1 year ago

Yes, the label input (80% unlabeled glucose, 20%U-13C) must be given at the metabolic flux analysis step, not for correction of MS data for naturally occuring isotopes.

chuyaowang commented 1 year ago

Hello, I wonder if you are familiar with modeling the mixing of unlabeled and labeled glucose? I couldn't find many references describing how to do it except this section from the INCA help document:

It is also possible to introduce G dilution parameters into isotopomer models using pseudofluxes. These parameters were originally introduced as part of the Isotopomer Spectral Analysis (ISA) framework to account for lack of isotopic steady-state in biosynthetic products derived from condensation reactions [23]. (The socalled D parameters used by ISA, on the other hand, do not require pseudofluxes because they reflect true dilution of the tracer before it enters the system. This type of dilution can be modeled simply by including two reactions that produce the labeled substrate: one that derives from the tracer and another that derives from an unlabeled source.)

I believe the D parameter is appropriate for our case, but I am uncertain on how to write the reactions to produce the labeled substrate. Right now we have these equations regarding glucose entry into the network: Glc(abcdef)<->G6P(abcdef) Glc.ext(abcdef)->Glc(abcdef) I think the help document means adding a 3rd equation like Glc12.ext(abcdef)->Glc(abcdef) and fixing the flux of the 2nd and 3rd equation to 20 and 80, but I am not sure if this is correct.

pierremillard commented 1 year ago

Hello @chuyaowang

Yes I am familiar with flux calculation and your suggestion is correct. Still, IsoCor is dedicated to the correction of MS data for naturally occurring isotopes and not to flux calculation. I would suggest addressing questions about flux calculation on the issue tracker of influx_si, a software for 13C-flux calculations developed by @sgsokol and available at https://github.com/sgsokol/influx (doc at https://influx-si.readthedocs.io/en/latest/ ).

Best, Pierre