-
Notifications
You must be signed in to change notification settings - Fork 45
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
fix: correct update prot pool #276
Conversation
This PR has been automatically tested with GH Actions. Here is the output of the tests:
|
I think there is confusion on what f represents. f is not the fraction of unmeasured protein, as is suggested above.
Now, when the ecModel is constrained with proteomics data:
What your proposed code does is:
If anything, the meaning of f should be better documented, and this function should be made more intuitive. |
In proteomics model, ptot is in
Allow
At this point the |
Indeed, this should be documented better. But my main point is that it Ptot is in g/gDCW (in ModelAdapter and in
That is indeed my suggestion, to just directly set the LB to whatever value is calculated in this function.
Good suggestion. Should this be done on the data without filtering? If we filter to discard the most variable protein levels, the sum will be (much?) lower. Meanwhile, while high variance for individual proteins is problematic when filling |
Yes, I think should be before filtering. I don't think so the sum will be much lower, but will depend of the cutoff set by the user. So to avoid that and give (probably) some flexibility. It better to use all of them. This value should be the mean in the replicates, since in Ptot we use a mean value. |
Few changes have been introduced to this PR,
|
To clarify how the new constraint is calculated (now also included in % Ptot the "real" total protein content in the cell
% Pmeas the measured protein content (sum of proteomics data). Is lower
% than Ptot, as not all protein are measured in a proteomics
% experiment. Equals protData.measuredProt from loadProtData.
% f the ratio enzyme/protein: how many of proteins are enzymes
% m the ratio measured/total protein: how much is measured
% PtotEnz the "real" total enzyme content in the cell. Equals f * Ptot
% PmeasEnz the measured enzyme content. Equals f * Pmeas, also equals
% sum(ecModel.ec.concs)
% PdiffEnz the non-measured enzyme content. Equals PtotEnz - PmeasEnz.
%
% Without proteomics, protein pool is constraint by PtotEnz (= f * Ptot).
% With proteomics, protein pool should be constraint by PdiffEnz.
% [And the above two constraints are both multiplied by sigma-factor, which
% is unrelated to the adjustments made here] In addition, if a non-functional model is resulted, the sigma factor is relaxed to 1 to potentially resolve this. |
Main improvements in this PR:
updateProtPool
after constraint LB of protein usage with proteomics data.I hereby confirm that I have:
develop
as a target branch (top left drop-down menu)