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.2.2 #388

Merged
merged 3 commits into from
Oct 15, 2024
Merged
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
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ You can contribute in 2 main ways: by creating issues, and by sending pull reque
* Lacking documentation.
* Any type of feedback.

If you are unsure about the issue, consider asking first in our [Gitter chat room](https://gitter.im/SysBioChalmers/GECKO).
If you are unsure about the issue, consider asking first in the [GitHub Discussions page](https://github.com/SysBioChalmers/GECKO/discussions).

When creating the issue, please make sure:

Expand Down
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Gitter Channel
url: https://gitter.im/SysBioChalmers/GECKO
about: You may also ask questions (or contribute with answers) at the GECKO Gitter channel.
- name: GitHub Discussions
url: https://github.com/SysBioChalmers/GECKO/discussions
about: You may also ask for support (or contribute with answers) at the GitHub Discussions page.
18 changes: 13 additions & 5 deletions GECKOInstaller.m
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,22 @@ function checkRAVENversion(minmVer)
try
[currVer, installType] = checkInstallation('versionOnly');
if strcmp(currVer,'develop')
printOrange('WARNING: Cannot determine your RAVEN version as it is in a development branch.\n')
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)
wrongVersion = true;
end
if currVerNum(1) < minmVerNum(1)
wrongVersion = true;
elseif currVerNum(1) > minmVerNum(1)
wrongVersion = false;
elseif currVerNum(2) < minmVerNum(2)
wrongVersion = true;
elseif currVerNum(2) > minmVerNum(2)
wrongVersion = false;
elseif currVerNum(3) < minmVerNum(3)
wrongVersion = true;
elseif currVerNum(3) >= minmVerNum(3)
wrongVersion = false;
end
end
catch
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<img src="./GECKO.png" width="200px">

![Current version](https://badge.fury.io/gh/sysbiochalmers%2Fgecko.svg)
[![Current release](https://img.shields.io/github/release/SysBioChalmers/GECKO/all.svg)](https://GitHub.com/SysBioChalmers/GECKO/releases/)
[![GitHub Discussions](https://img.shields.io/github/discussions-search?query=repo%3Asysbiochalmers%2Fgecko&label=GitHub%20Discussions)](https://github.com/SysBioChalmers/GECKO/discussions)
[![Zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.7699818.svg)](https://doi.org/10.5281/zenodo.7699818)
[![MATLAB File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://se.mathworks.com/matlabcentral/fileexchange/125960-gecko-toolbox)

## About GECKO 3.0

## About GECKO 3

The **GECKO** toolbox enhances a **G**enome-scale model to account for **E**nzyme **C**onstraints, using **K**inetics and **O**mics. The resulting enzyme-constrained model (**ecModel**) can be used to perform simulations where enzyme allocation is either drawn from a total protein pool, or constrained by measured protein levels from proteomics data.

💡 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. These two scripts complement the [protocols paper](#citation).
💡 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. These two scripts complement the [Nature Protocols](https://doi.org/10.1038/s41596-023-00931-7) paper ([**PDF**](https://drive.google.com/file/d/1_AGz6GmQPOyshfUZ6K-L2myzU43rQ6tu/view)).

### Significant changes since protocol publication
- GECKO **3.2.0**: all protein usage reactions draw from the protein pool, even if they are constrained by proteomics data. This affects **Step 58** in the protocol, changing behaviour of `constrainEnzConcs` and making `updateProtPool` obsolete, `tutorials/full_ecModel/protocol.m` is updated to reflect this change. See [#357](https://github.com/SysBioChalmers/GECKO/issues/375) for more details.
Expand All @@ -19,7 +21,7 @@ _**Note:** Regarding code and model compatibility with earlier GECKO versions, s

If you have used GECKO in your work, please cite:

> Chen Y, Gustafsson J, Tafur Rangel A, Anton M, Domenzain I, Kittikunapong C, Li F, Yuan L, Nielsen J, Kerkhoven EJ. Reconstruction, simulation and analysis of enzyme-constrained metabolic models using GECKO Toolbox 3.0. Nature Protocols. 2024 Jan 18:1-39. doi: [10.1038/s41596-023-00931-7](https://doi.org/10.1038/s41596-023-00931-7)
> Chen Y, Gustafsson J, Tafur Rangel A, Anton M, Domenzain I, Kittikunapong C, Li F, Yuan L, Nielsen J & Kerkhoven EJ. Reconstruction, simulation and analysis of enzyme-constrained metabolic models using GECKO Toolbox 3.0. *Nature Protocols* **19**, 629-667 (2024). doi:[10.1038/s41596-023-00931-7](https://doi.org/10.1038/s41596-023-00931-7).

## Documentation
**Installation instructions** and other information is available in the **[Wiki](https://github.com/SysBioChalmers/GECKO/wiki)**. The source code documentation is also available
Expand Down
2 changes: 1 addition & 1 deletion doc/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ <h2>Matlab Files found in these Directories</h2>
<td><a href="src/geckomat/model_adapter/adapterTemplate.html" title="src\geckomat\model_adapter">adapterTemplate</a></td> <td><a href="src/geckomat/limit_proteins/fillEnzConcs.html" title="src\geckomat\limit_proteins">fillEnzConcs</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/Bayesian/getrSample.html" title="src\geckomat\kcat_sensitivity_analysis\Bayesian">getrSample</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/sensitivityTuning.html" title="src\geckomat\kcat_sensitivity_analysis">sensitivityTuning</a></td> </tr> <tr>
<td><a href="src/geckomat/kcat_sensitivity_analysis/Bayesian/addCarbonNum.html" title="src\geckomat\kcat_sensitivity_analysis\Bayesian">addCarbonNum</a></td> <td><a href="src/geckomat/get_enzyme_data/findECInDB.html" title="src\geckomat\get_enzyme_data">findECInDB</a></td> <td><a href="src/geckomat/get_enzyme_data/loadBRENDAdata.html" title="src\geckomat\get_enzyme_data">loadBRENDAdata</a></td> <td><a href="src/geckomat/change_model/setKcatForReactions.html" title="src\geckomat\change_model">setKcatForReactions</a></td> </tr> <tr>
<td><a href="src/geckomat/utilities/addNewRxnsToEC.html" title="src\geckomat\utilities">addNewRxnsToEC</a></td> <td><a href="src/geckomat/utilities/findGECKOroot.html" title="src\geckomat\utilities">findGECKOroot</a></td> <td><a href="src/geckomat/utilities/loadConventionalGEM.html" title="src\geckomat\utilities">loadConventionalGEM</a></td> <td><a href="src/geckomat/change_model/setProtPoolSize.html" title="src\geckomat\change_model">setProtPoolSize</a></td> </tr> <tr>
<td><a href="src/geckomat/kcat_sensitivity_analysis/Bayesian/anaerobicModel.html" title="src\geckomat\kcat_sensitivity_analysis\Bayesian">anaerobicModel</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/findMaxValue.html" title="src\geckomat\kcat_sensitivity_analysis">findMaxValue</a></td> <td><a href="src/geckomat/get_enzyme_data/loadDatabases.html" title="src\geckomat\get_enzyme_data">loadDatabases</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/sigmaFitter.html" title="src\geckomat\kcat_sensitivity_analysis">sigmaFitter</a></td> </tr> <tr>
<td><a href="src/geckomat/kcat_sensitivity_analysis/Bayesian/anaerobicModel_GECKO.html" title="src\geckomat\kcat_sensitivity_analysis\Bayesian">anaerobicModel_GECKO</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/findMaxValue.html" title="src\geckomat\kcat_sensitivity_analysis">findMaxValue</a></td> <td><a href="src/geckomat/get_enzyme_data/loadDatabases.html" title="src\geckomat\get_enzyme_data">loadDatabases</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/sigmaFitter.html" title="src\geckomat\kcat_sensitivity_analysis">sigmaFitter</a></td> </tr> <tr>
<td><a href="src/geckomat/change_model/applyComplexData.html" title="src\geckomat\change_model">applyComplexData</a></td> <td><a href="src/geckomat/change_model/findMetSmiles.html" title="src\geckomat\change_model">findMetSmiles</a></td> <td><a href="src/geckomat/utilities/loadEcModel.html" title="src\geckomat\utilities">loadEcModel</a></td> <td><a href="src/geckomat/utilities/startGECKOproject.html" title="src\geckomat\utilities">startGECKOproject</a></td> </tr> <tr>
<td><a href="src/geckomat/change_model/applyCustomKcats.html" title="src\geckomat\change_model">applyCustomKcats</a></td> <td><a href="src/geckomat/limit_proteins/flexibilizeEnzConcs.html" title="src\geckomat\limit_proteins">flexibilizeEnzConcs</a></td> <td><a href="src/geckomat/utilities/loadFluxData.html" title="src\geckomat\utilities">loadFluxData</a></td> <td><a href="src/geckomat/kcat_sensitivity_analysis/truncateValues.html" title="src\geckomat\kcat_sensitivity_analysis">truncateValues</a></td> </tr> <tr>
<td><a href="src/geckomat/change_model/applyKcatConstraints.html" title="src\geckomat\change_model">applyKcatConstraints</a></td> <td><a href="src/geckomat/gather_kcats/fuzzyKcatMatching.html" title="src\geckomat\gather_kcats">fuzzyKcatMatching</a></td> <td><a href="src/geckomat/utilities/loadProtData.html" title="src\geckomat\utilities">loadProtData</a></td> <td><a href="src/geckomat/utilities/updateGECKOdoc.html" title="src\geckomat\utilities">updateGECKOdoc</a></td> </tr> <tr>
Expand Down
2 changes: 1 addition & 1 deletion doc/src/geckomat/change_model/applyCustomKcats.html
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" sr
0185 <span class="keyword">if</span> ~isempty(find(rxnToUpdate, 1))
0186 model = <a href="applyKcatConstraints.html" class="code" title="function model = applyKcatConstraints(model,updateRxns)">applyKcatConstraints</a>(model, rxnToUpdate);
0187 <span class="keyword">else</span>
0188 printOrange(<span class="string">'WARNING: No matches found. Consider checking the IDs or proteins in customKcats.'</span>)
0188 printOrange(<span class="string">'WARNING: No matches found. Consider checking the IDs or proteins in customKcats.'</span>);
0189 <span class="keyword">end</span>
0190
0191 rxnUpdated = model.ec.rxns(find(rxnToUpdate));
Expand Down
5 changes: 2 additions & 3 deletions doc/src/geckomat/change_model/applyKcatConstraints.html
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" sr
0046 <span class="string">' not a valid GECKO3 ecModel. First run makeEcModel(model).'</span>])
0047 <span class="keyword">end</span>
0048 <span class="keyword">if</span> all(model.ec.kcat==0)
0049 printOrange(<span class="string">'WARNING: No kcat values are provided in model.ec.kcat, model remains unchanged.\n'</span>)
0049 printOrange(<span class="string">'WARNING: No kcat values are provided in model.ec.kcat, model remains unchanged.\n'</span>);
0050 <span class="keyword">return</span>
0051 <span class="keyword">end</span>
0052
Expand Down Expand Up @@ -177,8 +177,7 @@ <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" sr
0115 model.S(prot_pool_idx, hasEc(i)) = -min(MWkcat/3600);
0116 <span class="keyword">end</span>
0117 <span class="keyword">end</span>
0118 <span class="keyword">end</span>
0119</pre></div>
0118 <span class="keyword">end</span></pre></div>
<hr><address>Generated by <strong><a href="http://www.artefact.tk/software/matlab/m2html/" title="Matlab Documentation in HTML">m2html</a></strong> &copy; 2005</address>
</body>
</html>
2 changes: 1 addition & 1 deletion doc/src/geckomat/change_model/getComplexData.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" sr
0044
0045 params = modelAdapter.params;
0046 <span class="keyword">if</span> isempty(taxonomicID) <span class="comment">% Can be empty when gathered from model adapter</span>
0047 printOrange(<span class="string">'WARNING: No taxonomicID specified.'</span>)
0047 printOrange(<span class="string">'WARNING: No taxonomicID specified.'</span>);
0048 <span class="keyword">return</span>
0049 <span class="keyword">elseif</span> taxonomicID == 0
0050 taxonomicID = [];
Expand Down
2 changes: 1 addition & 1 deletion doc/src/geckomat/change_model/getKcatAcrossIsozymes.html
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" sr
0018 error(<span class="string">'Provided model is a GECKO light version, this function is not relevant for such models'</span>)
0019 <span class="keyword">end</span>
0020 <span class="keyword">if</span> all(model.ec.kcat==0)
0021 printOrange(<span class="string">'WARNING: No kcat values are provided in model.ec.kcat, model remains unchanged.\n'</span>)
0021 printOrange(<span class="string">'WARNING: No kcat values are provided in model.ec.kcat, model remains unchanged.\n'</span>);
0022 <span class="keyword">return</span>
0023 <span class="keyword">end</span>
0024
Expand Down
Loading
Loading