Skip to content
Open

Develop #2578

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
path = papers
url = https://github.com/opencobra/COBRA.papers.git
ignore = dirty
branch = master
branch = master
[submodule "octave-networks-toolbox"]
path = external/analysis/octave-networks-toolbox
url = https://github.com/aeolianine/octave-networks-toolbox.git
Expand All @@ -77,9 +77,9 @@
path = external/base/io/xlread
url = https://github.com/tpfau/xlread
ignore = dirty
branch = master
branch = master
[submodule "external/visualization/MatGPT"]
path = external/visualization/MatGPT
url = https://github.com/toshiakit/MatGPT.git
ignore = dirty
branch = main
branch = main
2 changes: 1 addition & 1 deletion papers
Submodule papers updated 92 files
+ 2025_PKU/Data/Biomarkers.mat
+ 2025_PKU/Data/IMDs Biomarkers.xlsx
+ 2025_PKU/Data/Recon3D.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/10157_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/10157_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/10157_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1371_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1371_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1371_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1585_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1585_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1585_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1589_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1589_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1589_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/162417_1/Biomarker_Table.mat
+ ..._PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/162417_1/Summary/Decreased[bc].mat
+ ..._PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/162417_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1644_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1644_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1644_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1718_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1718_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1718_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1807_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1807_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/1807_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/189_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/189_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/189_1/Summary/Increased[bc].mat
+ ...mfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/11docrtstrn.mat
+ ...Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/25hvitd3.mat
+ ..._PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/2hb.mat
+ ...PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/2hiv.mat
+ ...ermfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/2hyoxplac.mat
+ ...U/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/2m3hbu.mat
+ ...KU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/2mcit.mat
+ .../Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/2oxoadp.mat
+ .../Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/34dhphe.mat
+ ...KU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/34hpl.mat
+ ...e/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/Biomarker_Table.mat
+ ...nt_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/Summary/Decreased[bc].mat
+ ...nt_2daysold/female_infant_2daysold_ratio_0_75_Complete/2592_1 or 2592_3 or 2592_2/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2937_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2937_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/2937_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3251_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3251_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3251_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3712_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3712_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3712_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3931_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3931_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/3931_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/435_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/435_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/435_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/4942_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/4942_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/4942_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/4967_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/4967_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/4967_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5009_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5009_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5009_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5053_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5053_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5053_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/53630_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/53630_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/53630_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/549_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/549_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/549_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5625_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5625_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/5625_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/686_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/686_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/686_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/7498_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/7498_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/7498_1/Summary/Increased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/95_1/Biomarker_Table.mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/95_1/Summary/Decreased[bc].mat
+ 2025_PKU/Germfree/infant_2daysold/female_infant_2daysold_ratio_0_75_Complete/95_1/Summary/Increased[bc].mat
+4 −0 2025_PKU/HM_models/female/CC_20000/README.txt
+ 2025_PKU/PKU_Biomarker_MicrobiomePipeline.mlx
+32 −0 2025_PKU/README_PKU.txt
+790 −0 2025_PKU/microbiomeDir/microbiomeDir_female.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
function dGf0=waterGibbsEnergyOfFormation(T)
%http://webbook.nist.gov/cgi/cbook.cgi?ID=C7732185&Units=SI&Mask=2#ref-2
A =-203.6060;
B =1523.290;
C =-3196.413;
D =2474.455;
E =3.855326;
F =-256.5478;
G =-488.7163;
H =-285.8304;

% t = temperature (K) / 1000.
t=T/1000;

% Cp = heat capacity (J/mol*K)
%Cp = A + B*t + C*t2 + D*t3 + E/t2

% H° = standard enthalpy (kJ/mol)
dHf_liquid = -285.83; % (kJ/mol)
H = dHf_liquid + A*t + B*((t^2)/2) + C*(t^3)/3 + D*(t^4)/4 - E/t + F - H;

% S° = standard entropy (J/mol*K)
S = A*log(t) + B*t + C*(t^2)/2 + D*(t^3)/3 - E/(2*t^2) + G;
% TS° = standard entropy (kJ/mol)
TS = T*1000*S;

Comment on lines +22 to +26

Choose a reason for hiding this comment

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

P0 Badge Fix TS term scaling in Gibbs energy calculation

The newly added waterGibbsEnergyOfFormation computes S using the NASA polynomial coefficients, which return entropy in J/mol·K. To obtain the TS term in kJ/mol you need to multiply by T (K) and divide by 1000. The current code uses TS = T*1000*S, which multiplies by 1000 instead of dividing, producing a TS value that is three orders of magnitude too large (e.g., at 298 K the term is ~20 000 kJ/mol rather than ~20 kJ/mol). As a result dGf0 becomes grossly inaccurate and will propagate incorrect thermodynamic data wherever this helper is used. Consider changing the conversion to TS = T .* S / 1000.

Useful? React with 👍 / 👎.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@rmtfleming Hi Ronan,
This is a comment from ChatGPT Codex that I have added. Do you find this useful?
Best,
Farid

dGf0 = H - TS;

26 changes: 13 additions & 13 deletions src/analysis/topology/getCorrespondingCols.m
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
function restrictedColBool = getCorrespondingCols(S, rowBool, colBool, mode)
function restrictedColBool = getCorrespondingCols(A, rowBool, colBool, mode)
% Returns a boolean vector that is true for a subset of the true cols in
% `colBool` according to whether the cols 'exclusive', 'inclusive', or
% 'partial' -ly correspond to true entries in `rowBool`
%
%
% USAGE:
%
% restrictedColBool = getCorrespondingCols(S, rowBool, colBool, mode)
% restrictedColBool = getCorrespondingCols(A, rowBool, colBool, mode)
%
% INPUTS:
% S: `m x n` stoichiometric matrix
% A: `m x n` matrix
% rowBool: `m x 1` boolean vector
% colBool: `n x 1` boolean vector
% mode: 'exclusive' or 'inclusive' or 'partial'
Expand All @@ -19,7 +19,7 @@
%
% EXAMPLE:
%
% S =
% A =
% -1 0 0 0 0
% 2 -3 0 0 0
% 0 4 -5 0 0
Expand Down Expand Up @@ -58,34 +58,34 @@
error('colBool must be a logical vector')
end

[mlt,nlt]=size(S);
[mlt,nlt]=size(A);

if length(rowBool)~=mlt
error('length of rowBool must equal size(S,1)')
error('length of rowBool must equal size(A,1)')
end

if length(colBool)~=nlt
error('length of rowBool must equal size(S,2)')
error('length of rowBool must equal size(A,2)')
end

restrictedColBool=false(nlt,1);
switch mode
case 'exclusive'
%corresponding reactions exclusively involving certain metabolites
restrictedColBool(colBool)= any(S( rowBool,colBool),1)'...
& ~any(S(~rowBool,colBool),1)';
restrictedColBool(colBool)= any(A( rowBool,colBool),1)'...
& ~any(A(~rowBool,colBool),1)';
case 'inclusive'
%corresponding reactions involving certain metabolites
restrictedColBool(colBool)=any(S( rowBool,colBool),1)';
restrictedColBool(colBool)=any(A( rowBool,colBool),1)';

case 'partial'
%metatbolites exclusively involved in certain reactions
restrictedColBool(colBool)= any(S( rowBool,colBool),1)'...
& ~any(S(~rowBool,colBool),1)';
restrictedColBool(colBool)= any(A( rowBool,colBool),1)'...
& ~any(A(~rowBool,colBool),1)';

%corresponding reactions involving certain metabolites
restricedColBool2=false(nlt,1);
restricedColBool2(colBool)=any(S( rowBool,colBool),1)';
restricedColBool2(colBool)=any(A( rowBool,colBool),1)';
%difference
restrictedColBool= restricedColBool2 & ~restrictedColBool;
otherwise
Expand Down
26 changes: 13 additions & 13 deletions src/analysis/topology/getCorrespondingRows.m
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
function restricedRowBool = getCorrespondingRows(S, rowBool, colBool, mode)
function restricedRowBool = getCorrespondingRows(A, rowBool, colBool, mode)
% Returns a boolean vector that is true for a subset of the true rows in
% `rowBool` according to whether the rows 'exclusive', 'inclusive', or
% 'partial' -ly correspond to true entries in `colBool`
%
% USAGE:
%
% restricedRowBool = getCorrespondingRows(S, rowBool, colBool, mode)
% restricedRowBool = getCorrespondingRows(A, rowBool, colBool, mode)
%
% INPUTS:
% S: `m x n` stoichiometric matrix
% A: `m x n` matrix
% rowBool: `m x 1` boolean vector
% colBool: `n x 1` boolean vector
% mode: 'exclusive' , 'inclusive' or 'partial'
Expand All @@ -18,7 +18,7 @@
%
% EXAMPLE:
%
% S =
% A =
% -1 0 0 0 0
% 2 -3 0 0 0
% 0 4 -5 0 0
Expand Down Expand Up @@ -62,33 +62,33 @@
error('colBool must be a logical vector')
end

[mlt,nlt]=size(S);
[mlt,nlt]=size(A);

if length(rowBool)~=mlt
error('length of rowBool must equal size(S,1)')
error('length of rowBool must equal size(A,1)')
end

if length(colBool)~=nlt
error('length of rowBool must equal size(S,2)')
error('length of rowBool must equal size(A,2)')
end

restricedRowBool=false(mlt,1);
switch mode
case 'exclusive'
%metatbolites exclusively involved in certain reactions
restricedRowBool(rowBool)= any(S(rowBool, colBool),2)...
& ~any(S(rowBool,~colBool),2);
restricedRowBool(rowBool)= any(A(rowBool, colBool),2)...
& ~any(A(rowBool,~colBool),2);
case 'inclusive'
%corresponding reactions involving certain metabolites
restricedRowBool(rowBool) = any(S(rowBool, colBool),2);
restricedRowBool(rowBool) = any(A(rowBool, colBool),2);
case 'partial'
%metatbolites exclusively involved in certain reactions
restricedRowBool(rowBool)= any(S(rowBool, colBool),2)...
& ~any(S(rowBool,~colBool),2);
restricedRowBool(rowBool)= any(A(rowBool, colBool),2)...
& ~any(A(rowBool,~colBool),2);

%corresponding reactions involving certain metabolites
restricedRowBool2=false(mlt,1);
restricedRowBool2(rowBool) = any(S(rowBool, colBool),2);
restricedRowBool2(rowBool) = any(A(rowBool, colBool),2);
%difference
restricedRowBool= restricedRowBool2 & ~restricedRowBool;
otherwise
Expand Down
8 changes: 4 additions & 4 deletions src/base/solvers/mosek/parseMskResult.m
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,8 @@
accessSolution = 'dontAccess';
end
otherwise
accessSolution = 'dontAccess';
origStat = -1;
accessSolution = 'dontAccess';
end

if strcmp(accessSolution,'dontAccess')
Expand All @@ -224,7 +224,7 @@
case {'DUAL_INFEASIBLE_CER','MSK_SOL_STA_DUAL_INFEAS_CER','MSK_SOL_STA_NEAR_DUAL_INFEAS_CER'}
stat=2; % Unbounded solution
origStat = [origStat ' & ' res.rcodestr];
case {'UNKNOWN','PRIM_ILLPOSED_CER','PRIMAL_ILLPOSED_CER','DUAL_ILLPOSED_CER','PRIM_FEAS','DUAL_FEAS','PRIM_AND_DUAL_FEAS','DUAL_FEASIBLE'}
case {'UNKNOWN','PRIM_ILLPOSED_CER','PRIMAL_ILLPOSED_CER','DUAL_ILLPOSED_CER','PRIM_FEAS','DUAL_FEAS','PRIM_AND_DUAL_FEAS','DUAL_FEASIBLE','MSK_RES_ERR_IN_ARGUMENT'}
stat=-1; %some other problem
origStat = [origStat ' & ' res.rcodestr];
otherwise
Expand All @@ -233,8 +233,8 @@
fprintf('%s\n',res.rcode)
fprintf('%s\n',res.rmsg)
fprintf('%s\n',res.rcodestr)
if strcmp(origStat,'UNKNOWN')
origStat = [origStat ' & ' res.rcodestr];
if isfield(res,'rcodestr') && ~isempty(res.rcodestr)
origStat = res.rcodestr;
end
end
end
Expand Down
2 changes: 2 additions & 0 deletions src/base/solvers/mosek/setMosekParam.m
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@
% A higher level implies that more information is logged.
switch param.printLevel
case 0
param.MSK_IPAR_LOG = 0;
echolev = 0;
case 1
param.MSK_IPAR_LOG = 1;
echolev = 3;
case 2
param.MSK_IPAR_WRITE_DATA_PARAM='MSK_ON';
Expand Down
2 changes: 1 addition & 1 deletion tutorials
Submodule tutorials updated 41 files
+44 −17 .github/workflows/main.yml
+ analysis/FBA/tutorial_FBA.mlx
+ analysis/FBA/tutorial_FBA.pdf
+338 −263 analysis/nutritionToolbox/Tutorial_nutritionToolbox.html
+255 −231 analysis/nutritionToolbox/Tutorial_nutritionToolbox.m
+ analysis/nutritionToolbox/Tutorial_nutritionToolbox.mlx
+ analysis/nutritionToolbox/Tutorial_nutritionToolbox.pdf
+ analysis/nutritionToolbox/inputData/demoCreateDiet.xlsx
+ analysis/nutritionToolbox/inputData/demoFoodDescription.xlsx
+ analysis/nutritionToolbox/inputData/demoFoodDescriptionEmpty.xlsx
+0 −497 analysis/persephone/Demo/KB_S_mpa_out_RC.txt
+ analysis/persephone/Demo/demoReads.xlsx
+7 −7 analysis/persephone/Demo/demo_metadata.csv
+92 −99 analysis/persephone/html/tut1_CommunityMicrobiomeModel.html
+2 −3 analysis/persephone/html/tut2_PersonaliseWBM.html
+1 −1 analysis/persephone/html/tut3_HumanMicrobiomeModels.html
+2 −3 analysis/persephone/html/tut4_FBAandStatistics.html
+93 −211 analysis/persephone/mat/tut1_CommunityMicrobiomeModel.m
+ analysis/persephone/pdfs/tut1_CommunityMicrobiomeModel.pdf
+ analysis/persephone/pdfs/tut2_PersonaliseWBM.pdf
+ analysis/persephone/pdfs/tut3_HumanMicrobiomeModels.pdf
+ analysis/persephone/pdfs/tut4_FBAandStatistics.pdf
+0 −39 analysis/persephone/pythonInstruction.txt
+539 −630 analysis/persephone/tut1_CommunityMicrobiomeModel.m
+ analysis/persephone/tut1_CommunityMicrobiomeModel.mlx
+ analysis/persephone/tut1_CommunityMicrobiomeModel.pdf
+109 −117 analysis/persephone/tut2_PersonaliseWBM.m
+ analysis/persephone/tut2_PersonaliseWBM.mlx
+ analysis/persephone/tut2_PersonaliseWBM.pdf
+55 −62 analysis/persephone/tut3_HumanMicrobiomeModels.m
+ analysis/persephone/tut3_HumanMicrobiomeModels.mlx
+ analysis/persephone/tut3_HumanMicrobiomeModels.pdf
+74 −71 analysis/persephone/tut4_FBAandStatistics.m
+ analysis/persephone/tut4_FBAandStatistics.mlx
+ analysis/persephone/tut4_FBAandStatistics.pdf
+100 −0 visualization/metabolicCartography/MicroMap_Exploration_with_CellDesigner.m
+ visualization/metabolicCartography/MicroMap_Exploration_with_CellDesigner.mlx
+ visualization/metabolicCartography/MicroMap_Exploration_with_CellDesigner.pdf
+437 −0 visualization/metabolicCartography/ScentTrails_MicroMap_CaseStudy.m
+ visualization/metabolicCartography/ScentTrails_MicroMap_CaseStudy.mlx
+ visualization/metabolicCartography/ScentTrails_MicroMap_CaseStudy.pdf