diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 37458459..c8c4952e 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,35 +6,35 @@ You can contribute in 2 main ways: by creating issues, and by sending pull reque ### Reporting issues -[Report an issue](https://github.com/SysBioChalmers/GECKO/issues) if you note any of the following: +[Report an issue](https://github.com/CompMetEng/GECKO/issues) if you note any of the following: * Missing feature you would like GECKO to have. * Bug/weird simulation results. * Lacking documentation. * Any type of feedback. -If you are unsure about the issue, consider asking first in the [GitHub Discussions page](https://github.com/SysBioChalmers/GECKO/discussions). +If you are unsure about the issue, consider asking first in the [GitHub Discussions page](https://github.com/CompMetEng/GECKO/discussions). When creating the issue, please make sure: -* You tested your code (if any) with all of GECKO's [requirements](https://github.com/SysBioChalmers/GECKO). +* You tested your code (if any) with all of GECKO's [requirements](https://github.com/CompMetEng/GECKO). * You did your analysis in the `main` branch of the repository. * You provide any necessary files/links needed for understanding the issue. * You checked that a similar issue does not exist already -Feel free to also comment on any of the [open issues](https://github.com/SysBioChalmers/GECKO/issues). When doing so, please comply with our [code of conduct](https://github.com/SysBioChalmers/GECKO/blob/main/.github/CODE_OF_CONDUCT.md). +Feel free to also comment on any of the [open issues](https://github.com/CompMetEng/GECKO/issues). When doing so, please comply with our [code of conduct](https://github.com/CompMetEng/GECKO/blob/develop/.github/CODE_OF_CONDUCT.md). Finally, if you like GECKO please remember to 'star' our Github page (click on the star at top right corner), that way we also have an idea of who is using GECKO! ### Contributing to GECKO -Do you want to contribute to GECKO with some additions or improvements? Consider starting by raising an issue and assign it to yourself to describe what you want to achieve. This way, we reduce the risk of duplicated efforts and you may also get suggestions on how to best proceed, e.g. there may be half-finished work in some branch that you could start with. Also, feel free to browse our [open issues](https://github.com/SysBioChalmers/GECKO/issues): Anything tagged with "help wanted" is open to whoever wants to implement it! +Do you want to contribute to GECKO with some additions or improvements? Consider starting by raising an issue and assign it to yourself to describe what you want to achieve. This way, we reduce the risk of duplicated efforts and you may also get suggestions on how to best proceed, e.g. there may be half-finished work in some branch that you could start with. Also, feel free to browse our [open issues](https://github.com/CompMetEng/GECKO/issues): Anything tagged with "help wanted" is open to whoever wants to implement it! Here's how to set up GECKO for local development to contribute smaller features or changes that you can implement yourself: -1. First of all, make sure that you have all [requirements](https://github.com/SysBioChalmers/GECKO) for running GECKO. +1. First of all, make sure that you have all [requirements](https://github.com/CompMetEng/GECKO) for running GECKO. -2. [Fork the GECKO repository](https://github.com/SysBioChalmers/GECKO/fork) on GitHub. +2. [Fork the GECKO repository](https://github.com/CompMetEng/GECKO/fork) on GitHub. 3. Clone your fork locally: ``` @@ -63,7 +63,7 @@ Here's how to set up GECKO for local development to contribute smaller features ``` [See below](#semantic-commits) for recommendations on how to name your commits. In case of larger updates, you can of course make several commits on a single contribution. However, if you need to do too many commits, consider if your contribution could be instead split into separate PRs (making it easier for reviewing later). -8. Submit a PR through the GitHub website (https://help.github.com/articles/creating-a-pull-request-from-a-fork/) to the `develop` branch of the original SysBioChalmers repo (not your fork). We recommend ticking the box "Allow edits from maintainers" if you wish for us to be able to contribute directly to your branch (speeding-up the reviewing process). +8. Submit a PR through the GitHub website (https://help.github.com/articles/creating-a-pull-request-from-a-fork/) to the `develop` branch of the original CompMetEng repository (not your fork). We recommend ticking the box "Allow edits from maintainers" if you wish for us to be able to contribute directly to your branch (speeding-up the reviewing process). Note that steps 3, 4, 5 and 7 can be done, if you prefer, with any git client, such as [Github Desktop](https://desktop.github.com/). @@ -95,7 +95,7 @@ Please use concise descriptive commit messages. Ideally, use [semantic commit me * `refactor`: see [code refactoring](https://en.wikipedia.org/wiki/Code_refactoring). * `style`: minor format changes to functions or data. -More examples [here](https://github.com/SysBioChalmers/GECKO/commits/master). A more detailed explanation or comments is encouraged to be left in the commit description. +More examples [here](https://github.com/CompMetEng/GECKO/commits/develop). A more detailed explanation or comments is encouraged to be left in the commit description. ## Development team guidelines @@ -108,13 +108,13 @@ Changes to the source code _may not_ be directly committed to the `main` or `dev * Skip step 2 of the contribution process. * In step 3 of the contribution process, clone directly the original repo: ``` - git clone https://github.com/SysBioChalmers/GECKO.git + git clone https://github.com/CompMetEng/GECKO.git ``` Follow all other steps in the same way. Also, when creating your pull request (or after you have created it): * Choose 1 or more members of the team (ideally with knowledge on the pull request) as reviewers. Note that the person making the pull request and the reviewer _cannot_ be the same person. -* Assign appropriate [labels](https://github.com/SysBioChalmers/GECKO/issues/labels). +* Assign appropriate [labels](https://github.com/CompMetEng/GECKO/issues/labels). ### Reviewing pull requests @@ -124,7 +124,7 @@ Every pull request must be approved by at least one reviewer before it can be me * **Documentation:** The reasoning for each modification should be provided, as documentation or as a comment in the pull request. * **Reproducibility:** If there are any added scripts, make sure that if you run them, they achieve the desired purpose. * **Style:** Ensure that changes to the codebase have a compliant style, and new datasets (if any) are straight-forward to understand. -* When commenting in the review, please comply with our [code of conduct](https://github.com/SysBioChalmers/GECKO/blob/main/.github/CODE_OF_CONDUCT.md). +* When commenting in the review, please comply with our [code of conduct](https://github.com/CompMetEng/GECKO/blob/develop/.github/CODE_OF_CONDUCT.md). * Avoid vague comments and try to be as explicit as possible (e.g.: _"Please include X here"_ instead of _"X could be included here"_). * As much as possible, try to keep the review process in the pull request discussion, and not in separate private emails. @@ -133,8 +133,8 @@ Every pull request must be approved by at least one reviewer before it can be me This section is meant for the administrator of this repo. The main duties of the administrator are: * To keep the repository clean and organized, i.e. avoid redundancy in functions and/or data, and keep coherency in naming of files. -* To help in the reviewing process of external pull requests by assigning reviewers and [labels](https://github.com/SysBioChalmers/GECKO/issues/labels), if applicable. -* To keep [issues](https://github.com/SysBioChalmers/GECKO/issues) with the proper labels, and to close issues once they are fixed in the `main` branch. +* To help in the reviewing process of external pull requests by assigning reviewers and [labels](https://github.com/CompMetEng/GECKO/issues/labels), if applicable. +* To keep [issues](https://github.com/CompMetEng/GECKO/issues) with the proper labels, and to close issues once they are fixed in the `main` branch. * In cases of disagreement between contributors, to decide how to resolve the issue. * To merge open pull requests into `develop` regularly (see [below](#merging-contributions)). * To generate new releases of the model regularly (see [below](#releasing-a-new-version)). @@ -146,7 +146,7 @@ The following points should be considered when merging branches to `develop`: * Make sure the branch gets accepted by at least one developer with writing access. * Wait at least a day before merging, to allow other developers to inspect the pull request. * To simplify the git history, use "Squash and merge" in pull requests to `develop` (but **never** use this option when merging to `main`, see also below). -* As soon as the branch is merged, confirm that `develop` is still possible to merge to `main` (this can be checked [here](https://github.com/SysBioChalmers/GECKO/compare/develop)). If conflicts appear, fix the conflict _locally_ as soon as possible in `develop` and then push it (note, **DO NOT** pull any other changes from `main` to `develop`, just the single file that is creating the conflict). +* As soon as the branch is merged, confirm that `develop` is still possible to merge to `main` (this can be checked [here](https://github.com/CompMetEng/GECKO/compare/develop)). If conflicts appear, fix the conflict _locally_ as soon as possible in `develop` and then push it (note, **DO NOT** pull any other changes from `main` to `develop`, just the single file that is creating the conflict). ### Releasing a new version @@ -168,11 +168,11 @@ When releasing, please follow these steps: 1. Create a pull request from `develop` to `main`: - Specify the intended version in the title, e.g. `GECKO 3.0.1` - - Indicating all new features/fixes/etc. and referencing every previous pull request included (examples [here](https://github.com/SysBioChalmers/GECKO/releases)). - - If any [issue](https://github.com/SysBioChalmers/GECKO/issues) gets solved in the release, write in the pull request description "Closes #X", where "X" is the issue number. That way the issue will be automatically closed after merge. + - Indicating all new features/fixes/etc. and referencing every previous pull request included (examples [here](https://github.com/CompMetEng/GECKO/releases)). + - If any [issue](https://github.com/CompMetEng/GECKO/issues) gets solved in the release, write in the pull request description "Closes #X", where "X" is the issue number. That way the issue will be automatically closed after merge. 2. Wait at least a day for at least one approval. The GitHub Actions must also pass successfully. 3. Merge the pull request from `develop` to `main` with the option "Create a merge commit", **not** "Squash and merge". -4. Edit the `version.txt` in the `main` branch directly [link](https://github.com/SysBioChalmers/GECKO/edit/main/version.txt) to refer to the new version number. Commit the change directly to the `main` branch. -5. Make the [new release](https://github.com/SysBioChalmers/GECKO/releases/new) at GitHub: +4. Edit the `version.txt` in the `main` branch directly [link](https://github.com/CompMetEng/GECKO/edit/main/version.txt) to refer to the new version number. Commit the change directly to the `main` branch. +5. Make the [new release](https://github.com/CompMetEng/GECKO/releases/new) at GitHub: - Define a new tag with the version, prefixed by `v`: e.g. `v3.0.1`. - Copy the description from the corresponding PR from step 1. diff --git a/.github/ISSUE_TEMPLATE/bug-detected.md b/.github/ISSUE_TEMPLATE/bug-detected.md index b6e2c265..885d8df0 100644 --- a/.github/ISSUE_TEMPLATE/bug-detected.md +++ b/.github/ISSUE_TEMPLATE/bug-detected.md @@ -29,6 +29,6 @@ is very useful for us to replicate the problem you encountered. --> #### I hereby confirm that: -- [ ] My GECKO installation met [all requirements](https://github.com/SysBioChalmers/GECKO#required-software). +- [ ] My GECKO installation met [all requirements](https://github.com/CompMetEng/GECKO#required-software). - [ ] This bug occurs in the `main` branch of the repository. -- [ ] A similar [issue](https://github.com/SysBioChalmers/GECKO/issues) does not already exist. +- [ ] A similar [issue](https://github.com/CompMetEng/GECKO/issues) does not already exist. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2bd78878..ca68f2a1 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: true contact_links: - name: GitHub Discussions - url: https://github.com/SysBioChalmers/GECKO/discussions + url: https://github.com/CompMetEng/GECKO/discussions about: You may also ask for support (or contribute with answers) at the GitHub Discussions page. diff --git a/.github/ISSUE_TEMPLATE/new-feature.md b/.github/ISSUE_TEMPLATE/new-feature.md index a4b6a904..d489c3bd 100644 --- a/.github/ISSUE_TEMPLATE/new-feature.md +++ b/.github/ISSUE_TEMPLATE/new-feature.md @@ -16,4 +16,4 @@ assignees: '' #### I hereby confirm that: - [ ] The new feature is not already in the `main` branch of the repository. -- [ ] A similar [issue](https://github.com/SysBioChalmers/GECKO/issues) does not already exist. +- [ ] A similar [issue](https://github.com/CompMetEng/GECKO/issues) does not already exist. diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 349922ac..4250acd1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,15 +20,13 @@ jobs: - name: Checkout GECKO uses: actions/checkout@v5 - # develop3, not RAVEN's default branch. GECKO 4 is developed against - # RAVEN's develop3 line, and taking the default meant testing against - # main --- which is why the removal of progressbar went unnoticed here - # while breaking every user on develop3. + # RAVEN develop holds RAVEN 3, which GECKO 4 is developed against; RAVEN + # main holds the RAVEN release. - name: Checkout RAVEN uses: actions/checkout@v5 with: - repository: SysBioChalmers/RAVEN - ref: develop3 + repository: CompMetEng/RAVEN + ref: develop path: RAVEN - name: Set up MATLAB diff --git a/GECKOInstaller.m b/GECKOInstaller.m index 08e50b5f..a870b981 100644 --- a/GECKOInstaller.m +++ b/GECKOInstaller.m @@ -17,7 +17,7 @@ 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']) + 'https://raven-docs.readthedocs.io/en/latest/installation/raven.html']) else status=checkFunctionUniqueness(paths); if ~status @@ -65,9 +65,9 @@ function checkRAVENversion(minmVer) wrongVersion = false; try if exist('checkRaven','file') == 2 - [currVer, installType] = checkRaven('versionOnly'); + currVer = checkRaven('versionOnly'); else - [currVer, installType] = checkInstallation('versionOnly'); + currVer = checkInstallation('versionOnly'); end if strcmp(currVer,'develop') printOrange('WARNING: Cannot determine your RAVEN version as it is in a development branch.\n'); @@ -78,22 +78,14 @@ function checkRAVENversion(minmVer) warning(['Cannot find RAVEN Toolbox in the MATLAB path, or the version ' ... 'is too old for this GECKO version (RAVEN ' minmVer ' is required). ' ... 'Make sure you have installed RAVEN following the instructions available '... - 'here, '... + 'here, '... 'including running ''checkInstallation()''.']) end if wrongVersion - switch installType - case 0 - installType = 'advanced'; - case 1 - installType = 'easy'; - case 2 - installType = 'medium'; - end error(['Installed RAVEN version is %s, while the minimum is %s. '... 'Upgrade RAVEN by following the instructions available ' ... - 'here. Do not attempt to run GECKO before upgrading.'], ... + 'here. ' ... + 'Do not attempt to run GECKO before upgrading.'], ... currVer,minmVer) end end @@ -107,13 +99,13 @@ function checkRAVENversion(minmVer) fclose('all'); fprintf('GECKO version %s installed',currVer) try - newVer=strtrim(webread('https://raw.githubusercontent.com/SysBioChalmers/GECKO/main/version.txt')); + newVer=strtrim(webread('https://raw.githubusercontent.com/CompMetEng/GECKO/main/version.txt')); if GECKOInstaller.isOlderVersion(currVer, newVer) fprintf(', newer version %s is available',newVer) if ~hasGit fprintf('\nRun git pull in your favourite git client to update GECKO\n'); else - fprintf('\nInstructions on how to upgrade here\n'); + fprintf('\nInstructions on how to upgrade here\n'); end else fprintf('\n'); diff --git a/README.md b/README.md index 62fdeaa8..cab53aad 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -[![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) +[![Current release](https://img.shields.io/github/release/CompMetEng/GECKO/all.svg)](https://github.com/CompMetEng/GECKO/releases/) +[![GitHub Discussions](https://img.shields.io/github/discussions-search?query=repo%3ACompMetEng%2FGECKO&label=GitHub%20Discussions)](https://github.com/CompMetEng/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) @@ -10,7 +10,7 @@ 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 [Nature Protocols](https://doi.org/10.1038/s41596-023-00931-7) paper ([**PDF**](https://drive.google.com/file/d/1_AGz6GmQPOyshfUZ6K-L2myzU43rQ6tu/view)). +💡 In the [`GECKO/tutorials`](https://github.com/CompMetEng/GECKO/tree/develop/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. @@ -24,9 +24,8 @@ 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* **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 -[online](http://sysbiochalmers.github.io/GECKO/doc/). Use [GitHub Discussions](https://github.com/SysBioChalmers/GECKO/discussions) for support, to ask questions or leave comments. +**Installation instructions**, the protocol and the API reference are published at **[gecko-docs](https://gecko-docs.readthedocs.io/en/latest/)**. Use [GitHub Discussions](https://github.com/CompMetEng/GECKO/discussions) for support, to ask questions or leave comments. ## Contributing -Contributions are always welcome! Please read the [contributing guidelines](https://github.com/SysBioChalmers/GECKO/blob/main/.github/CONTRIBUTING.md) to get started. +Contributions are always welcome! Please read the [contributing guidelines](https://github.com/CompMetEng/GECKO/blob/develop/.github/CONTRIBUTING.md) to get started. diff --git a/databases/README.md b/databases/README.md index 2d6d07fc..9726a6af 100644 --- a/databases/README.md +++ b/databases/README.md @@ -10,7 +10,7 @@ ### kcat values from BRENDA -`kcat.tsv` collates kcat values per organism, reaction and substrate, as gathered from the BRENDA database. Both a per-triple maximum (`kcat_max`) and median (`kcat_median`) are recorded. Which one is used is set by `params.kcatAggregation` on the model adapter, or per call with `fuzzyKcatMatching(model,'kcatAggregation','median')`; the default is `max`. Produced by the `geckopy brenda-refresh` CLI in the [geckopy](https://github.com/SysBioChalmers/geckopy) Python package, which maintains the actively updated BRENDA-parsing tooling for both toolboxes; `mw.tsv` and `sa.tsv` below come from the same tool and share its `#`-prefixed release-version header line. +`kcat.tsv` collates kcat values per organism, reaction and substrate, as gathered from the BRENDA database. Both a per-triple maximum (`kcat_max`) and median (`kcat_median`) are recorded. Which one is used is set by `params.kcatAggregation` on the model adapter, or per call with `fuzzyKcatMatching(model,'kcatAggregation','median')`; the default is `max`. Produced by the `geckopy brenda-refresh` CLI in the [geckopy](https://github.com/CompMetEng/geckopy) Python package, which maintains the actively updated BRENDA-parsing tooling for both toolboxes; `mw.tsv` and `sa.tsv` below come from the same tool and share its `#`-prefixed release-version header line. ### Molecular weights diff --git a/tutorials/full_ecModel/protocol.m b/tutorials/full_ecModel/protocol.m index a6379254..4b337d23 100644 --- a/tutorials/full_ecModel/protocol.m +++ b/tutorials/full_ecModel/protocol.m @@ -23,14 +23,14 @@ %% Installation % - Install RAVEN & GECKO % - Install RAVEN by following the installation instructions: -% https://github.com/SysBioChalmers/RAVEN/wiki/Installation +% https://raven-docs.readthedocs.io/en/latest/installation/raven.html % - Simplest, RAVEN can be installed as MATLAB Add-On: % https://se.mathworks.com/help/matlab/matlab_env/get-add-ons.html % - The installation of Gurobi as LP solver is highly recommended checkRaven; % Confirm that RAVEN is functional. On RAVEN 2, run checkInstallation. % - Install GECKO by following the installation instructions: -% https://github.com/SysBioChalmers/GECKO/wiki/Installation-and-upgrade +% https://gecko-docs.readthedocs.io/en/latest/installation/ % - As RAVEN, GECKO can also be installed as MATLAB Add-On (link above) % - Add the appropriate GECKO (sub)folders to MATLAB path. GECKOInstaller % is located in the GECKO root folder: navigate there first if it is