diff --git a/ComplementaryScripts/getConfidenceScores.m b/ComplementaryScripts/missingFields/getConfidenceScores.m similarity index 100% rename from ComplementaryScripts/getConfidenceScores.m rename to ComplementaryScripts/missingFields/getConfidenceScores.m diff --git a/ComplementaryScripts/calculateContent.m b/ComplementaryScripts/modelCuration/calculateContent.m similarity index 100% rename from ComplementaryScripts/calculateContent.m rename to ComplementaryScripts/modelCuration/calculateContent.m diff --git a/ComplementaryScripts/changeBiomass.m b/ComplementaryScripts/modelCuration/changeBiomass.m similarity index 100% rename from ComplementaryScripts/changeBiomass.m rename to ComplementaryScripts/modelCuration/changeBiomass.m diff --git a/ComplementaryScripts/modelCuration/checkMetBalance.m b/ComplementaryScripts/modelCuration/checkMetBalance.m new file mode 100644 index 00000000..74d6ad8a --- /dev/null +++ b/ComplementaryScripts/modelCuration/checkMetBalance.m @@ -0,0 +1,84 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% checkMetBalance(model,metName,flux,show_all) +% Shows for a given metabolite all involved reactions on all compartments. +% +% INPUT: model A GEM as a structure object +% metName The name of the desired metabolite (e.g. 'NADH') +% flux (OPTIONAL) A solution of the model (nx1 vector) +% show_all (OPTIONAL) If false, only non-zero fluxes will be +% displayed (default = false; if no flux is given as +% input then default = true) +% +% OUTPUT: On the command window displays all involved reactions, +% including the flux value, the reaction ID and the formula. +% Results are displayed by compartment, and separated depending +% if the metabolite is being consumed, produced or transported +% in each rxn. If no flux was given as input, a zero will appear +% instead. +% +% Benjamín J. Sánchez +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function checkMetBalance(model,metName,flux,show_all) + +lb = model.lb; +ub = model.ub; + +if nargin < 4 + show_all = false; + if nargin < 3 + flux = zeros(size(model.rxns)); + show_all = true; + end +end + +pos = zeros(size(model.mets)); +for i = 1:length(model.metNames) + if strcmp(model.metNames{i},metName) + pos(i) = 1; + end +end +pos = find(pos); + +for i = 1:length(pos) + rxns_cons = {}; + rxns_prod = {}; + for j = 1:length(model.rxns) + if model.S(pos(i),j) ~= 0 && (show_all || abs(flux(j)) > 1e-10) + rxn = model.rxns{j}; + rxn_formula = printRxnFormula(model,model.rxns(j),false,false,true); + rxn_formula = rxn_formula{1}; + if model.S(pos(i),j) < 0 + rxns_cons = [rxns_cons;{lb(j) flux(j) ub(j) rxn rxn_formula}]; + else + rxns_prod = [rxns_prod;{lb(j) flux(j) ub(j) rxn rxn_formula}]; + end + end + end + if ~isempty(rxns_cons) || ~isempty(rxns_prod) + print_group(rxns_cons,'Consumption') + print_group(rxns_prod,'Production') + end +end + +fprintf('\n') + +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function print_group(rxns,name) + +if ~isempty(rxns) + fprintf([name ':\n']) + [~,order] = sort(cell2mat(rxns(:,1)),'descend'); + rxns = rxns(order,:); + for i = 1:length(order) + fprintf([sprintf('%6.2e',rxns{i,1}) '\t' sprintf('%6.2e',rxns{i,2}) ... + '\t' sprintf('%6.2e',rxns{i,3}) '\t' rxns{i,4} '\t\t' rxns{i,5} '\n']) + end +end + +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/ComplementaryScripts/modelCuration/makeFormulasCompliant.m b/ComplementaryScripts/modelCuration/makeFormulasCompliant.m new file mode 100644 index 00000000..9cf9d0b8 --- /dev/null +++ b/ComplementaryScripts/modelCuration/makeFormulasCompliant.m @@ -0,0 +1,71 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% makeFormulasCompliant.m +% Corrects SBML-incompatible metabolite formulas. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%aa codes: +aas = {'s_0955[c]' 'ala' % A Alanine + 's_0981[c]' 'cys' % C Cysteine + 's_0973[c]' 'asp' % D Aspartic acid + 's_0991[c]' 'glu' % E Glutamic acid + 's_1032[c]' 'phe' % F Phenylalanine + 's_1003[c]' 'gly' % G Glycine + 's_1006[c]' 'his' % H Histidine + 's_1016[c]' 'ile' % I Isoleucine + 's_1025[c]' 'lys' % K Lysine + 's_1021[c]' 'leu' % L Leucine + 's_1029[c]' 'met' % M Methionine + 's_0969[c]' 'asn' % N Asparagine + 's_1035[c]' 'pro' % P Proline + 's_0999[c]' 'gln' % Q Glutamine + 's_0965[c]' 'arg' % R Arginine + 's_1039[c]' 'ser' % S Serine + 's_1045[c]' 'thr' % T Threonine + 's_1056[c]' 'val' % V Valine + 's_1048[c]' 'trp' % W Tryptophan + 's_1051[c]' 'tyr'}; % Y Tyrosine + +%tRNA's are just produced and consumed in single loops, so we can just +%replace the radical part with an "R" and still maintain mass balances, +%i.e. aa-tRNA(aa) will have "R" + the formula of the corresponding aa and +%tRNA(aa) will just have an "R". Example: +% tRNA(Ala): C10H17 O10PR2(C5H8O6PR)n -> R +% Ala-tRNA(Ala): C13H22NO11PR2(C5H8O6PR)n -> C3H6NOR (ala-R without an -OH) +% Cycle in which the 2 are involved: +% r_4047: 0.4193 Ala-tRNA(Ala) + ... -> 0.4193 tRNA(Ala) + ... + protein (growth) +% r_0157: ATP + L-alanine + tRNA(Ala) -> Ala-tRNA(Ala) + AMP + diphosphate +% C10H12N5O13P3 C3H7NO2 R C3H6NOR C10H12N5O7P HO7P2 + +for i = 1:length(model.mets) + name = model.metNames{i}; + formula = model.metFormulas{i}; + if contains(model.metNames{i},'-tRNA(') + %Correct metabolite: + try + aaName = lower(name(1:strfind(name,'-')-1)); + aaID = aas{strcmp(aas(:,2),aaName),1}; + aaPos = strcmp(model.mets,aaID); + model.metFormulas{i} = [model.metFormulas{aaPos} 'R']; + model.metFormulas{i} = takeOutFromFormula(model.metFormulas{i},'OH'); + catch + %formyl-met: C6H11NO3S + model.metFormulas{i} = 'C6H10NO2SR'; + end + + %Correct associated tRNA pair: + pairName = name(strfind(name,'-')+1:end); + pairPos = strcmp(model.metNames,pairName); + if sum(pairPos) > 0 + model.metFormulas{pairPos} = 'R'; + end + end +end + +%Display the remaining problems: +for i = 1:length(model.mets) + if contains(model.metFormulas{i},')n') + disp([model.metNames{i} ': ' model.metFormulas{i}]); + end +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/ComplementaryScripts/modelCorrections.m b/ComplementaryScripts/modelCuration/modelCorrections.m similarity index 100% rename from ComplementaryScripts/modelCorrections.m rename to ComplementaryScripts/modelCuration/modelCorrections.m diff --git a/ComplementaryScripts/modelCuration/takeOutFromFormula.m b/ComplementaryScripts/modelCuration/takeOutFromFormula.m new file mode 100644 index 00000000..4c21fe45 --- /dev/null +++ b/ComplementaryScripts/modelCuration/takeOutFromFormula.m @@ -0,0 +1,50 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% formula = takeOutFromFormula(formula,elements) +% Takes away from formula each of the elements specified. +% +% Benjamín J. Sánchez +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function formula = takeOutFromFormula(formula,elements) + +for i = 1:length(elements) + posInFormula = strfind(formula,elements(i)); + if posInFormula == length(formula) + formula = strrep(formula,elements(i),''); %only 1 element at the end of the formula + else + for j = posInFormula+1:length(formula) + if isletter(formula(j)) + if j == posInFormula+1 + formula = strrep(formula,elements(i),''); %only 1 element in the middle of the formula + else + formula = goDown(formula,posInFormula,j); %more than 1 element in the formula + end + break + elseif j == length(formula) + formula = goDown(formula,posInFormula,j+1); %more than 1 element at the end of the formula + end + end + end +end + +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +function formula = goDown(formula,startPos,endPos) + +numbElem = str2double(formula(startPos+1:endPos-1)); +if numbElem == 2 + numbElem = ''; +else + numbElem = num2str(numbElem - 1); +end +if endPos == length(formula)+1 + formula = [formula(1:startPos) numbElem]; +else + formula = [formula(1:startPos) numbElem formula(endPos:end)]; +end + +end + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/ComplementaryScripts/anaerobicModel.m b/ComplementaryScripts/otherChanges/anaerobicModel.m similarity index 97% rename from ComplementaryScripts/anaerobicModel.m rename to ComplementaryScripts/otherChanges/anaerobicModel.m index 0a360758..9ae9089d 100644 --- a/ComplementaryScripts/anaerobicModel.m +++ b/ComplementaryScripts/otherChanges/anaerobicModel.m @@ -31,6 +31,8 @@ GAM = 30.49; %Data from Nissen et al. 1997 P = 0.461; %Data from Nissen et al. 1997 NGAM = 0; %Refit done in Jouthen et al. 2012 +cd ../modelCuration model = changeBiomass(model,P,GAM,NGAM); +cd ../otherChanges %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/ComplementaryScripts/clusterBiomass.m b/ComplementaryScripts/otherChanges/clusterBiomass.m similarity index 100% rename from ComplementaryScripts/clusterBiomass.m rename to ComplementaryScripts/otherChanges/clusterBiomass.m diff --git a/ComplementaryScripts/convertYmn2FBC2.m b/ComplementaryScripts/otherChanges/convertYmn2FBC2.m similarity index 100% rename from ComplementaryScripts/convertYmn2FBC2.m rename to ComplementaryScripts/otherChanges/convertYmn2FBC2.m diff --git a/ComplementaryScripts/getNewIndex.m b/ComplementaryScripts/otherChanges/getNewIndex.m similarity index 100% rename from ComplementaryScripts/getNewIndex.m rename to ComplementaryScripts/otherChanges/getNewIndex.m diff --git a/ModelFiles/xml/yeastGEM.xml b/ModelFiles/xml/yeastGEM.xml index dbecd2d5..49ab07f2 100644 --- a/ModelFiles/xml/yeastGEM.xml +++ b/ModelFiles/xml/yeastGEM.xml @@ -4119,7 +4119,7 @@ - + @@ -4441,7 +4441,7 @@ - + @@ -4455,7 +4455,7 @@ - + @@ -4469,7 +4469,7 @@ - + @@ -4483,7 +4483,7 @@ - + @@ -4497,7 +4497,7 @@ - + @@ -4511,7 +4511,7 @@ - + @@ -5710,7 +5710,7 @@ - + @@ -7537,7 +7537,7 @@ - + @@ -7887,7 +7887,7 @@ - + @@ -7901,7 +7901,7 @@ - + @@ -7915,7 +7915,7 @@ - + @@ -8027,7 +8027,7 @@ - + @@ -8833,7 +8833,7 @@ - + @@ -8847,7 +8847,7 @@ - + @@ -9028,7 +9028,7 @@ - + @@ -9042,7 +9042,7 @@ - + @@ -11967,7 +11967,7 @@ - + @@ -11981,7 +11981,7 @@ - + @@ -12107,7 +12107,7 @@ - + @@ -12121,7 +12121,7 @@ - + @@ -12700,7 +12700,7 @@ - + @@ -12714,7 +12714,7 @@ - + @@ -14331,7 +14331,7 @@ - + @@ -14345,7 +14345,7 @@ - + @@ -14792,7 +14792,7 @@ - + @@ -15407,7 +15407,7 @@ - + @@ -16106,7 +16106,7 @@ - + @@ -16120,7 +16120,7 @@ - + @@ -16370,7 +16370,7 @@ - + @@ -16384,7 +16384,7 @@ - + @@ -16454,7 +16454,7 @@ - + @@ -16468,7 +16468,7 @@ - + @@ -16832,7 +16832,7 @@ - + @@ -16846,7 +16846,7 @@ - + @@ -17038,7 +17038,7 @@ - + @@ -17052,7 +17052,7 @@ - + @@ -17065,7 +17065,7 @@ - + @@ -17078,7 +17078,7 @@ - + @@ -17091,7 +17091,7 @@ - + @@ -17104,7 +17104,7 @@ - + @@ -17117,7 +17117,7 @@ - + @@ -17130,7 +17130,7 @@ - + @@ -17144,7 +17144,7 @@ - + @@ -17158,7 +17158,7 @@ - + @@ -17171,7 +17171,7 @@ - + @@ -17184,7 +17184,7 @@ - + @@ -17198,7 +17198,7 @@ - + @@ -17211,7 +17211,7 @@ - + @@ -17224,7 +17224,7 @@ - + @@ -17237,7 +17237,7 @@ - + @@ -17250,7 +17250,7 @@ - + @@ -17263,7 +17263,7 @@ - + @@ -17276,7 +17276,7 @@ - + @@ -17289,7 +17289,7 @@ - + @@ -17302,7 +17302,7 @@ - + @@ -17315,7 +17315,7 @@ - + @@ -17328,7 +17328,7 @@ - + @@ -17341,7 +17341,7 @@ - + @@ -17354,7 +17354,7 @@ - + @@ -17368,7 +17368,7 @@ - + @@ -17382,7 +17382,7 @@ - + @@ -17395,7 +17395,7 @@ - + @@ -17408,7 +17408,7 @@ - + @@ -17421,7 +17421,7 @@ - + @@ -17434,7 +17434,7 @@ - + @@ -17447,7 +17447,7 @@ - + @@ -17460,7 +17460,7 @@ - + @@ -17473,7 +17473,7 @@ - + diff --git a/README.md b/README.md index c3fbec00..a0410eb6 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,18 @@ This repository contains the current genome-scale metabolic model of _Saccharomy * Format changes: * FBCv2 compliant. * Compatible with latest COBRA and RAVEN parsers. - * Biomass clustered by 5 main groups: protein, carbohydrate, lipid, RNA and DNA + * Biomass clustered by 5 main groups: protein, carbohydrate, lipid, RNA and DNA. * Added information: * `subSystems` and `rxnECnumbers` added to reactions based on [KEGG](http://www.genome.jp/kegg/) & [Swissprot](http://www.uniprot.org/uniprot/?query=*&fil=organism%3A%22Saccharomyces+cerevisiae+%28strain+ATCC+204508+%2F+S288c%29+%28Baker%27s+yeast%29+%5B559292%5D%22+AND+reviewed%3Ayes) data. * `geneNames` added to genes based on [KEGG](http://www.genome.jp/kegg/) data. * `rxnKEGGID` added from old version. * `rxnNotes` enriched with Pubmed ids (`pmid`) from old version. - * `rxnConfidenceScores` added based on [automatic script](https://github.com/SysBioChalmers/YeastMetabolicNetwork-GEM/blob/f7870589d16c08e18057a8f6cc880466373b77a7/ComplementaryScripts/getConfidenceScores.m). + * `rxnConfidenceScores` added based on [automatic script](https://github.com/SysBioChalmers/YeastMetabolicNetwork-GEM/blob/master/ComplementaryScripts/missingFields/getConfidenceScores.m). * `metFormulas` added for lipid species. - * Boundary metabolites tracked (available in [`ComplementaryScripts`](https://github.com/SysBioChalmers/yeast-metabolic-network-7.6/blob/master/ComplementaryScripts/boundaryMets.txt)). - * Dependencies tracked (available in [`ComplementaryScripts`](https://github.com/SysBioChalmers/yeast-metabolic-network-7.6/blob/master/ComplementaryScripts/dependencies.txt)). + * Boundary metabolites tracked (available in [`ComplementaryScripts`](https://github.com/SysBioChalmers/YeastMetabolicNetwork-GEM/blob/master/ComplementaryScripts/boundaryMets.txt)). + * Dependencies tracked (available in [`ComplementaryScripts`](https://github.com/SysBioChalmers/YeastMetabolicNetwork-GEM/blob/master/ComplementaryScripts/dependencies.txt)). + * Manual curation: + * `metFormulas` for tRNA's curated and mass-balanced. * Simulation improvements: * Glucan composition fixed in biomass pseudo-rxn. * Proton balance in membrane restored. @@ -30,7 +32,7 @@ This repository contains the current genome-scale metabolic model of _Saccharomy **GEM Category:** Species; **Utilisation:** maximising growth; **Field:** metabolic-network reconstruction; **Type of Model:** curated, reconstruction; **Model Source:** [Yeast 7.6](https://sourceforge.net/projects/yeast/); **Taxonomy:** _Saccharomyces cerevisiae_; **Metabolic System:** General Metabolism; **Bioreactor** -* Last update: 2018-02-19 +* Last update: 2018-02-23 * The model: @@ -39,7 +41,7 @@ This repository contains the current genome-scale metabolic model of _Saccharomy |_Saccharomyces cerevisiae_|[Yeast 7.6](https://sourceforge.net/projects/yeast/)|3496|2224|909| -This repository is administered by Benjamín J. Sánchez ([@BenjaSanchez](https://github.com/benjasanchez)), Division of Systems and Synthetic Biology, Department of Biology and Biological Engineering, Chalmers University of Technology. +This repository is administered by Benjamín J. Sánchez ([@BenjaSanchez](https://github.com/benjasanchez)), Division of Systems and Synthetic Biology, Department of Biology and Biological Engineering, Chalmers University of Technology. ## Installation @@ -63,20 +65,26 @@ This repository is administered by Benjam ## Complementary Scripts -* `anaerobicModel.m`: Transforms the model to anaerobic conditions. -* `boundaryMets.txt`: Contains a list of all boundary metabolites in model, listing the id and name. -* `calculateContent.m`: Calculates the protein and carb fraction in the biomass pseudo-rxn. -* `changeBiomass.m`: Rescales the biomass composition for varying protein content in anaerobic case. Also changes GAM and NGAM. -* `clusterBiomass.m`: Separates the biomass in 5 main components: protein, carbohydrate, lipid, RNA and DNA. -* `convertYmn2FBC2.m`: Converts yeast7 from COBRA-compatible SBML2 to FBC v2, thereby adding the missing annotation data, which could not be retained with the older COBRA versions. -* `dependencies.txt`: Tracks SBML versions and levels used for saving the model. -* `getNewIndex.m`: Finds the highest index available in either metabolites or rxns, and then adds one to it, for creating any new species. -* `increaseVersion.m`: Updates the version of the model in `version.txt` and as metaid in the `.xml` file. * `missingFields`: Folder with functions for adding missing fields to the model. - * `addGeneNames.m`: Adds the field `geneNames` by extracting the data from KEGG. - * `getMissingFields.m`: Retrieves missing information (`rxnECNumbers` and `subSystems`) from KEGG & Swissprot. It uses `changeRules.m` for properly reading the gene-reaction rules, and `findInDB.m`, `getAllPath.m` and `findSubSystem.m` for reading the databases. The latter 3 functions are adapted versions of functions from the [GECKO toolbox](https://github.com/SysBioChalmers/gecko). + * `addGeneNames.m`: Adds the field `geneNames` by extracting the data from KEGG. + * `getConfidenceScores.m`: Assigns confidence scores based in a basic automatic criteria. + * `getMissingFields.m`: Retrieves missing information (`rxnECNumbers` and `subSystems`) from KEGG & Swissprot. It uses `changeRules.m` for properly reading the gene-reaction rules, and `findInDB.m`, `getAllPath.m` and `findSubSystem.m` for reading the databases. The latter 3 functions are adapted versions of functions from the [GECKO toolbox](https://github.com/SysBioChalmers/GECKO). * `ProtDatabase.mat`: Contains the relevant data from Swissprot and KEGG. -* `modelCorrections.m`: Corrects various issues in yeast7 (biomass composition, proton balance, Ox.Pho., GAM and NGAM). +* `modelCuration`: Folder with curation functions. + * `calculateContent.m`: Calculates the protein and carb fraction in the biomass pseudo-rxn. + * `changeBiomass.m`: Rescales the biomass composition for varying protein content in anaerobic case. Also changes GAM and NGAM. + * `checkMetBalance.m`: Shows rxns that consume/produce a given metabolite in the model. + * `makeFormulasCompliant.m`: Fixes the compliance problems of some metabolite formulas. + * `modelCorrections.m`: Corrects various issues in yeast7 (biomass composition, proton balance, Ox.Pho., GAM and NGAM). + * `takeOutFromFormula.m`: Takes away from formula each of the elements specified. +* `otherChanges`: Folder with other types of changes. + * `anaerobicModel.m`: Transforms the model to anaerobic conditions. + * `clusterBiomass.m`: Separates the biomass in 5 main components: protein, carbohydrate, lipid, RNA and DNA. + * `convertYmn2FBC2.m`: Converts yeast7 from COBRA-compatible SBML2 to FBC v2, thereby adding the missing annotation data, which could not be retained with the older COBRA versions. + * `getNewIndex.m`: Finds the highest index available in either metabolites or rxns, and then adds one to it, for creating any new species. +* `dependencies.txt`: Tracks SBML versions and levels used for saving the model. +* `boundaryMets.txt`: Contains a list of all boundary metabolites in model, listing the id and name. +* `increaseVersion.m`: Updates the version of the model in `version.txt` and as metaid in the `.xml` file. * `saveYeastModel.m`: Saves yeast model as a `.mat`, `.xml` and `.txt` file, and updates `boundaryMets.txt` and `dependencies.txt`. @@ -85,5 +93,5 @@ This repository is administered by Benjam * [Eduard J. Kerkhoven](https://www.chalmers.se/en/staff/Pages/Eduard-Kerkhoven.aspx) ([@edkerk](https://github.com/edkerk)), Chalmers University of Technology, Gothenburg Sweden * [Feiran Li](https://www.chalmers.se/en/staff/Pages/feiranl.aspx) ([@feiranl](https://github.com/feiranl)), Chalmers University of Technology, Gothenburg Sweden * [Hongzhong Lu](https://www.chalmers.se/en/Staff/Pages/luho.aspx) ([@hongzhonglu](https://github.com/hongzhonglu)), Chalmers University of Technology, Gothenburg Sweden -* [Simonas Marcišauskas](https://www.chalmers.se/en/Staff/Pages/simmarc.aspx) ([@simas232](https://github.com/simas232)), Chalmers University of Technology, Gothenburg Sweden -* [Benjamín J. Sánchez](https://www.chalmers.se/en/staff/Pages/bensan.aspx) ([@BenjaSanchez](https://github.com/benjasanchez)), Chalmers University of Technology, Gothenburg Sweden \ No newline at end of file +* [Simonas MarciÅ¡auskas](https://www.chalmers.se/en/Staff/Pages/simmarc.aspx) ([@simas232](https://github.com/simas232)), Chalmers University of Technology, Gothenburg Sweden +* [Benjamín J. Sánchez](https://www.chalmers.se/en/staff/Pages/bensan.aspx) ([@BenjaSanchez](https://github.com/benjasanchez)), Chalmers University of Technology, Gothenburg Sweden \ No newline at end of file