Skip to content

yeast 8.3.5 #213

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

Merged
merged 32 commits into from
Apr 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
346edc0
feat-function: update the function to fix anaerobic growth
feiranl Sep 24, 2019
fde588f
feat-function: add a function to rescale the nitrogen limited conditi…
feiranl Sep 24, 2019
269fbbd
feat-Growth function for figS4c for yeast8 paper
feiranl Sep 24, 2019
7bcf7a5
feat-add a function to test essential genes
feiranl Sep 24, 2019
511aadc
feat-update several functions to delete redundant lines.
feiranl Oct 2, 2019
eb2e695
feat-update the function notes
feiranl Oct 2, 2019
1a53af9
feat-change the location for meanerror in the figure
feiranl Oct 2, 2019
529901f
style: folder naming
Nov 5, 2019
4714646
fix: cd to right places
Nov 5, 2019
13d3fd1
style: misc changes in format
Nov 5, 2019
b8ec446
fix: revert scaleBioMass to original version
Nov 5, 2019
aa2564d
refactor: scaleBioMass
Nov 5, 2019
c6a767d
feat: generalize sumBioMass to not require data
Nov 5, 2019
fbf88a2
refactor: scaleBioMass function
Nov 5, 2019
9f91753
fix: lipid rescaling
Nov 5, 2019
3d165e6
Merge pull request #199 from SysBioChalmers/feat-anaerobicgrowth
BenjaSanchez Nov 11, 2019
8a98cd4
refactor: rename folder/file
BenjaSanchez Dec 26, 2019
72b7219
style: essentialGenes
BenjaSanchez Jan 1, 2020
d86554e
chore: move manual curation scripts
BenjaSanchez Mar 20, 2020
2db7146
chore: move other scripts
BenjaSanchez Mar 20, 2020
1ce22e0
doc: add readme files to script/data folders
BenjaSanchez Mar 20, 2020
5054f75
fix: shorten readme file
BenjaSanchez Mar 20, 2020
327ff2d
refactor: remove redundant changes in essentialGenes
BenjaSanchez Mar 24, 2020
aedb78e
Merge pull request #200 from SysBioChalmers/feat-essentialGenes
BenjaSanchez Mar 24, 2020
d0b4e0b
Merge pull request #209 from SysBioChalmers/chore/move-deprecated-scr…
edkerk Mar 24, 2020
2e5460c
doc: simplify templates
BenjaSanchez Mar 27, 2020
ac52a14
doc: update citation guidelines
BenjaSanchez Mar 27, 2020
93f2594
doc: update contribution guidelines
BenjaSanchez Mar 27, 2020
0d6aa78
fix: tabs in contributing guidelines
BenjaSanchez Mar 27, 2020
215bce4
Merge pull request #210 from SysBioChalmers/doc/update-guidelines
BenjaSanchez Mar 30, 2020
ff677f1
fix: remove non-s288c genes
BenjaSanchez Mar 31, 2020
f2f41c1
Merge pull request #211 from SysBioChalmers/fix/removeWrongGenes
BenjaSanchez Apr 1, 2020
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
31 changes: 21 additions & 10 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,26 @@ Here's how to set up yeast-GEM for local development to contribute smaller featu
```
git clone https://github.com/<your Github name>/yeast-GEM.git
```

4. Check out the branch that you want to contribute to. Most likely that will be ``devel``:
```
git checkout devel
```

5. Create a branch for local development based on the previously checked out branch ([see below](#branching-model) for details on the branching model and how to name your branch):
```
git checkout -b name-of-your-branch
```

6. Now you can make your changes locally!
* Always make your changes in Matlab and never directly editing the model files. For loading the model use `loadYeastModel.m`, and for saving the model use `saveYeastModel.m`. The latter will ensure all 3 versions of the model (`.xml`, `.yml` & `.txt`) get updated in the same way.
* If your changes are minor (e.g. a single chemical formula you wish to correct), you can do it directly from the command line.
* If your changes are not so small and require several steps, create a script that loads the model, reads data (if applicable), changes the model accordingly, and saves the model back.
* Each script should start with a commented section describing the script, explaining the parameters, and indicating your name and the date it was written. Existing functions can clarify what style should be used.
* If you add new metabolites and/or rxns to the model, please use `/ComplementaryScripts/otherChanges/getNewIndex.m` for obtaining new ids. If you add a new gene, please use as id the [systematic names from SGD](http://seq.yeastgenome.org/help/community/nomenclature-conventions).
* As much as possible follow the model conventions:
- For new metabolites and/or reactions, please use `/ComplementaryScripts/otherChanges/getNewIndex.m` for obtaining new ids.
- For metabolite and/or reaction names, please avoid any unconventional characters (e.g. Greek letters).
- For new genes, please use as id the [systematic names from SGD](http://seq.yeastgenome.org/help/community/nomenclature-conventions).
* Store scripts in the appropriate folder in `/ComplementaryScripts` and data (as `.tsv` files) in the appropriate folder in `/ComplementaryData`. If you think no folder is adequate for your script/data, feel free to create your own folder. Note that binary data such as `.mat` structures or `.xls` tables cannot be stored in the repo (as they cannot be version-controlled, and they increment too much the size of the repo).
* When you are done making changes, review locally your changes with `git diff` or any git client, to make sure you are modifying the model as you intended.

Expand Down Expand Up @@ -86,7 +89,7 @@ Thank you very much for contributing to yeast-GEM!
* `gh-pages`: Is only touched by the administrator and for maintaining the [landing page](http://sysbiochalmers.github.io/yeast-GEM/) of yeast-GEM.

* `{chore, doc, feat, fix, refactor, style}/descriptive-name`: Any other branch created in the model. If you work on a fix, start the branch name with `fix/`, if you work on a feature, start the branch name with `feat/`. Examples: `fix/format_reactions` or `feat/new_algorithms`. [See below](#semantic-commits) for more details on the possible actions you can use.

#### Semantic commits

Please use concise descriptive commit messages. Ideally, use semantic commit messages to make it easier to show what you are aiming to do:
Expand All @@ -95,7 +98,7 @@ Please use concise descriptive commit messages. Ideally, use semantic commit mes
* `action` = {`feat`, `fix`, `refactor`, `style`, `doc`, `chore`, `test`}
* `object` (optional field) = {`rxn`, `rxn.annot`, `rxn.prop`, `met`, `met.annot`, `met.prop`, `gene`, `gene.annot`, `comp`, `comp.annot`, `data`}

`action` refers to what exactly are you doing in the commit, following a [standard definition](http://karma-runner.github.io/2.0/dev/git-commit-msg.html) in software development:
`action` refers to what exactly are you doing in the commit, following a [standard definition](http://karma-runner.github.io/2.0/dev/git-commit-msg.html) in software development:
* `chore`: updating toolbox, data files, etc.
* `doc`: updating documentation or explanatory comments in functions.
* `feat`: new feature added, e.g. new reaction / metabolite / function / etc.
Expand Down Expand Up @@ -143,7 +146,7 @@ Follow all other steps in the same way. Also, when creating your pull request (o
* 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/yeast-GEM/issues/labels).
* Assign the pull request to one of the available [projects](https://github.com/SysBioChalmers/yeast-GEM/projects), if applicable.

### Reviewing pull requests

Every pull request must be approved by at least one reviewer before it can be merged. When reviewing someone else's pull request, keep in mind the following aspects:
Expand Down Expand Up @@ -190,17 +193,25 @@ yeast-GEM follows [semantic versioning](https://semver.org/), adapted to GEMs:
* Updating toolboxes.
* Re-organization of data
* Refactoring of code.

When releasing, please follow these steps:
1. Make sure all dependencies in `devel` correspond to the setup from the local computer from which the release will be made. If not, make a single commit in `devel` updating this with a `loadYeastModel`/`saveYeastModel` cycle.
2. Create a pull request from `devel` to `master`, indicating all new features/fixes/etc. and referencing every previous pull request included (examples [here](https://github.com/SysBioChalmers/yeast-GEM/releases)). Tip: if any [issue](https://github.com/SysBioChalmers/yeast-GEM/issues) gets solved in the release, write in the pull request description "Fixes #X", where "X" is the issue number. That way the issue will be automatically closed after merge.
3. Merge at least a day after (having at least one accepted review).
4. Switch locally to `master` and update `history.md`, by putting at the top the same description of the corresponding PR from step 2.
5. Bump version with `increaseVersion.m`. **NOTE:** The function will error if unexpected changes are occurring. If this happens, probably step 1 was done incorrectly. To fix it, commit in `devel` any necessary changes and make a new pull request.
6. Commit changes from steps 4 and 5 with the message `chore: version X.Y.Z`.
7. Make the new release at GitHub (https://github.com/SysBioChalmers/yeast-GEM/releases/new), using the proper tag "vX.Y.Z" and with the same description as the corresponding PR from step 2.
7. Make the new release at GitHub [here](https://github.com/SysBioChalmers/yeast-GEM/releases/new), using the proper tag "vX.Y.Z" and with the same description as the corresponding PR from step 2.
8. Pull from `master` to `gh-pages` to update the landing page.

9. Review the [Zenodo](https://zenodo.org) release: Every new release from Github (step 7) automatically triggers a new release in Zenodo. However, so far it is not possible to fully customize this release, and some manual curation is needed. This includes:
* Ensuring the title of the release has the format `SysBioChalmers/yeast-GEM: yeast X.Y.Z`.
* Correcting author names.
* Ensuring the version of the release has the format `vX.Y.Z`.
* Setting the language to English.
* Adding any Grant IDs (if applicable).

Make sure to both save & publish your edits. You will find the new release at the top of [all Zenodo releases](https://zenodo.org/search?page=1&size=20&q=conceptrecid:%221494182%22&sort=-publication_date&all_versions=True). Note that it might take some minutes for the Zenodo release to appear after you create the release in Github.

## Acknowledgments

These contribution guidelines were written based on the contribution guidelines of [opencobra/cobrapy](https://github.com/opencobra/cobrapy/blob/devel/.github/CONTRIBUTING.rst) and [SysBioChalmers/RAVEN](https://github.com/SysBioChalmers/RAVEN/wiki/DevGuidelines).
2 changes: 0 additions & 2 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,3 @@
- [ ] Done this analysis in the `master` branch of the repository
- [ ] Checked that a similar issue does not exist already
- [ ] If needed, asked first in the [Gitter chat room](https://gitter.im/SysBioChalmers/yeast-GEM) about the issue

*Note: replace [ ] with [X] to check the box. PLEASE DELETE THIS LINE*
2 changes: 0 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,3 @@
- [ ] Tested my code with [all requirements](https://github.com/SysBioChalmers/yeast-GEM#required-software---contributor) for running the model
- [ ] Selected `devel` as a target branch (top left drop-down menu)
- [ ] If needed, asked first in the [Gitter chat room](https://gitter.im/SysBioChalmers/yeast-GEM) about this PR

*Note: replace [ ] with [X] to check the box. PLEASE DELETE THIS LINE*
3 changes: 3 additions & 0 deletions ComplementaryData/databases/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Databases

Yeast data from different databases (KEGG, SGD, swissprot, etc).
3 changes: 3 additions & 0 deletions ComplementaryData/modelCuration/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Model Curation

Data files used for performing curations to the model. Mostly lists of new rxns, mets or genes added (or fixed) in the model.
3 changes: 3 additions & 0 deletions ComplementaryData/physiology/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Physiology

Data on yeast growth under different conditions, biomass composition, gene essentiality experiments, etc.
33 changes: 33 additions & 0 deletions ComplementaryData/physiology/chemostatData_Tobias2013.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
GLCxtI O2xtI NH3xtI experimental growth
5.800000 2.700000 0.400000 0.100000
4.830000 4.420000 0.420000 0.100000
3.500000 7.800000 0.610000 0.150000
4.610000 9.200000 0.740000 0.180000
5.300000 1000 0.850000 0.200000
5.670000 8.700000 0.830000 0.200000
8.000000 8.800000 0.960000 0.250000
9.450000 9.300000 1.090000 0.280000
12.680000 8.200000 1.330000 0.340000
1.150000 2.700000 1000 0.100000
1.170000 2.500000 1000 0.100000
1.690000 4.000000 1000 0.150000
2.260000 5.000000 1000 0.200000
2.880000 6.500000 1000 0.250000
3.270000 7.460000 1000 0.270000
3.290000 7.800000 1000 0.280000
3.880000 8.000000 1000 0.310000
6.200000 7.000000 1000 0.330000
7.890000 6.500000 1000 0.350000
13.390000 3.000000 1000 0.380000
2.300000 0.000000 1000 0.030000
2.860000 0.000000 1000 0.047000
5.880000 0.000000 1000 0.101000
11.310000 0.000000 1000 0.190000
16.750000 0.000000 1000 0.281000
22.180000 0.000000 1000 0.369000
4.150000 0.000000 0.230000 0.050000
8.400000 0.000000 0.480000 0.100000
8.700000 0.000000 0.550000 0.100000
12.400000 0.000000 0.920000 0.160000
15.300000 0.000000 1.330000 0.200000
17.400000 0.000000 1.620000 0.240000
6 changes: 6 additions & 0 deletions ComplementaryScripts/deprecated/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
## Deprecated Scripts

Scripts that either:

* Include changes that were already integrated to the model and will not be needed anymore.
* Were deprecated by newer functions.
Original file line number Diff line number Diff line change
@@ -1,70 +1,70 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% addiSce926changes
% Add changes from the model iSce926 + manual curation on those changes
% iSce926 source: http://www.maranasgroup.com/submission_models/iSce926.htm
%
% NOTE: changeGeneAssociation.m is a function from cobra
%
% Hongzhong Lu & Benjam�n S�nchez
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Load model:
model = readCbModel('../../ModelFiles/xml/yeastGEM.xml');
%Correct some gene relations based on isce926:
fid = fopen('../../ComplementaryData/modelCuration/iSce926curatedGeneRules.tsv');
newRules = textscan(fid,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
fclose(fid);
ss1 = length(newRules{1});
oldGPRrxns = zeros(ss1,1);
for i = 1:ss1
%Find all reactions that have the old GPR:
oldGPRrxns(i) = find(strcmp(model.rxns, newRules{1}{i}));
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newRules{4}{i});
end
%Add new genes based on isce926:
fid1 = fopen('../../ComplementaryData/modelCuration/iSce926newGenes.tsv');
newGenes = textscan(fid1,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
fclose(fid1);
ss2 = length(newGenes{1});
oldGPRrxns = zeros(ss2,1);
for i = 1:ss2
%Find all reactions that have the old GPR:
oldGPRrxns(i) = find(strcmp(model.rxns, newGenes{1}{i}));
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newGenes{4}{i});
end
%Add gene standard name for new gene from isce926:
fid2 = fopen('../../ComplementaryData/databases/SGDgeneNames.tsv');
SGD = textscan(fid2,'%s %s','Delimiter','\t','HeaderLines',1);
fclose(fid2);
ss3 = length(model.genes);
genePosition = NaN(ss3,1);
model.geneNames = model.genes;
for i = 1:ss3
if ismember(model.genes{i},SGD{1})
genePosition(i) = find(strcmp(SGD{1}, model.genes{i}));
if ~isempty(SGD{2}{genePosition(i)})
model.geneNames{i} = SGD{2}{genePosition(i)};
end
end
end
%Add protein name for new gene from isce926:
ss4 = length(model.genes);
proteinName = cell(ss4,1);
for i = 1:ss4
proteinName{i} = strcat('COBRAProtein',num2str(i));
model.proteins{i} = proteinName{i};
end
cd ..
saveYeastModel(model)
cd modelCuration
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% addiSce926changes
% Add changes from the model iSce926 + manual curation on those changes
% iSce926 source: http://www.maranasgroup.com/submission_models/iSce926.htm
%
% NOTE: changeGeneAssociation.m is a function from cobra
%
% Hongzhong Lu & Benjam�n S�nchez
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Load model:
model = readCbModel('../../ModelFiles/xml/yeastGEM.xml');

%Correct some gene relations based on isce926:
fid = fopen('../../ComplementaryData/modelCuration/iSce926curatedGeneRules.tsv');
newRules = textscan(fid,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
fclose(fid);

ss1 = length(newRules{1});
oldGPRrxns = zeros(ss1,1);
for i = 1:ss1
%Find all reactions that have the old GPR:
oldGPRrxns(i) = find(strcmp(model.rxns, newRules{1}{i}));
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newRules{4}{i});
end

%Add new genes based on isce926:
fid1 = fopen('../../ComplementaryData/modelCuration/iSce926newGenes.tsv');
newGenes = textscan(fid1,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
fclose(fid1);

ss2 = length(newGenes{1});
oldGPRrxns = zeros(ss2,1);
for i = 1:ss2
%Find all reactions that have the old GPR:
oldGPRrxns(i) = find(strcmp(model.rxns, newGenes{1}{i}));
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newGenes{4}{i});
end

%Add gene standard name for new gene from isce926:
fid2 = fopen('../../ComplementaryData/databases/SGDgeneNames.tsv');
SGD = textscan(fid2,'%s %s','Delimiter','\t','HeaderLines',1);
fclose(fid2);

ss3 = length(model.genes);
genePosition = NaN(ss3,1);
model.geneNames = model.genes;
for i = 1:ss3
if ismember(model.genes{i},SGD{1})
genePosition(i) = find(strcmp(SGD{1}, model.genes{i}));
if ~isempty(SGD{2}{genePosition(i)})
model.geneNames{i} = SGD{2}{genePosition(i)};
end
end
end

%Add protein name for new gene from isce926:
ss4 = length(model.genes);
proteinName = cell(ss4,1);

for i = 1:ss4
proteinName{i} = strcat('COBRAProtein',num2str(i));
model.proteins{i} = proteinName{i};
end

cd ..
saveYeastModel(model)
cd modelCuration

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Loading