Skip to content
Snippets Groups Projects
Commit fdd71df1 authored by Nicolas Sundqvist's avatar Nicolas Sundqvist
Browse files

updated rev PPL obj fun to work with new uptakerelease flux structure

parent 03726bea
Branches master
No related tags found
No related merge requests found
function [fluxNames] = getModelFluxNames(modelFileName,varargin)
%% Get the namse fo the fluxes from the model text file. order the fluxes as defined in the model in a cell structure.
% modelFileName = 'liver-model-2_openflux.txt';
s = readcell(modelFileName,'FileType','text','Delimiter','\t');%read the model tab delimited text file
fluxNames = s(2:find(strcmp(s(:,1),'##'),1,'first')-1,1); % get the flux names from the first column
if nargin >= 2
v = varargin{1};% if a 2:nd input is provided set the flux values next to corresponding fluxes
fluxNames = [fluxNames,num2cell(v)];
end
end
\ No newline at end of file
...@@ -117,14 +117,15 @@ if nargin>=4 && plotLogic ...@@ -117,14 +117,15 @@ if nargin>=4 && plotLogic
figure(); figure();
hold('on') hold('on')
fluxPlotBarHandle = bar([1:size(simultedURFluxes,1)],[simultedURFluxes,uptakeReleaseTable.MeanFlux.*1e9]); fluxPlotBarHandle = bar([1:size(simultedURFluxes,1)],[uptakeReleaseTable.MeanFlux.*1e9,simultedURFluxes]);
errorbar(fluxPlotBarHandle(2).XEndPoints,uptakeReleaseTable.MeanFlux.*1e9,uptakeReleaseTable.FluxStd.*1e9,'k. ','LineWidth',2); errorbar(fluxPlotBarHandle(1).XEndPoints,uptakeReleaseTable.MeanFlux.*1e9,uptakeReleaseTable.FluxStd.*1e9,'k. ','LineWidth',2);
ax=gca; ax=gca;
set(ax.YLabel,{'String'},{'Flux (nmol/h)'}) set(ax.YLabel,{'String'},{'Flux (nmol/h)'})
set(ax.XLabel,{'String'},{'Metaboiltes'}) set(ax.XLabel,{'String'},{'Metaboiltes'})
% set(ax,{'XTickLabel','YTickLabel'},{uptakeReleaseTable.(1),cellfun(@(x)num2str(10.^(abs(str2double(x)))),ax.YTickLabel,'UniformOutput',false)}) % set(ax,{'XTickLabel','YTickLabel'},{uptakeReleaseTable.(1),cellfun(@(x)num2str(10.^(abs(str2double(x)))),ax.YTickLabel,'UniformOutput',false)})
set(ax,{'XTick','XTickLabel'},{[1:numel(uptakeReleaseTable.(1))],uptakeReleaseTable.(1)}) set(ax,{'XTick','XTickLabel'},{[1:numel(uptakeReleaseTable.(1))],uptakeReleaseTable.(1)})
legend(fluxPlotBarHandle,{'Measured fluxes','Simulated Fluxes'})
[~,fluxSortIdx]=sort(individual_fval_fluxes); % sort the fluxes in order of best fir to worst fit [~,fluxSortIdx]=sort(individual_fval_fluxes); % sort the fluxes in order of best fir to worst fit
% print out the cost breakdown % print out the cost breakdown
......
...@@ -23,7 +23,8 @@ for i = 1:size(uptakeReleaseTable,1) ...@@ -23,7 +23,8 @@ for i = 1:size(uptakeReleaseTable,1)
simultedURFluxes(i) = -v(uptakeReleaseFluxIdex(i,1)); simultedURFluxes(i) = -v(uptakeReleaseFluxIdex(i,1));
end end
end end
fval_fluxes = sum(((simultedURFluxes-uptakeReleaseTable.MeanFlux.*1e9)./(uptakeReleaseTable.FluxStd.*1e9)).^2); %calculate the objective function value for the uptake release fluxes individual_fval_fluxes = ((simultedURFluxes.*1e-9-uptakeReleaseTable.MeanFlux)./(uptakeReleaseTable.FluxStd)).^2;
fval_fluxes = sum(individual_fval_fluxes); %calculate the objective function value for the uptake release fluxes
%% preallocate variables %% preallocate variables
MID_sim = num2cell(zeros(1,size(x_mea,2))); MID_sim = num2cell(zeros(1,size(x_mea,2)));
...@@ -116,13 +117,22 @@ if nargin>=4 && plotLogic ...@@ -116,13 +117,22 @@ if nargin>=4 && plotLogic
figure(); figure();
hold('on') hold('on')
fluxPlotBarHandle = bar([1:size(simultedURFluxes,1)],[simultedURFluxes,uptakeReleaseTable.MeanFlux.*1e9]); fluxPlotBarHandle = bar([1:size(simultedURFluxes,1)],[uptakeReleaseTable.MeanFlux.*1e9,simultedURFluxes]);
errorbar(fluxPlotBarHandle(2).XEndPoints,uptakeReleaseTable.MeanFlux.*1e9,uptakeReleaseTable.FluxStd.*1e9,'k. ','LineWidth',2); errorbar(fluxPlotBarHandle(1).XEndPoints,uptakeReleaseTable.MeanFlux.*1e9,uptakeReleaseTable.FluxStd.*1e9,'k. ','LineWidth',2);
ax=gca; ax=gca;
set(ax.YLabel,{'String'},{'Flux (nmol/h)'}) set(ax.YLabel,{'String'},{'Flux (nmol/h)'})
set(ax.XLabel,{'String'},{'Metaboiltes'}) set(ax.XLabel,{'String'},{'Metaboiltes'})
% set(ax,{'XTickLabel','YTickLabel'},{uptakeReleaseTable.(1),cellfun(@(x)num2str(10.^(abs(str2double(x)))),ax.YTickLabel,'UniformOutput',false)}) % set(ax,{'XTickLabel','YTickLabel'},{uptakeReleaseTable.(1),cellfun(@(x)num2str(10.^(abs(str2double(x)))),ax.YTickLabel,'UniformOutput',false)})
set(ax,{'XTickLabel'},{uptakeReleaseTable.(1)}) set(ax,{'XTick','XTickLabel'},{[1:numel(uptakeReleaseTable.(1))],uptakeReleaseTable.(1)})
legend(fluxPlotBarHandle,{'Measured fluxes','Simulated Fluxes'})
[~,fluxSortIdx]=sort(individual_fval_fluxes); % sort the fluxes in order of best fir to worst fit
% print out the cost breakdown
fprintf('Uptake Release Flux fit breakdown:\n',i)
for j = 1:size(uptakeReleaseTable,1)
fprintf('%s:\t%0.4f\n',uptakeReleaseTable.(1){fluxSortIdx(j)},individual_fval_fluxes(fluxSortIdx(j)))
end
fprintf('Total:\t%0.4f\n\n',fval(end))
end end
end end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment