README.md 5.48 KB
Newer Older
1
<br>
Sylvain Arreckx's avatar
Sylvain Arreckx committed
2
3
4
5
<div align="center">
    <img src="docs/src/assets/header.svg?maxAge=0" width="80%">
</div>

St. Elmo's avatar
St. Elmo committed
6
# COnstraint-Based Reconstruction and EXascale Analysis
Laurent Heirendt's avatar
Laurent Heirendt committed
7

St. Elmo's avatar
St. Elmo committed
8
[docs-img]:https://img.shields.io/badge/docs-latest-blue.svg
Laurent Heirendt's avatar
Laurent Heirendt committed
9
[docs-url]: http://lcsb-biocore.github.io/COBREXA.jl
10

11
[ci-img]: https://github.com/LCSB-BioCore/COBREXA.jl/actions/workflows/ci.yml/badge.svg?branch=master
Laurent Heirendt's avatar
Laurent Heirendt committed
12
[ci-url]: https://github.com/LCSB-BioCore/COBREXA.jl/actions/workflows/ci.yml
St. Elmo's avatar
St. Elmo committed
13

Laurent Heirendt's avatar
Laurent Heirendt committed
14
[cov-img]: https://codecov.io/gh/LCSB-BioCore/COBREXA.jl/branch/master/graph/badge.svg?token=H3WSWOBD7L
Laurent Heirendt's avatar
Laurent Heirendt committed
15
[cov-url]: https://codecov.io/gh/LCSB-BioCore/COBREXA.jl
St. Elmo's avatar
St. Elmo committed
16

Laurent Heirendt's avatar
Laurent Heirendt committed
17
18
[contrib-img]: https://img.shields.io/badge/contributions-start%20here-green
[contrib-url]: https://github.com/LCSB-BioCore/COBREXA.jl/blob/master/.github/CONTRIBUTING.md
St. Elmo's avatar
St. Elmo committed
19

Laurent Heirendt's avatar
Laurent Heirendt committed
20
21
22
| **Documentation** | **Tests** | **Coverage** | **How to contribute?** |
|:--------------:|:-------:|:---------:|:---------:|
| [![docs-img]][docs-url] | [![CI][ci-img]][ci-url] | [![codecov][cov-img]][cov-url] | [![contrib][contrib-img]][contrib-url] |
St. Elmo's avatar
St. Elmo committed
23

24
25
This is package provides constraint-based reconstruction and analysis tools for
exa-scale metabolic models in Julia.
St. Elmo's avatar
St. Elmo committed
26

27
## How to get started
Miroslav Kratochvil's avatar
Miroslav Kratochvil committed
28

29
### Prerequisites and requirements
Miroslav Kratochvil's avatar
Miroslav Kratochvil committed
30

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
- **Operating system**: Use Linux (Debian, Ubuntu or centOS), MacOS, or Windows
  10 as your operating system. `COBREXA` has been tested on these systems.
- **Julia language**: In order to use `COBREXA`, you need to install Julia 1.0
  or higher. Download and follow the installation instructions for Julia
  [here](https://julialang.org/downloads/).
- **Hardware requirements**: `COBREXA` runs on any hardware that can run Julia,
  and can easily use resources from multiple computers interconnected on a
  network. For processing large datasets, you are required to ensure that the
  total amount of available RAM on all involved computers is larger than the
  data size.
- **Optimization solvers**: `COBREXA` uses
  [`JuMP.jl`](https://github.com/jump-dev/JuMP.jl) to formulate optimization
  problems and is compatible with all [`JuMP` supported
  solvers](https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers).
  However, to perform analysis at least one of these solvers needs to be
  installed on your machine. For a pure Julia implementation, you may use e.g.
  [`Tulip.jl`](https://github.com/ds4dm/Tulip.jl), but other solvers (GLPK,
  Gurobi, ...) work just as well.
Miroslav Kratochvil's avatar
Miroslav Kratochvil committed
49

St. Elmo's avatar
St. Elmo committed
50
:bulb: If you are new to Julia, it is advisable to [familiarize yourself with
51
the environment
52
53
first](https://docs.julialang.org/en/v1/manual/getting-started/).  Use the
Julia [documentation](https://docs.julialang.org) to solve various
54
55
language-related issues, and the [Julia package manager
docs](https://julialang.github.io/Pkg.jl/v1/getting-started/) to solve
56
57
installation-related difficulties. Of course, [the Julia
channel](https://discourse.julialang.org/) is another fast and easy way to find
St. Elmo's avatar
St. Elmo committed
58
answers to Julia specific questions.
59

60
### Quick start guide
61

62
<!--quickstart_begin-->
63
64
You can install COBREXA from Julia repositories. Start `julia`, **press `]`** to
switch to the Packaging environment, and type:
65
```
66
add COBREXA
67
68
```

69
70
71
72
73
You also need to install your favorite solver supported by `JuMP.jl`, typing
e.g.:
```
add GLPK
```
74

75
76
77
78
79
When the packages are installed, switch back to the "normal" julia shell by
pressing Backspace (the prompt should change color back to green). After that,
you can download [a SBML model from the
internet](http://bigg.ucsd.edu/models/e_coli_core) and perform a
flux balance analysis as follows:
80
81

```julia
82
83
using COBREXA   # loads the package
using GLPK      # loads the optimization solver
84

85
86
# download the model
download("http://bigg.ucsd.edu/static/models/e_coli_core.xml", "e_coli_core.xml")
St. Elmo's avatar
St. Elmo committed
87

88
89
# open the SBML file and load the contents
model = load_model("e_coli_core.xml")
St. Elmo's avatar
St. Elmo committed
90

91
92
# run a FBA
fluxes = flux_balance_analysis_dict(model, GLPK.Optimizer)
93
```
St. Elmo's avatar
St. Elmo committed
94

95
96
The variable `fluxes` will now contain a dictionary of the computed optimal
flux of each reaction in the model:
97
```
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Dict{String,Float64} with 95 entries:
  "R_EX_fum_e"    => 0.0
  "R_ACONTb"      => 6.00725
  "R_TPI"         => 7.47738
  "R_SUCOAS"      => -5.06438
  "R_GLNS"        => 0.223462
  "R_EX_pi_e"     => -3.2149
  "R_PPC"         => 2.50431
  "R_O2t"         => 21.7995
  "R_G6PDH2r"     => 4.95998
  "R_TALA"        => 1.49698
  ⋮               => ⋮
```
<!--quickstart_end-->
112

113
### Testing the installation
St. Elmo's avatar
St. Elmo committed
114

115
116
117
If you run a non-standard platform (e.g. a customized operating system), or if
you added any modifications to the `COBREXA` source code, you may want to run
the test suite to ensure that everything works as expected:
St. Elmo's avatar
St. Elmo committed
118

119
120
```julia
] test COBREXA
St. Elmo's avatar
St. Elmo committed
121
122
```

123
124
125
126
## Acknowledgements

`COBREXA.jl` is developed at the Luxembourg Centre for Systems Biomedicine of
the University of Luxembourg ([uni.lu/lcsb](https://www.uni.lu/lcsb)),
St. Elmo's avatar
St. Elmo committed
127
128
cooperating with the Institute for Quantitative and Theoretical Biology at the Heinrich
Heine University in Düsseldorf ([qtb.hhu.de](https://www.qtb.hhu.de/)).
129
130
131
132
133

The development was supported by European Union's Horizon 2020 Programme under
PerMedCoE project ([permedcoe.eu](https://www.permedcoe.eu/)) agreement no.
951773.

Laurent Heirendt's avatar
Laurent Heirendt committed
134
<img src="docs/src/assets/cobrexa.svg" alt="COBREXA logo" height="64px"> <img src="docs/src/assets/unilu.svg" alt="Uni.lu logo" height="64px">   <img src="docs/src/assets/lcsb.svg" alt="LCSB logo" height="64px">   <img src="docs/src/assets/hhu.svg" alt="HHU logo" height="64px">   <img src="docs/src/assets/qtb.svg" alt="QTB logo" height="64px">   <img src="docs/src/assets/permedcoe.svg" alt="PerMedCoE logo" height="64px">