Skip to content
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

GECKO 3.1.0 #333

Merged
merged 26 commits into from
Jul 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
8000996
fix: getStandardKcat with multiple subSystems
edkerk Apr 2, 2023
db4258f
Merge pull request #299 from SysBioChalmers/fix/standardKcat
edkerk Apr 3, 2023
189e7fa
Bug: Fix compatibility running ecFSEOF with GECKO3 models (#301)
ae-tafur May 11, 2023
ba7cb9e
feat: user defined proteins to ignore in tunning kcats (#306)
ae-tafur May 12, 2023
575594a
fix: applyCustomKcats with customKcats structure input (#304)
edkerk May 12, 2023
53313b7
doc: updateProtPool and flexibilizeProtConcs (#297)
edkerk May 15, 2023
0621aa2
feat: a function that creates a the project structure an adapter clas…
ae-tafur May 17, 2023
148a434
feat: currencyMets and pseudoreactions handling (#313)
edkerk May 17, 2023
26acf71
chore: restructure tutorials (#310)
mihai-sysbio May 31, 2023
2c1984d
feat: add manually-generated doc for online use
mihai-sysbio Jun 20, 2023
71b6d4e
Merge branch 'develop' into feat/online-docs
mihai-sysbio Jun 20, 2023
42afd22
feat: updateGECKOdoc function
edkerk Jun 20, 2023
9e85e10
chore: update documentation
edkerk Jun 20, 2023
6313fd7
Merge pull request #318 from SysBioChalmers/feat/online-docs
mihai-sysbio Jun 21, 2023
02b5810
fix: getStandardKcat and applyKcatConstraints (#320)
edkerk Jun 22, 2023
0e9ab29
fix: minor bugs identified (#316)
ae-tafur Jun 25, 2023
c30c7a7
feat: updates related to tutorials (#319)
edkerk Jun 26, 2023
adfc216
fix: full_ecModel tutorial ecFVA (#321)
edkerk Jun 29, 2023
a3a9154
refactor: applyComplexData (#323)
edkerk Jun 29, 2023
9135940
feat: light_ecModel tutorial getSubsetEcModel (#322)
edkerk Jun 30, 2023
900e2b7
feat: parameters format, phylDist.mat file and yeast-GEM.yml (#325)
edkerk Jun 30, 2023
c11d730
docs: add link to tutorials in README
mihai-sysbio Jun 30, 2023
7dedda9
docs: skip mentioning the required RAVEN version, since it is checked…
mihai-sysbio Jun 30, 2023
38b6768
Merge pull request #326 from SysBioChalmers/docs/minor-readme-improve…
mihai-sysbio Jun 30, 2023
5fef1fa
feat: compare light vs full ecModel (#328)
edkerk Jul 3, 2023
5137fc6
chore: rerun light_ecModel tutorial (#331)
edkerk Jul 3, 2023
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ geckopy/geckopy/data_files/*.xml
*.ppt*
# Only allowed .mat file
!phylDist.mat
# Ignore intermediate model files
*_stage*.yml

# Packages #
############
Expand Down
77 changes: 58 additions & 19 deletions GECKOInstaller.m
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
classdef GECKOInstaller
% GECKOInstaller
% Support for installing and uninstalling
% Run GECKOInstaller.install to install (will set up the path in MATLAB)
% Run GECKOInstaller.uninstall to clear the path from MATLAB
% To install, you first need to cd to the GECKO root.
% GECKOInstaller
% Support for installing and uninstalling
% Run GECKOInstaller.install to install (will set up the path in MATLAB)
% Run GECKOInstaller.uninstall to clear the path from MATLAB
% To install, you first need to cd to the GECKO root.

methods (Static)
function install
sourceDir = fileparts(which(mfilename));
paths = GECKOInstaller.GetFilteredSubPaths(sourceDir, GECKOInstaller.FILE_FILTER);

GECKOInstaller.checkRAVENversion('2.8.3'); % Minimum RAVEN version

% Check unique function names
if ~exist("checkFunctionUniqueness.m")
error(['Cannot find RAVEN Toolbox in the MATLAB path. Make ' ...
'sure you have installed RAVEN in accordance to the ' ...
'following instructions, including running ''checkInstallation()'': ' ...
'https://github.com/SysBioChalmers/RAVEN/wiki/Installation'])
else
status=checkFunctionUniqueness(paths);
if ~status
error(['You might have multiple GECKO installations in your ' ...
'MATLAB path. Rerun GECKOInstaller.install after ' ...
'resolving the conflicting functions.'])
end
end
addpath(paths);
savepath;
end
Expand All @@ -19,32 +36,54 @@
savepath;
end
function path = getGECKOMainPath()
path = fileparts(which(mfilename));
path = strrep(path, '\', '/'); %get rid of backslashes in Windows
if ~endsWith(path, '/')
path = strcat(path,'/');
end
end
path = fileparts(which(mfilename));
path = strrep(path, '\', '/'); %get rid of backslashes in Windows
if ~endsWith(path, '/')
path = strcat(path,'/');
end
end

function newPaths = GetFilteredSubPaths(path_, filter_)
pathSep = pathsep();
%Check that there are no separators in the path - that will cause
%Check that there are no separators in the path - that will cause
%problems since the separator is used to separate paths in a string
if contains(path_, pathSep)
error('The path in which GECKO resides may not contain semicolons for this installation to work!');
end
if contains(path_, pathSep)
error('The path in which GECKO resides may not contain semicolons for this installation to work!');
end
paths = genpath(path_);
splitPaths = strsplit(paths, pathSep);
%remove the last, it is empty
splitPaths = splitPaths(1,1:end-1);
matches = regexp(splitPaths, filter_, 'match');
okPaths = cellfun(@isempty, matches);
pathsLeft = splitPaths(1,okPaths);
newPaths = strcat(char(join(pathsLeft, pathSep)), pathSep);
newPaths = char(join(pathsLeft, pathSep));
end
function checkRAVENversion(minmVer)
try
currVer = checkInstallation('versionOnly');
if strcmp(currVer,'develop')
printOrange('WARNING: Cannot determine your RAVEN version as it is in a development branch.\n')
else
currVerNum = str2double(strsplit(currVer,'.'));
minmVerNum = str2double(strsplit(minmVer,'.'));
for i=1:3
if currVerNum(i)<minmVerNum(i)
error('Installed RAVEN version is %s, while the minimum is %s.',currVer,minmVer)
end
end
end
catch
warning(['Cannot find RAVEN Toolbox in the MATLAB path, or the version ' ...
'is too old (before v' minmVer '). Make sure you have installed RAVEN in ' ...
'accordance to the following instructions, including running ' ...
'''checkInstallation()'': https://github.com/SysBioChalmers/RAVEN/wiki/Installation'])
end

end
end

properties (Constant)
FILE_FILTER = '.*\.git|.idea|userData.*';
end
FILE_FILTER = '.*\.git|.idea|tutorials.*|.github|_MACOSX|doc';
end
end
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ The **GECKO** toolbox enhances a **G**enome-scale model to account for **E**nzym

💡 In the GECKO folder, `protocol.m` contains instructions on how to reconstruct and analyze an ecModel for _S. cerevisiae_. This demonstrates how many of GECKO's functions can be used.

💡 In the [`GECKO/tutorials`](https://github.com/SysBioChalmers/GECKO/tree/main/tutorials) folder there are examples of how GECKO can be applied to GEMs, in either of its _full_ or _light_ forms. Each `protocol.m` contains instructions on how to reconstruct and analyze an ecModel, demonstrating how different fuctions in GECKO can be used. The source code documentation is also available
[online](http://sysbiochalmers.github.io/GECKO/doc/).

_**Note:** Regarding code and model compatibility with earlier GECKO versions, see [Previous versions: GECKO 1 and 2](#previous-versions-gecko-1-and-2)_.

### Citation
Expand All @@ -23,7 +26,7 @@ _**Note:** Regarding code and model compatibility with earlier GECKO versions, s
#### Required software

- MATLAB version 2019b or later, no additional MathWorks toolboxes are required.
- [RAVEN Toolbox](https://github.com/SysBioChalmers/RAVEN) version 2.7.12 or later. The RAVEN Toolbox Wiki contains [installation instructions for both RAVEN](https://github.com/SysBioChalmers/RAVEN/wiki/Installation) and [Gurobi](https://github.com/SysBioChalmers/RAVEN/wiki/Installation#solvers). Briefly, RAVEN is either downloaded via `git clone`, as ZIP-archive from GitHub, or installed as a [MATLAB AddOn](https://se.mathworks.com/matlabcentral/fileexchange/112330-raven-toolbox). After finishing all installation instructions, the user should run installation checks in MATLAB with: `checkInstallation`.
- [RAVEN Toolbox](https://github.com/SysBioChalmers/RAVEN). The RAVEN Toolbox Wiki contains [installation instructions for both RAVEN](https://github.com/SysBioChalmers/RAVEN/wiki/Installation) and [Gurobi](https://github.com/SysBioChalmers/RAVEN/wiki/Installation#solvers). Briefly, RAVEN is either downloaded via `git clone`, as ZIP-archive from GitHub, or installed as a [MATLAB AddOn](https://se.mathworks.com/matlabcentral/fileexchange/112330-raven-toolbox). After finishing all installation instructions, the user should run installation checks in MATLAB with: `checkInstallation`.
- [Gurobi Optimizer](https://www.gurobi.com/solutions/gurobi-optimizer/) is recommended for simulations (free academic license available). Alternatively, the open-source [GNU Linear Programming Kit](https://www.gnu.org/software/glpk/) (distributed with RAVEN) or SoPlex as part of the [SCIP Optimization Suite](https://scipopt.org/) can be used.
- [Docker](https://www.docker.com/) for running DLKcat. Installation instructions are available at https://docs.docker.com/get-docker .

Expand Down
3 changes: 2 additions & 1 deletion _config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
theme: jekyll-theme-minimal
logo: GECKO.png
show_downloads: false
show_downloads: true
exclude: [.github, databases, src, test, userData]
keep_files: ["doc/"]
Binary file removed databases/PhylDist.mat
Binary file not shown.
Binary file added doc/alpha.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/c++.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/c.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/demoicon.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/down.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading