Skip to content

Commit

Permalink
revision
Browse files Browse the repository at this point in the history
  • Loading branch information
pwendering committed Dec 22, 2021
1 parent 19e1e99 commit cf6e329
Show file tree
Hide file tree
Showing 58 changed files with 171,180 additions and 170,931 deletions.
89 changes: 89 additions & 0 deletions code/analysis/atp_from_carbon_sources.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
% keep biomass at fixed value?
changeCobraSolver('ibm_cplex', 'all',0);
load(fullfile('model','iRi1574.mat'));


% find minimum uptake of palmitate at optimal biomass
minFlux = fluxVariability(model,'rxnNameList', 'r1007_e0');
model.ub(findRxnIDs(model,'r1007_e0')) = minFlux;


% find optimal growth rate
bio_idx = find(model.c);
sol = optimizeCbModel(model);
mu_opt = sol.f;

carbonSources = {
'm0564[e0]' % D-glucose
'm0588[e0]' % D-fructose
'm0047[e0]' % raffinose
'm1282[e0]' % melibiose
'm0366[e0]' % D-xylose (Sugiura et al., PNAS Vol. 117, 2020)
'm0028[e0]' % acetate (Pfeffer et al., Plant Physiol. Vol. 120, 1999)
'm1331[e0]' % myristate (Sugiura et al., PNAS Vol. 117, 2020)
'm0129[e0]' % glycine
'm1335[e0]' % gycerol (Bago et al., Plant Physiol. Vol. 131, 2003)
'm0239[c0]' % trehalose
};

oldUptake = {
'r1533_e0' % D-Glucose
'r1534_e0' % D-Fructose
'r1006_e0' % myo-Inositol
'r1002_e0' % Glycine
'r1633_e0' % Myristate
};
cSourceNames = regexprep(model.metNames(findMetIDs(model, carbonSources)),'_','-');
% remove all carbon sources
model = removeRxns(model,oldUptake,'metFlag',false);

% add sink reaction for cytosolic ATP
model = addSinkReactions(model,'m0464[c0]',0,1000);
model.c(:) = 0;
model.c(end) = 1;

mu_perc = [50 0];

atp_production = zeros(numel(carbonSources),numel(mu_perc));
carbon_source_upt = zeros(numel(carbonSources),numel(mu_perc));

for i=1:numel(carbonSources)
for j=1:numel(mu_perc)
tmpModel = addExchangeRxn(model,carbonSources(i));
tmpModel.lb(bio_idx) = mu_perc(j)*mu_opt/100;
s = optimizeCbModel(tmpModel);
if s.stat == 1
atp_production(i,j) = s.f;
carbon_source_upt(i,j) = abs(s.x(end));
end
end
end

colors = [[142,153,204];[236,176,80]]/255;

labels = categorical(cSourceNames);
labels = reordercats(labels,cSourceNames);

subplot(1,2,1)
b=bar(labels,atp_production');
ylabel('ATP production [mmol/gDW/h]','FontSize',14)
set(gca,'LineWidth',1.3,'FontSize',14)
l=legend(strsplit(strtrim(sprintf('%d%% ',100-mu_perc))),'LineWidth',1,...
'FontSize',10,'NumColumns',2,'Location','northwest','Box','off');
title(l,'Allowed growth reduction')
b(1).FaceColor = colors(1,:);
b(2).FaceColor = colors(2,:);
text(-0.2,1.01,'A','units','normalized','fontweight','bold','fontsize',14)

subplot(1,2,2)
b=bar(labels,atp_production' ./ carbon_source_upt');
ylabel('ATP yield','FontSize',14)
set(gca,'LineWidth',1.3, 'FontSize',14)
l=legend(strsplit(strtrim(sprintf('%d%% ',100-mu_perc))),'LineWidth',1,...
'FontSize',10,'NumColumns',2,'Location','northwest','Box','off');
title(l,'Allowed growth reduction')
b(1).FaceColor = colors(1,:);
b(2).FaceColor = colors(2,:);
text(-0.2,1.01,'B','units','normalized','fontweight','bold','fontsize',14)

print(fullfile('results','figures','atp-production.png'),'-painters','-dpng')
172 changes: 86 additions & 86 deletions code/analysis/calculation_of_growth_rates.m
Original file line number Diff line number Diff line change
@@ -1,87 +1,87 @@
% calculate growth rates from hyphae dry weights, dry weight of parent
% spores and growth duration
% DW(t) = DW(0) * exp(mu * t)
% <==> mu = ln( DW(t) / DW(0) ) / t
topDir = '';

% read growth predictions with FBA and eMOMENT with different carbon sources and
% concentration as in Hildebrandt et al. 2006
mu_emoment = readtable([topDir, 'results\carbon-sources\growth.csv'],...
'ReadVariableNames', false, 'ReadRowNames', true);
carbonSourceNames = mu_emoment.Properties.RowNames;
concentrations = [10 100 1000];
mu_emoment = table2array(mu_emoment);

mu_fba = readtable([topDir, 'results\carbon-sources\growth-fba.csv'],...
'ReadVariableNames', false, 'ReadRowNames', true);
mu_fba = table2array(mu_fba);

% Total protein from Table 2 in Hildebrandt et al. 2006 (10.1111/j.1574-6968.2005.00027.x)
p_tot = [
91 95 96;
88 98 89;
102 103 106;
83 86 75;
]/1000;

% Final hyphal dry weight from Table 2 in Hildebrandt et al. 2006 (10.1111/j.1574-6968.2005.00027.x)
DW_t = [
3.4 3.6 3.3;
3.2 3.3 3.1;
3.7 4 4.5;
3.3 3.5 3
];

% Number of parent spores from Hildebrandt et al. 2006: started experiment from 1000 spores
n_spores = 1000;
% spore dry weight (Sugiura et al. 2020, 10.1073/pnas.2006948117) (Fig S1)
weight_per_spore = .3E-6;
DW_0 = weight_per_spore*n_spores;
% Growth duration from Hildebrandt et al. 2006: 2.5 month (transform to
% hours)
t = 2.5 * 30 * 24;
% calculate growth rate
mu = log(DW_t / DW_0) / t;

% calculate correlations:

[rho,pval] = corr(reshape(mu,numel(mu),1),reshape(mu_emoment,numel(mu_emoment),1),...
'type', 'Spearman');
fprintf('Spearman correlation calculated growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n',...
rho, pval)
[rho,pval] = corr(reshape(mu,numel(mu),1),reshape(mu_emoment,numel(mu_emoment),1));
fprintf('Pearson correlation calculated growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu,numel(mu),1),reshape(mu_fba,numel(mu_fba),1),...
'type', 'Spearman');
fprintf('Spearman correlation calculated growth rate vs FBA growth rate: %.2g (p=%.2g)\n',...
rho, pval)
[rho, pval] = corr(reshape(mu,numel(mu),1),reshape(mu_fba,numel(mu_fba),1));
fprintf('Pearson correlation calculated growth rate vs FBA growth rate: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(mu_emoment,numel(mu_emoment),1),...
'type', 'Spearman');
fprintf('Spearman correlation FBA growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(mu_emoment,numel(mu_emoment),1));
fprintf('Pearson correlation FBA growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_emoment,numel(mu_emoment),1),reshape(p_tot,numel(p_tot),1),...
'type', 'Spearman');
fprintf('Spearman correlation eMOMENT growth rate vs measured protein content: %.2g (p=%.2g)\n',...
rho, pval)
[rho, pval] = corr(reshape(mu_emoment,numel(mu_emoment),1),reshape(p_tot,numel(p_tot),1));
fprintf('Pearson correlation eMOMENT growth rate vs measured protein content: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(p_tot,numel(p_tot),1),...
'type', 'Spearman');
fprintf('Spearman correlation FBA growth rate vs measured protein content: %.2g (p=%.2g)\n',...
rho, pval)
[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(p_tot,numel(p_tot),1));
fprintf('Pearson correlation FBA growth rate vs measured protein content: %.2g (p=%.2g)\n\n',...
% calculate growth rates from hyphae dry weights, dry weight of parent
% spores and growth duration
% DW(t) = DW(0) * exp(mu * t)
% <==> mu = ln( DW(t) / DW(0) ) / t
topDir = '';

% read growth predictions with FBA and eMOMENT with different carbon sources and
% concentration as in Hildebrandt et al. 2006
mu_emoment = readtable([topDir, 'results\carbon-sources\growth.csv'],...
'ReadVariableNames', false, 'ReadRowNames', true);
carbonSourceNames = mu_emoment.Properties.RowNames;
concentrations = [10 100 1000];
mu_emoment = table2array(mu_emoment);

mu_fba = readtable([topDir, 'results\carbon-sources\growth-fba.csv'],...
'ReadVariableNames', false, 'ReadRowNames', true);
mu_fba = table2array(mu_fba);

% Total protein from Table 2 in Hildebrandt et al. 2006 (10.1111/j.1574-6968.2005.00027.x)
p_tot = [
91 95 96;
88 98 89;
102 103 106;
83 86 75;
]/1000;

% Final hyphal dry weight from Table 2 in Hildebrandt et al. 2006 (10.1111/j.1574-6968.2005.00027.x)
DW_t = [
3.4 3.6 3.3;
3.2 3.3 3.1;
3.7 4 4.5;
3.3 3.5 3
];

% Number of parent spores from Hildebrandt et al. 2006: started experiment from 1000 spores
n_spores = 1000;
% spore dry weight (Sugiura et al. 2020, 10.1073/pnas.2006948117) (Fig S1)
weight_per_spore = .3E-6;
DW_0 = weight_per_spore*n_spores;
% Growth duration from Hildebrandt et al. 2006: 2.5 month (transform to
% hours)
t = 2.5 * 30 * 24;
% calculate growth rate
mu = log(DW_t / DW_0) / t;

% calculate correlations:

[rho,pval] = corr(reshape(mu,numel(mu),1),reshape(mu_emoment,numel(mu_emoment),1),...
'type', 'Spearman');
fprintf('Spearman correlation calculated growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n',...
rho, pval)
[rho,pval] = corr(reshape(mu,numel(mu),1),reshape(mu_emoment,numel(mu_emoment),1));
fprintf('Pearson correlation calculated growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu,numel(mu),1),reshape(mu_fba,numel(mu_fba),1),...
'type', 'Spearman');
fprintf('Spearman correlation calculated growth rate vs FBA growth rate: %.2g (p=%.2g)\n',...
rho, pval)
[rho, pval] = corr(reshape(mu,numel(mu),1),reshape(mu_fba,numel(mu_fba),1));
fprintf('Pearson correlation calculated growth rate vs FBA growth rate: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(mu_emoment,numel(mu_emoment),1),...
'type', 'Spearman');
fprintf('Spearman correlation FBA growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(mu_emoment,numel(mu_emoment),1));
fprintf('Pearson correlation FBA growth rate vs eMOMENT growth rate: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_emoment,numel(mu_emoment),1),reshape(p_tot,numel(p_tot),1),...
'type', 'Spearman');
fprintf('Spearman correlation eMOMENT growth rate vs measured protein content: %.2g (p=%.2g)\n',...
rho, pval)
[rho, pval] = corr(reshape(mu_emoment,numel(mu_emoment),1),reshape(p_tot,numel(p_tot),1));
fprintf('Pearson correlation eMOMENT growth rate vs measured protein content: %.2g (p=%.2g)\n\n',...
rho, pval)

[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(p_tot,numel(p_tot),1),...
'type', 'Spearman');
fprintf('Spearman correlation FBA growth rate vs measured protein content: %.2g (p=%.2g)\n',...
rho, pval)
[rho, pval] = corr(reshape(mu_fba,numel(mu_fba),1),reshape(p_tot,numel(p_tot),1));
fprintf('Pearson correlation FBA growth rate vs measured protein content: %.2g (p=%.2g)\n\n',...
rho, pval)
Loading

0 comments on commit cf6e329

Please sign in to comment.