Skip to content

Commit 5f8ea0f

Browse files
author
Simonas Marcišauskas
authored
Merge pull request #35 from SysBioChalmers/raven2
Push RAVEN2 to master
2 parents 333020f + 41e15dd commit 5f8ea0f

File tree

344 files changed

+118561
-16458
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

344 files changed

+118561
-16458
lines changed

INIT/getINITModel.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@
8686
% if any are present. Use importModel(file,false) to import a model with
8787
% exchange metabolites remaining.
8888
%
89-
% Usage: [model metProduction essentialRxnsForTasks addedRxnsForTasks...
90-
% deletedDeadEndRxns deletedRxnsInINIT taskReport]=...
89+
% Usage: [model, metProduction, essentialRxnsForTasks, addedRxnsForTasks,...
90+
% deletedDeadEndRxns, deletedRxnsInINIT, taskReport]=...
9191
% getINITModel(refModel, tissue, celltype, hpaData, arrayData,...
9292
% metabolomicsData, taskFile, useScoresForTasks, printReport,...
9393
% taskStructure, params, paramsFT)

LICENSE.md

Lines changed: 1 addition & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -538,59 +538,4 @@ If the disclaimer of warranty and limitation of liability provided above cannot
538538
given local legal effect according to their terms, reviewing courts shall apply local
539539
law that most closely approximates an absolute waiver of all civil liability in
540540
connection with the Program, unless a warranty or assumption of liability accompanies
541-
a copy of the Program in return for a fee.
542-
543-
END OF TERMS AND CONDITIONS
544-
545-
## How to Apply These Terms to Your New Programs
546-
547-
If you develop a new program, and you want it to be of the greatest possible use to
548-
the public, the best way to achieve this is to make it free software which everyone
549-
can redistribute and change under these terms.
550-
551-
To do so, attach the following notices to the program. It is safest to attach them
552-
to the start of each source file to most effectively state the exclusion of warranty;
553-
and each file should have at least the “copyright” line and a pointer to
554-
where the full notice is found.
555-
556-
<one line to give the program's name and a brief idea of what it does.>
557-
Copyright (C) <year> <name of author>
558-
559-
This program is free software: you can redistribute it and/or modify
560-
it under the terms of the GNU General Public License as published by
561-
the Free Software Foundation, either version 3 of the License, or
562-
(at your option) any later version.
563-
564-
This program is distributed in the hope that it will be useful,
565-
but WITHOUT ANY WARRANTY; without even the implied warranty of
566-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
567-
GNU General Public License for more details.
568-
569-
You should have received a copy of the GNU General Public License
570-
along with this program. If not, see <http://www.gnu.org/licenses/>.
571-
572-
Also add information on how to contact you by electronic and paper mail.
573-
574-
If the program does terminal interaction, make it output a short notice like this
575-
when it starts in an interactive mode:
576-
577-
<program> Copyright (C) <year> <name of author>
578-
This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
579-
This is free software, and you are welcome to redistribute it
580-
under certain conditions; type 'show c' for details.
581-
582-
The hypothetical commands 'show w' and 'show c' should show the appropriate parts of
583-
the General Public License. Of course, your program's commands might be different;
584-
for a GUI interface, you would use an &ldquo;about box&rdquo;.
585-
586-
You should also get your employer (if you work as a programmer) or school, if any, to
587-
sign a &ldquo;copyright disclaimer&rdquo; for the program, if necessary. For more
588-
information on this, and how to apply and follow the GNU GPL, see
589-
&lt;<http://www.gnu.org/licenses/>&gt;.
590-
591-
The GNU General Public License does not permit incorporating your program into
592-
proprietary programs. If your program is a subroutine library, you may consider it
593-
more useful to permit linking proprietary applications with the library. If this is
594-
what you want to do, use the GNU Lesser General Public License instead of this
595-
License. But first, please read
596-
&lt;<http://www.gnu.org/philosophy/why-not-lgpl.html>&gt;.
541+
a copy of the Program in return for a fee.

README.md

Lines changed: 74 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,121 @@
1-
# RAVEN
2-
RAVEN (Reconstruction, Analysis and Visualization of Metabolic Networks) Toolbox is a software suite that allows for semi-automated reconstruction of genome-scale models. It makes use of published models and/or the KEGG database, coupled with extensive gap-filling and quality control features. The software suite also contains methods for visualizing simulation results and omics data, as well as a range of methods for performing simulations and analyzing the results. The software is a useful tool for system-wide data analysis in a metabolic context and for streamlined reconstruction of metabolic networks based on protein homology.
1+
# The RAVEN Toolbox
2+
The RAVEN (Reconstruction, Analysis and Visualization of Metabolic Networks) Toolbox is a software suite for Matlab that allows for semi-automated reconstruction of genome-scale models (GEMs). It makes use of published models and/or KEGG, MetaCyc databases, coupled with extensive gap-filling and quality control features. The software suite also contains methods for visualizing simulation results and omics data, as well as a range of methods for performing simulations and analyzing the results. The software is a useful tool for system-wide data analysis in a metabolic context and for streamlined reconstruction of metabolic networks based on protein homology.
33

44
If you are using RAVEN in any scientific work, please cite: [R. Agren, et. al, “The RAVEN Toolbox and Its Use for Generating a Genome-scale Metabolic Model for Penicillium chrysogenum,” PLoS Comput. Biol., vol. 9, no. 3, p. e1002980, Mar. 2013.](http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002980).
55

6+
> A manuscript describing RAVEN Toolbox 2.0 is currently being prepared. Citation details will therefore be updated in the near future.
7+
8+
Please report any technical issues and bugs [here](https://github.com/SysBioChalmers/RAVEN/issues). For other issues, please contact [Eduard Kerkhoven](https://github.com/edkerk).
9+
610
## Releases
7-
RAVEN can be installed via cloning the Github repository as per below or by downloading and extracting one of the a zipped [release](https://github.com/SysBioChalmers/RAVEN/releases). Please note that the releases do not always represent the most up to date version.
11+
RAVEN can be installed via cloning the GitHub repository as per below or by downloading and extracting one of the a zipped [release](https://github.com/SysBioChalmers/RAVEN/releases). Please note that the releases do not always represent the most up to date version.
812

913
## Installation
10-
If using git please execute the below command in an appropriate directory.
14+
### Required software
15+
* A functional [MATLAB](mathworks.com/products/matlab.html) installation (version 2013b or later).
16+
17+
### Dependencies
18+
* [libSBML MATLAB API](https://sourceforge.net/projects/sbml/files/libsbml/5.15.0/stable/MATLAB%20interface/) (version 5.15 or higher), which is utilised for importing and exporting GEMs in SBML format. Note: not needed if [COBRA Toolbox](https://github.com/opencobra/cobratoolbox) is installed.
19+
* At least one solver for linear programming:
20+
* Preferred: [Gurobi Optimizer](http://www.gurobi.com/downloads/gurobi-optimizer) (version 7.5 or higher), academic license is available [here](https://user.gurobi.com/download/licenses/free-academic).
21+
* Alternative/legacy: [MOSEK](https://www.mosek.com/downloads/details/5/) (version 7 only), academic license is available [here](https://www.mosek.com/products/academic-licenses/).
22+
* If the user has [COBRA Toolbox](https://github.com/opencobra/cobratoolbox) installed, it is possible to use the default COBRA solver (the one which is set by _changeCobraSolver_).
23+
1124

25+
### Instructions
26+
#### RAVEN Toolbox
27+
Obtain a RAVEN Toolbox in one of the following ways:
28+
* In Terminal/Command Prompt, navigate to the desired installation directory and run the following Git command:
1229
```bash
1330
git clone git@github.com:SysBioChalmers/RAVEN.git
1431
```
32+
* Alternatively, download the latest [release](https://github.com/SysBioChalmers/RAVEN/releases) of RAVEN Toolbox as a ZIP file, and extracted to your favourite directory.
1533

16-
Don't forget to add RAVEN (the directory extracted from the a release zip file OR the cloned git repository) to you matlab path. In matlab:
17-
34+
Once extracted, ensure that all other software dependencies (e.g. libSBML, Gurobi) are installed (see above for [list](#dependencies), below for [instructions](#libSBML). Then, open MATLAB and run the following command:
1835
```matlab
19-
addpath(genpath('path/to/raven'))
36+
cd('[location]/RAVEN/installation'))
37+
checkInstallation
2038
```
39+
where ```[location]``` is the directory where you installed RAVEN.
2140

22-
### Dependencies:
23-
Required dependencies are currently [libSBML and SBMLToolbox](http://sbml.org/Downloads) used for importing and exporting GEM models in SBML format. Install them and add to the matlab path:
41+
This function checks the functionality for libSBML MATLAB API and solver software. It automatically recognises which solvers are installed and sets the first functional solver as the default RAVEN solver. The default RAVEN solver be changed any time by typing in Matlab:
2442

2543
```matlab
26-
addpath(genpath('path/to/libSBML'))
27-
addpath(genpath('path/to/SBMLToolbox'))
44+
setRavenSolver('solverName')
2845
```
2946

30-
An optional but recommended dependency is [Gurobi](http://www.gurobi.com/downloads/gurobi-optimizer). Academic licenses are available [here](https://user.gurobi.com/download/licenses/free-academic).
47+
Available solver names are ```gurobi```, ```mosek``` and ```cobra```.
48+
49+
In Unix-based systems _checkInstallation_ also checks the consistency of external binary programs. If these binaries are broken, they need to be re-compiled from their corresponding source codes. See the documentation for the corresponding software for more details.
3150

32-
To install the gurobi matlab interface go to the gurobi installation directory and execute `gurobi_setup` as explained [here](https://www.gurobi.com/documentation/6.5/refman/matlab_setting_up_the_guro.html). On Mac OS X in Matlab:
51+
#### libSBML
52+
1. Download libSBML from the link [above](#dependencies) and install to your favourite directory.
53+
2. In MATLAB, run the following command:
3354

3455
```matlab
35-
cd '/Library/gurobi651/mac64/matlab/'
36-
gurobi_setup
56+
addpath('[location]/libSBML-5.x.0-matlab')
57+
savepath
3758
```
3859

39-
To have matlab remember the above installations please save the current path to ’pathdef.m’ *in your MATLAB startup directory*. For instance on Mac OS X:
60+
where ```[location]``` is where you installed libSBML and ```5.x.0``` is your libSBML version (5.15.0 or higher).
61+
62+
#### Gurobi
63+
1. Download from the link [above](#dependencies) and install Gurobi to your favourite location.
64+
2. Make sure you obtained a [license](https://user.gurobi.com/download/licenses/free-academic) following instructions for [Windows](https://www.gurobi.com/documentation/7.5/quickstart_windows/retrieving_and_setting_up_.html), [Mac](https://www.gurobi.com/documentation/7.5/quickstart_mac/retrieving_and_setting_up_.html) or [Unix](https://www.gurobi.com/documentation/7.5/quickstart_linux/retrieving_and_setting_up_.html).
65+
3. To install Gurobi in MATLAB, follow the instructions for [Windows](https://www.gurobi.com/documentation/7.5/quickstart_windows/matlab_setting_up_gurobi_f.html), [Mac](https://www.gurobi.com/documentation/7.5/quickstart_mac/matlab_setting_up_gurobi_f.html) or [Unix](https://www.gurobi.com/documentation/7.5/matlab_setting_up_gurobi_f.html).
66+
4. Make sure that MATLAB remembers the Gurobi installation for next time, by running the following command:
4067

4168
```matlab
42-
savepath '~/Documents/MATLAB/pathdef.m'
69+
savepath
4370
```
4471

45-
*It is highly recommended to set set startup directory of matlab to a directory where you have write access (Preferences->General->start up directory).*
46-
47-
### Setting the solver
48-
Please note that you must now select the solver that you would like to use after you have loaded RAVEN. This can be done like so:
72+
#### Mosek
73+
1. Download from the link [above](#dependencies) and install Mosek to your favourite location.
74+
2. Make sure you obtained a [license](https://www.mosek.com/products/academic-licenses/) following [instructions] (https://docs.mosek.com/8.0/install/installation.html#setting-up-the-license).
75+
3. To install Mosek in MATLAB, follow [instructions](https://docs.mosek.com/8.0/toolbox/installation.html#id1). Note: the documentation mentions version 8, but RAVEN only works with version 7 of Mosek.
76+
4. Make sure that MATLAB remembers the Mosek installation for next time, by running the following command:
4977

5078
```matlab
51-
setRavenSolver('gurobi')
79+
savepath
5280
```
5381

54-
Gurobi is currently the recommended solver (the other available choices are 'mosek' and in the future 'glpk').
82+
#### COBRA Toolbox
83+
1. To gain access to functions from COBRA Toolbox, follow installation instructions provided [here](https://opencobra.github.io/cobratoolbox/latest/installation.html).
84+
2. To use COBRA-specified solvers (e.g. open-source GLPK solver), configure COBRA and RAVEN with the following commands:
85+
86+
```matlab
87+
changeCobraSolver('glpk')
88+
setRavenSolver('cobra')
89+
```
5590

5691
## Tutorials
5792
Some tutorials highlighting basic RAVEN functionality can be found in the 'tutorial' folder in the installation directory.
5893

5994
## Pre-trained Hidden Markov Models (HMMs) for KEGG Orthology (KO) protein sets
60-
_For newer RAVEN versions, including GitHub commits after RAVEN 1.9.0_
61-
62-
HMMs were trained from KO protein sets, based on KEGG Release 82.0. CD-HIT was used to obtain non-redundant representative KO protein sets thereby clustering proteins with the defined identity and overlap with the longest protein in the corresponding cluster threshold values. Multisequence alignment with MAFFT and training with HMMER 3.1b2 were then performed. The archives contain only pre-trained HMMs. Such HMM sets can be downloaded automatically during genome-scale metabolic model reconstruction from KEGG (see *dataDir* parameter in *getKEGGModelForOrganism*). The download links for HMM sets are also included below and in BioMet ToolBox. The following HMM sets are available:
63-
- [euk100_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip). CD-HIT was used for all Eukaryotic proteins and the following threshold values: identity 100 %, overlap 90 %.
95+
_For RAVEN 2.0_
6496

65-
- [euk90_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk90_kegg82.zip). CD-HIT was used for euk100_kegg82 dataset and the following threshold values: identity 90 %, overlap 90 %.
97+
For _de novo_ reconstruction of a GEM, the RAVEN function _getKEGGModelForOrganism_ can use HMMs trained on KO protein sets. Provided are HMMs trained on KEGG Release 82.0. CD-HIT was used to obtain non-redundant representative KO protein sets thereby clustering proteins with the defined identity and overlap with the longest protein in the corresponding cluster threshold values. Multisequence alignment with MAFFT and training with HMMER 3.1b2 were then performed. The provided archives contain only pre-trained HMMs.
6698

67-
- [euk50_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk50_kegg82.zip). CD-HIT was used for euk90_kegg82 dataset and the following threshold values: identity 50 %, overlap 90 %.
68-
69-
- [prok100_kegg82](http://biomet-toolbox.org/tools/downloadable/files/prok100_kegg82.zip). CD-HIT was used for all Prokaryotic proteins and the following threshold values: identity 100 %, overlap 90 %.
70-
71-
- [prok90_kegg82](http://biomet-toolbox.org/tools/downloadable/files/prok90_kegg82.zip). CD-HIT was used for prok100_kegg82 dataset and the following threshold values: identity 90 %, overlap 90 %.
72-
73-
- [prok50_kegg82](http://biomet-toolbox.org/tools/downloadable/files/prok50_kegg82.zip). CD-HIT was used for prok90_kegg82 dataset and the following threshold values: identity 50 %, overlap 90 %.
99+
HMM sets can be downloaded **automatically** during GEM reconstruction from KEGG (set the *dataDir* parameter in *getKEGGModelForOrganism*). Alternatively, download links are provided below. The following HMM sets are available:
74100

101+
| dataDir | KEGG version | Phylogeny | Identity (%) | Overlap (%) |
102+
|:-------:|:------------:|:---------:|:------------:|:-----------:|
103+
|[euk100_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|82.0|eukaryota|100|90
104+
|[euk90_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|82.0|eukaryota|90|90
105+
|[euk50_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|82.0|eukaryota|50|90
106+
|[prok100_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|82.0|prokaryota|100|90
107+
|[prok90_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|82.0|prokaryota|90|90
108+
|[prok50_kegg82](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|82.0|prokaryota|50|90
75109

76110
_For RAVEN 1.9.0 or older_
77111

78112
HMMs were trained from KO protein sets, based on KEGG Release 58.1. Multisequence alignment was performed with ClustalW2, whereas HMMs were trained with HMMER 2.3. All the associated proteins were used in multisequence alignment and HMMs training. In addition to pre-trained HMMs, the archives also contain multisequence alignment data. The following HMM sets are available:
79113

80-
- [eukaryota](http://biomet-toolbox.org/tools/downloadable/files/eukaryota.zip). Contains HMMs, trained from Eukaryotic organisms proteome.
81-
82-
- [prokaryota](http://biomet-toolbox.org/tools/downloadable/files/prokaryota.zip). Contains HMMs, trained from Prokaryotic organisms proteome.
114+
| Dataset | KEGG version | Phylogeny |
115+
|:-------:|:------------:|:---------:|
116+
|[eukaryota](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|58.1|eukaryota
117+
|[prokaryota](http://biomet-toolbox.org/tools/downloadable/files/euk100_kegg82.zip)|58.1|eukaryota
83118

84119

85120
## Links
86-
For more information on software connected to genome scale models please visit the Systems Biology [Github page](https://github.com/SysBioChalmers). For information and publications by the Systems Biology department please visit [SysBio](www.sysbio.se).
121+
For more systems biology related software and recently published genome-scale models from the Systems and Synthetic Biology group at Chalmers University of Technology, please visit the [Github page](https://github.com/SysBioChalmers). For more information and publications by the Systems and Synthetic Biology please visit [SysBio](www.sysbio.se).

0 commit comments

Comments
 (0)