Skip to content

Commit 130e2c7

Browse files
authored
Merge pull request #213 from SysBioChalmers/devel
yeast 8.3.5
2 parents bf49eaa + f2f41c1 commit 130e2c7

33 files changed

+563
-196
lines changed

Diff for: .github/CONTRIBUTING.md

+21-10
Original file line numberDiff line numberDiff line change
@@ -41,23 +41,26 @@ Here's how to set up yeast-GEM for local development to contribute smaller featu
4141
```
4242
git clone https://github.com/<your Github name>/yeast-GEM.git
4343
```
44-
44+
4545
4. Check out the branch that you want to contribute to. Most likely that will be ``devel``:
4646
```
4747
git checkout devel
4848
```
49-
49+
5050
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):
5151
```
5252
git checkout -b name-of-your-branch
5353
```
54-
54+
5555
6. Now you can make your changes locally!
5656
* 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.
5757
* If your changes are minor (e.g. a single chemical formula you wish to correct), you can do it directly from the command line.
5858
* 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.
5959
* 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.
60-
* 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).
60+
* As much as possible follow the model conventions:
61+
- For new metabolites and/or reactions, please use `/ComplementaryScripts/otherChanges/getNewIndex.m` for obtaining new ids.
62+
- For metabolite and/or reaction names, please avoid any unconventional characters (e.g. Greek letters).
63+
- For new genes, please use as id the [systematic names from SGD](http://seq.yeastgenome.org/help/community/nomenclature-conventions).
6164
* 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).
6265
* 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.
6366
@@ -86,7 +89,7 @@ Thank you very much for contributing to yeast-GEM!
8689
* `gh-pages`: Is only touched by the administrator and for maintaining the [landing page](http://sysbiochalmers.github.io/yeast-GEM/) of yeast-GEM.
8790
8891
* `{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.
89-
92+
9093
#### Semantic commits
9194
9295
Please use concise descriptive commit messages. Ideally, use semantic commit messages to make it easier to show what you are aiming to do:
@@ -95,7 +98,7 @@ Please use concise descriptive commit messages. Ideally, use semantic commit mes
9598
* `action` = {`feat`, `fix`, `refactor`, `style`, `doc`, `chore`, `test`}
9699
* `object` (optional field) = {`rxn`, `rxn.annot`, `rxn.prop`, `met`, `met.annot`, `met.prop`, `gene`, `gene.annot`, `comp`, `comp.annot`, `data`}
97100
98-
`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:
101+
`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:
99102
* `chore`: updating toolbox, data files, etc.
100103
* `doc`: updating documentation or explanatory comments in functions.
101104
* `feat`: new feature added, e.g. new reaction / metabolite / function / etc.
@@ -143,7 +146,7 @@ Follow all other steps in the same way. Also, when creating your pull request (o
143146
* 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.
144147
* Assign appropriate [labels](https://github.com/SysBioChalmers/yeast-GEM/issues/labels).
145148
* Assign the pull request to one of the available [projects](https://github.com/SysBioChalmers/yeast-GEM/projects), if applicable.
146-
149+
147150
### Reviewing pull requests
148151
149152
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:
@@ -190,17 +193,25 @@ yeast-GEM follows [semantic versioning](https://semver.org/), adapted to GEMs:
190193
* Updating toolboxes.
191194
* Re-organization of data
192195
* Refactoring of code.
193-
196+
194197
When releasing, please follow these steps:
195198
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.
196199
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.
197200
3. Merge at least a day after (having at least one accepted review).
198201
4. Switch locally to `master` and update `history.md`, by putting at the top the same description of the corresponding PR from step 2.
199202
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.
200203
6. Commit changes from steps 4 and 5 with the message `chore: version X.Y.Z`.
201-
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.
204+
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.
202205
8. Pull from `master` to `gh-pages` to update the landing page.
203-
206+
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:
207+
* Ensuring the title of the release has the format `SysBioChalmers/yeast-GEM: yeast X.Y.Z`.
208+
* Correcting author names.
209+
* Ensuring the version of the release has the format `vX.Y.Z`.
210+
* Setting the language to English.
211+
* Adding any Grant IDs (if applicable).
212+
213+
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.
214+
204215
## Acknowledgments
205216
206217
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).

Diff for: .github/issue_template.md

-2
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,3 @@
2121
- [ ] Done this analysis in the `master` branch of the repository
2222
- [ ] Checked that a similar issue does not exist already
2323
- [ ] If needed, asked first in the [Gitter chat room](https://gitter.im/SysBioChalmers/yeast-GEM) about the issue
24-
25-
*Note: replace [ ] with [X] to check the box. PLEASE DELETE THIS LINE*

Diff for: .github/pull_request_template.md

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

Diff for: ComplementaryData/databases/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Databases
2+
3+
Yeast data from different databases (KEGG, SGD, swissprot, etc).

Diff for: ComplementaryData/modelCuration/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Model Curation
2+
3+
Data files used for performing curations to the model. Mostly lists of new rxns, mets or genes added (or fixed) in the model.

Diff for: ComplementaryData/physiology/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Physiology
2+
3+
Data on yeast growth under different conditions, biomass composition, gene essentiality experiments, etc.
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
GLCxtI O2xtI NH3xtI experimental growth
2+
5.800000 2.700000 0.400000 0.100000
3+
4.830000 4.420000 0.420000 0.100000
4+
3.500000 7.800000 0.610000 0.150000
5+
4.610000 9.200000 0.740000 0.180000
6+
5.300000 1000 0.850000 0.200000
7+
5.670000 8.700000 0.830000 0.200000
8+
8.000000 8.800000 0.960000 0.250000
9+
9.450000 9.300000 1.090000 0.280000
10+
12.680000 8.200000 1.330000 0.340000
11+
1.150000 2.700000 1000 0.100000
12+
1.170000 2.500000 1000 0.100000
13+
1.690000 4.000000 1000 0.150000
14+
2.260000 5.000000 1000 0.200000
15+
2.880000 6.500000 1000 0.250000
16+
3.270000 7.460000 1000 0.270000
17+
3.290000 7.800000 1000 0.280000
18+
3.880000 8.000000 1000 0.310000
19+
6.200000 7.000000 1000 0.330000
20+
7.890000 6.500000 1000 0.350000
21+
13.390000 3.000000 1000 0.380000
22+
2.300000 0.000000 1000 0.030000
23+
2.860000 0.000000 1000 0.047000
24+
5.880000 0.000000 1000 0.101000
25+
11.310000 0.000000 1000 0.190000
26+
16.750000 0.000000 1000 0.281000
27+
22.180000 0.000000 1000 0.369000
28+
4.150000 0.000000 0.230000 0.050000
29+
8.400000 0.000000 0.480000 0.100000
30+
8.700000 0.000000 0.550000 0.100000
31+
12.400000 0.000000 0.920000 0.160000
32+
15.300000 0.000000 1.330000 0.200000
33+
17.400000 0.000000 1.620000 0.240000

Diff for: ComplementaryScripts/deprecated/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## Deprecated Scripts
2+
3+
Scripts that either:
4+
5+
* Include changes that were already integrated to the model and will not be needed anymore.
6+
* Were deprecated by newer functions.
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,70 @@
1-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2-
% addiSce926changes
3-
% Add changes from the model iSce926 + manual curation on those changes
4-
% iSce926 source: http://www.maranasgroup.com/submission_models/iSce926.htm
5-
%
6-
% NOTE: changeGeneAssociation.m is a function from cobra
7-
%
8-
% Hongzhong Lu & Benjamín Sánchez
9-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10-
11-
%Load model:
12-
model = readCbModel('../../ModelFiles/xml/yeastGEM.xml');
13-
14-
%Correct some gene relations based on isce926:
15-
fid = fopen('../../ComplementaryData/modelCuration/iSce926curatedGeneRules.tsv');
16-
newRules = textscan(fid,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
17-
fclose(fid);
18-
19-
ss1 = length(newRules{1});
20-
oldGPRrxns = zeros(ss1,1);
21-
for i = 1:ss1
22-
%Find all reactions that have the old GPR:
23-
oldGPRrxns(i) = find(strcmp(model.rxns, newRules{1}{i}));
24-
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newRules{4}{i});
25-
end
26-
27-
%Add new genes based on isce926:
28-
fid1 = fopen('../../ComplementaryData/modelCuration/iSce926newGenes.tsv');
29-
newGenes = textscan(fid1,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
30-
fclose(fid1);
31-
32-
ss2 = length(newGenes{1});
33-
oldGPRrxns = zeros(ss2,1);
34-
for i = 1:ss2
35-
%Find all reactions that have the old GPR:
36-
oldGPRrxns(i) = find(strcmp(model.rxns, newGenes{1}{i}));
37-
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newGenes{4}{i});
38-
end
39-
40-
%Add gene standard name for new gene from isce926:
41-
fid2 = fopen('../../ComplementaryData/databases/SGDgeneNames.tsv');
42-
SGD = textscan(fid2,'%s %s','Delimiter','\t','HeaderLines',1);
43-
fclose(fid2);
44-
45-
ss3 = length(model.genes);
46-
genePosition = NaN(ss3,1);
47-
model.geneNames = model.genes;
48-
for i = 1:ss3
49-
if ismember(model.genes{i},SGD{1})
50-
genePosition(i) = find(strcmp(SGD{1}, model.genes{i}));
51-
if ~isempty(SGD{2}{genePosition(i)})
52-
model.geneNames{i} = SGD{2}{genePosition(i)};
53-
end
54-
end
55-
end
56-
57-
%Add protein name for new gene from isce926:
58-
ss4 = length(model.genes);
59-
proteinName = cell(ss4,1);
60-
61-
for i = 1:ss4
62-
proteinName{i} = strcat('COBRAProtein',num2str(i));
63-
model.proteins{i} = proteinName{i};
64-
end
65-
66-
cd ..
67-
saveYeastModel(model)
68-
cd modelCuration
69-
1+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2+
% addiSce926changes
3+
% Add changes from the model iSce926 + manual curation on those changes
4+
% iSce926 source: http://www.maranasgroup.com/submission_models/iSce926.htm
5+
%
6+
% NOTE: changeGeneAssociation.m is a function from cobra
7+
%
8+
% Hongzhong Lu & Benjamín Sánchez
9+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10+
11+
%Load model:
12+
model = readCbModel('../../ModelFiles/xml/yeastGEM.xml');
13+
14+
%Correct some gene relations based on isce926:
15+
fid = fopen('../../ComplementaryData/modelCuration/iSce926curatedGeneRules.tsv');
16+
newRules = textscan(fid,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
17+
fclose(fid);
18+
19+
ss1 = length(newRules{1});
20+
oldGPRrxns = zeros(ss1,1);
21+
for i = 1:ss1
22+
%Find all reactions that have the old GPR:
23+
oldGPRrxns(i) = find(strcmp(model.rxns, newRules{1}{i}));
24+
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newRules{4}{i});
25+
end
26+
27+
%Add new genes based on isce926:
28+
fid1 = fopen('../../ComplementaryData/modelCuration/iSce926newGenes.tsv');
29+
newGenes = textscan(fid1,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
30+
fclose(fid1);
31+
32+
ss2 = length(newGenes{1});
33+
oldGPRrxns = zeros(ss2,1);
34+
for i = 1:ss2
35+
%Find all reactions that have the old GPR:
36+
oldGPRrxns(i) = find(strcmp(model.rxns, newGenes{1}{i}));
37+
model = changeGeneAssociation(model, model.rxns{oldGPRrxns(i)}, newGenes{4}{i});
38+
end
39+
40+
%Add gene standard name for new gene from isce926:
41+
fid2 = fopen('../../ComplementaryData/databases/SGDgeneNames.tsv');
42+
SGD = textscan(fid2,'%s %s','Delimiter','\t','HeaderLines',1);
43+
fclose(fid2);
44+
45+
ss3 = length(model.genes);
46+
genePosition = NaN(ss3,1);
47+
model.geneNames = model.genes;
48+
for i = 1:ss3
49+
if ismember(model.genes{i},SGD{1})
50+
genePosition(i) = find(strcmp(SGD{1}, model.genes{i}));
51+
if ~isempty(SGD{2}{genePosition(i)})
52+
model.geneNames{i} = SGD{2}{genePosition(i)};
53+
end
54+
end
55+
end
56+
57+
%Add protein name for new gene from isce926:
58+
ss4 = length(model.genes);
59+
proteinName = cell(ss4,1);
60+
61+
for i = 1:ss4
62+
proteinName{i} = strcat('COBRAProtein',num2str(i));
63+
model.proteins{i} = proteinName{i};
64+
end
65+
66+
cd ..
67+
saveYeastModel(model)
68+
cd modelCuration
69+
7070
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

0 commit comments

Comments
 (0)