-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transport of Thiamine Di- and Monophosphate Between Cytosol and Mitochondria #783
Comments
Nice Result! I have checked all the information mentioned here and agree with your proposal. But I have one doubt. In the current model, there is H2O-mediated reverse transport of thiamine diphosphate (MAM02984m) and thiamine monophosphate (MAM02983m) across the mitochondrial intima, which is basically equivalent to these two mets can freely enter and exit the mitochondria. However, in your proposal, thiamine diphosphate (MAM02984m) and thiamine monophosphate (MAM02983m) cannot freely across the inner mitochondrial membrane. Whether this will cause some simulations to change is unclear. |
I did FVA on version 1.18 of Human-GEM, made the proposed changes to the [c] <-> [m] thiamine transport reactions, did FVA again, and found that there were only 2 reactions whose ranges of possible fluxes changed:
The only reactions that hydroxide [m] ( No net flux of thiamin-PP between [c] and [m] is possible before making the proposed changes, but net fluxes of up to 2,000 in either direction are possible after making the proposed changes. No net flux of thiamin-P between [c] and [m] is possible with or without the proposed changes; I'm not sure why. It would be ideal if we figured out what's preventing fluxes of thiamin-P into or out of [m], but since that is already a problem, I feel like it's not unreasonable to make the proposed changes to the transport reactions and figure out what else is wrong with Human-GEM's representation of thiamine metabolism later. Python code I used to generate the results described aboveimport sys
from optlang.glpk_interface import Configuration
import cobra
try:
threads = int(sys.argv[1])
except:
sys.exit('provide number of threads to use')
Configuration()
old_model = cobra.io.load_json_model('generic_models/Human-GEMv1.18.json')
# do FVA on version 1.18 of Human-GEM
old_fva = cobra.flux_analysis.flux_variability_analysis(
old_model, processes = threads
).applymap(lambda x: round(x, 3))
# remove existing thiamine-PP and thiamine-P [c] <-> [m] transport reactions
new_model = old_model.copy()
new_model.remove_reactions([
'MAR01788', 'MAR01789', 'MAR04205', 'MAR08745', 'MAR08747'
])
# create the three proposed new reactions
thpp_c = new_model.metabolites.get_by_id('MAM02984c')
thp_c = new_model.metabolites.get_by_id('MAM02983c')
datp_c = new_model.metabolites.get_by_id('MAM01642c')
thpp_m = new_model.metabolites.get_by_id('MAM02984m')
thp_m = new_model.metabolites.get_by_id('MAM02983m')
datp_m = new_model.metabolites.get_by_id('MAM01642m')
rxn_1 = cobra.Reaction('thp_thpp', lower_bound = -1000, upper_bound = 1000)
rxn_1.add_metabolites({thp_c : -1, thpp_m : -1, thp_m : 1, thpp_c : 1})
rxn_2 = cobra.Reaction('datp_thp', lower_bound = -1000, upper_bound = 1000)
rxn_2.add_metabolites({datp_c : -1, thp_m : -1, datp_m : 1, thp_c : 1})
rxn_3 = cobra.Reaction('datp_thpp', lower_bound = -1000, upper_bound = 1000)
rxn_3.add_metabolites({datp_c : -1, thpp_m : -1, datp_m : 1, thpp_c : 1})
new_model.add_reactions([rxn_1, rxn_2, rxn_3])
import sys
from optlang.glpk_interface import Configuration
import cobra
try:
threads = int(sys.argv[1])
except:
sys.exit('provide number of threads to use')
Configuration()
old_model = cobra.io.load_json_model('generic_models/Human-GEMv1.18.json')
# do FVA on version 1.18 of Human-GEM
old_fva = cobra.flux_analysis.flux_variability_analysis(
old_model, processes = threads
).applymap(lambda x: round(x, 3))
# remove existing thiamine-PP and thiamine-P [c] <-> [m] transport reactions
new_model = old_model.copy()
new_model.remove_reactions(['MAR01788', 'MAR01789', 'MAR08745', 'MAR08747'])
# create the three proposed new reactions
thpp_c = new_model.metabolites.get_by_id('MAM02984c')
thp_c = new_model.metabolites.get_by_id('MAM02983c')
datp_c = new_model.metabolites.get_by_id('MAM01642c')
thpp_m = new_model.metabolites.get_by_id('MAM02984m')
thp_m = new_model.metabolites.get_by_id('MAM02983m')
datp_m = new_model.metabolites.get_by_id('MAM01642m')
rxn_1 = cobra.Reaction('thp_thpp', lower_bound = -1000, upper_bound = 1000)
rxn_1.add_metabolites({thp_c : -1, thpp_m : -1, thp_m : 1, thpp_c : 1})
rxn_2 = cobra.Reaction('datp_thp', lower_bound = -1000, upper_bound = 1000)
rxn_2.add_metabolites({datp_c : -1, thp_m : -1, datp_m : 1, thp_c : 1})
rxn_3 = cobra.Reaction('datp_thpp', lower_bound = -1000, upper_bound = 1000)
rxn_3.add_metabolites({datp_c : -1, thpp_m : -1, datp_m : 1, thpp_c : 1})
new_model.add_reactions([rxn_1, rxn_2, rxn_3])
new_thp_max = (
new_fva.at['thp_thpp', 'maximum'] - new_fva.at['datp_thp', 'maximum']
)
msg = 'Range of possible net fluxes of thiamine monophosphate from [c] to [m] '
msg += f'went from ({old_thp_min} to {old_thp_max}) to ({new_thp_min} to '
msg += f'{new_thp_max}) after making changes to transport reactions.'
print(msg)
# identify reactions whose ranges of possible fluxes changed
old_fva = old_fva.rename(columns = {'minimum' : 'old_min', 'maximum' : 'old_max'})
new_fva = new_fva.rename(columns = {'minimum' : 'new_min', 'maximum' : 'new_max'})
both_fva = old_fva.merge(new_fva, left_index = True, right_index = True)
changed = both_fva[
(both_fva['old_min'] != both_fva['new_min']) |
(both_fva['old_max'] != both_fva['new_max'])
]
print(f'{len(changed)} reactions\' ranges of possible fluxes changed:')
print(changed) |
Fixed by #815 |
Current behavior:
I realized that the changes I proposed in #695 would leave SLC25A19 (
ENSG00000125454
) associated with no reactions, but, as I mentioned in #695, it is known to mediate antiport of thiamine diphosphate (MAM02984m
) and thiamine monophosphate (MAM02983m
) across the inner mitochondrial membrane. These are all of the existing [c] to [m] transport reactions for thiamine diphosphate and thiamine monophosphate:MAR01789
MAR04205
MAR08747
MAR01788
MAR08745
Most of the above reactions have no associated references, and those that do are associated with one or both of these papers.
Expected feature/value/output:
The first paper found that isolated rat liver mitochondria probably transport thiamine diphosphate and thiamine monophosphate across their membranes by exchanging one for the other, but do not mention cotransport with water, hydroxide, or protons, and do not associate this transport with any particular protein or gene.
The second paper found that mitochondria isolated from human cells with mutations in SLC19A2 cannot uptake (unphosphorylated) thiamine, but can still uptake thiamine diphosphate. They did not measure transport of thiamine monophosphate, and do not mention antiport of either metabolite with water, hydroxide, or protons.
SLC25A19 currently seems to be the only human protein known to transport either thiamine di- or monophosphate into or out of mitochondria, and Uniprot cites this paper (specifically figure 6), which concluded that SLC25A19 mediates antiport of thiamine diphosphate with and thiamine monophosphate with each other and with dATP, not cotransport with water, hydroxide, or protons. I think all of the above reactions should be replaced with three reactions: one representing antiport of thiamine diphosphate with thiamine monophosphate, one representing antiport of thiamine diphosphate with dATP, and one representing antiport of thiamine monophosphate with dATP, all associated with SLC25A19.
Proposed changes:
MAM02983c + MAM02984m <-> MAM02983m + MAM02984c
, GPR:ENSG00000125454
, references:PMID:17035501
MAM01642c + MAM02983m <-> MAM01642m + MAM02983c
, GPR:ENSG00000125454
, references:PMID:17035501
MAM01642c + MAM02984m <-> MAM01642m + MAM02984c
, GPR:ENSG00000125454
, references:PMID:17035501
MAR01788
,MAR01789
,MAR04205
,MAR08745
, andMAR08747
for lacking evidence to support their existence and being functionally redundant with the three new reactions aboveThe text was updated successfully, but these errors were encountered: