Skip to content

Curate lipid pools - #130

Merged
haowang-bioinfo merged 21 commits into
develfrom
curateLipidPools
Oct 18, 2019
Merged

Curate lipid pools#130
haowang-bioinfo merged 21 commits into
develfrom
curateLipidPools

Conversation

@JonathanRob

@JonathanRob JonathanRob commented Sep 18, 2019

Copy link
Copy Markdown
Collaborator

Main improvements in this PR:

This PR implements changes in the way that HumanGEM handles many of its lipid pools, such as fatty acid-LD-PC pool, 1-acylglycerol-3P-LD-SM pool, acyl-CoA-LD-PS pool, etc.

These pools are currently formulated in such a way that their composition differs, as described in the original HMR2 paper (specifically in Supplementary Data 4). The original motivation was to have the pool compositions reflect those from plasma and liver tissue measurements. In practice, this leads to stoichiometric inconsistencies, because the model incorrectly treats these pool metabolites have having equal mass.

To address this problem, the pool metabolites involved in the lipid pool formation and degradation reactions were simply renamed to a specific "liver" lipid pool, which will essentially disconnect them from other reactions in the model. New lipid pool formation/degradation reactions are then added, whose compositions represent an average fatty acid composition of these different pools.

These pool compositions now enable a more generic treatment of the pool metabolites, resulting in a more stoichiometrically consistent model that still utilizes experimental fatty acid composition data.

The changes are implemented in the curateLipidPools script, which updates HumanGEM and the metabolite and reaction annotation files accordingly.

Other changes in this PR
The following three now-deprecated fields are removed from the HumanGEM model structure in the same curateLipidPools script:

  1. proteins
  2. prRules
  3. rxnProtMat

The protein-related fields can simply be regenerated using the translateGrRules function.

I hereby confirm that I have:

  • Tested my code on my own computer for running the model
  • Selected devel as a target branch

@JonathanRob

Copy link
Copy Markdown
Collaborator Author

This PR should not be merged until after #123.

@JonathanRob JonathanRob reopened this Sep 27, 2019
@JonathanRob

Copy link
Copy Markdown
Collaborator Author

Ok, after some small revisions and re-checking, this PR is now ready.

@JonathanRob
JonathanRob requested a review from avlant October 3, 2019 06:48
proteins, prRules, rxnProtMat, priorCombiningGrRules

@avlant avlant left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great initiative

@avlant avlant left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great initiative

@haowang-bioinfo

Copy link
Copy Markdown
Contributor

I completely agree to remove these four fields. But for the moment it might be better to keep this priorCombiningGrRules, which could be useful in some validation analysis.

@JonathanRob

JonathanRob commented Oct 10, 2019

Copy link
Copy Markdown
Collaborator Author

@Hao-Chalmers Ok, I have revised the curateLipidPools script to maintain the priorCombiningRules field, but this field should be removed very soon.

@haowang-bioinfo haowang-bioinfo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be nice to specify the changes in PR description, now it’s too vague.

Comment on lines +61 to +78
% load new metabolite information from file
fid = fopen('../../ComplementaryData/modelCuration/lipidPools/newLipidPoolMets.tsv');
metData = textscan(fid,'%s%s%s%s%d%s%s%s%s%s%s','Delimiter','\t','Headerlines',1);
fclose(fid);

% verify that none of the metabolite IDs (ignoring compartment) exist in the current model
if any(startsWith(ihuman.mets, regexprep(metData{1},'.$','')))
error('One or more metabolite IDs to be added already exist in the model.');
end

% add metabolites to the model
metsToAdd = {};
metsToAdd.mets = metData{1};
metsToAdd.metNames = metData{2};
metsToAdd.compartments = metData{3};
metsToAdd.metFormulas = metData{4};
metsToAdd.metCharges = metData{5};
ihuman = addMets(ihuman, metsToAdd);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section can be encapsulated into a function and reused for similar cases. But we can do this later.

Comment on lines +99 to +118
%% Add new pool reactions

% load new reaction information from file
fid = fopen('../../ComplementaryData/modelCuration/lipidPools/newLipidPoolRxns.tsv');
rxnData = textscan(fid,'%s%s%s%s','Delimiter','\t','Headerlines',1);
fclose(fid);

% verify that none of the reactions exist in the current model
if any(ismember(rxnData{1},ihuman.rxns))
error('One or more reactions to be added already exist in the model.');
end

% add reactions to the model
rxnsToAdd = {};
rxnsToAdd.rxns = rxnData{1};
rxnsToAdd.rxnNames = rxnData{2};
rxnsToAdd.subSystems = cellfun(@(s) {{s}},rxnData{3});
rxnsToAdd.equations = rxnData{4};
ihuman = addRxns(ihuman, rxnsToAdd, 3);
ihuman.priorCombiningGrRules(end+1:end+numel(rxnsToAdd.rxns)) = {''};

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This appears as another reusable function.

haowang-bioinfo and others added 3 commits October 17, 2019 14:26
A total of 23 pool mets (12 unique) become unused by replacing with newly added pool mets, and removed from the model. Here they are deleted from metAssoc structure.
@haowang-bioinfo
haowang-bioinfo merged commit 976a4c6 into devel Oct 18, 2019
@haowang-bioinfo haowang-bioinfo mentioned this pull request Oct 18, 2019
@haowang-bioinfo
haowang-bioinfo deleted the curateLipidPools branch October 22, 2019 09:15
migp11 added a commit to bsc-life/Human-GEM that referenced this pull request May 10, 2024
edkerk pushed a commit that referenced this pull request Mar 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants