cobrexa.jl

Constraint-Based Reconstruction and EXascale Analysis

https://github.com/lcsb-biocore/cobrexa.jl

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.5%) to scientific vocabulary

Keywords

cobra constraint-based-modeling exascale exascale-analysis high-performance hpc julia

Keywords from Contributors

som self-organizing-map mass-cytometry large-scale immunology huge-scale flow-cytometry cytometry cytof clustering-methods
Last synced: 6 months ago · JSON representation ·

Repository

Constraint-Based Reconstruction and EXascale Analysis

Basic Info
Statistics
  • Stars: 44
  • Watchers: 6
  • Forks: 8
  • Open Issues: 7
  • Releases: 21
Topics
cobra constraint-based-modeling exascale exascale-analysis high-performance hpc julia
Created over 5 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md


COnstraint-Based Reconstruction and EXascale Analysis

| Documentation | Tests | Coverage | How to contribute? | Project status | |:---:|:---:|:---:|:---:|:---:| | docs-img-stable docs-img-dev | CI | codecov | contrib | repostatus-img |

This package provides constraint-based reconstruction and analysis tools for exa-scale metabolic modeling in Julia.

This repository contains the "legacy" version of COBREXA (version 1.x). COBREXA development is continuing at github.com/COBREXA with a much-improved version 2.x, and many other new packages. Unless you need version 1.x for compatibility reasons, we recommend switching to version 2!

How to get started

Prerequisites and requirements

  • 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.
  • 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 to formulate optimization problems and is compatible with all JuMP 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, but other solvers (GLPK, Gurobi, ...) work just as well.

:bulb: If you are new to Julia, it is advisable to familiarize yourself with the environment first. Use the Julia documentation to solve various language-related issues, and the Julia package manager docs to solve installation-related difficulties. Of course, the Julia channel is another fast and easy way to find answers to Julia specific questions.

Quick start

COBREXA.jl documentation is available online (also for development version of the package).

You can install COBREXA from Julia repositories. Start julia, press ] to switch to the Packaging environment, and type: add COBREXA@1

(Note: the above command installs the "1.x" version of COBREXA, which is what is described in this repository and the associated documentation. If you are not limited by compatibility and similar reasons, consider updating to COBREXA 2.)

You also need to install your favorite solver supported by JuMP.jl (such as Gurobi, Mosek, CPLEX, GLPK, Clarabel, etc., see a list here). For example, you can install Tulip.jl solver by typing: add Tulip

Alternatively, you may use prebuilt Docker and Apptainer images.

If you are running COBREXA.jl for the first time, it is very likely that upon installing and importing the packages, your Julia installation will need to precompile their source code from the scratch. In fresh installations, the precompilation process should take less than 5 minutes.

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 and perform a flux balance analysis as follows:

```julia using COBREXA # loads the package using Tulip # loads the optimization solver

download the model

download("http://bigg.ucsd.edu/static/models/ecolicore.xml", "ecolicore.xml")

open the SBML file and load the contents

model = loadmodel("ecoli_core.xml")

run a FBA

fluxes = fluxbalanceanalysis_dict(model, Tulip.Optimizer) ```

The variable fluxes will now contain a dictionary of the computed optimal flux of each reaction in the model: 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.95999 "R_TALA" => 1.49698 ⋮ => ⋮ <!--quickstart_end-->

The main feature of COBREXA.jl is the ability to easily specify and process a huge number of analyses in parallel. You. You can have a look at a longer guide that describes the parallelization and screening functionality, or dive into the example analysis workflows.

Testing the installation

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:

julia ] test COBREXA

Prebuilt images docker

Docker image is available from the docker hub as lcsbbiocore/cobrexa.jl, and from GitHub container repository. Download and use them as usual with docker:

```sh docker run -ti --rm lcsbbiocore/cobrexa.jl:latest

or alternatively from ghcr.io

docker run -ti --rm ghcr.io/lcsb-biocore/docker/cobrexa.jl:latest ```

In the container, you should get a julia shell with the important packages already installed, and you may immediately continue the above tutorial from using COBREXA.

Apptainer (aka Singularity) images are available from GitHub container repository. To start one, run: sh singularity run oras://ghcr.io/lcsb-biocore/apptainer/cobrexa.jl:latest ...which gives you a running Julia session with COBREXA.jl loaded.

If you require precise reproducibility, use a tag like v1.2.2 instead of latest (all releases since 1.2.2 are tagged this way).

Acknowledgements

COBREXA.jl is developed at the Luxembourg Centre for Systems Biomedicine of the University of Luxembourg (uni.lu/lcsb), cooperating with the Institute for Quantitative and Theoretical Biology at the Heinrich Heine University in Düsseldorf (qtb.hhu.de).

The development was supported by European Union's Horizon 2020 Programme under PerMedCoE project (permedcoe.eu) agreement no. 951773. <!--acknowledgements_end-->

If you use COBREXA.jl and want to refer to it in your work, use the following citation format (also available as BibTeX in cobrexa.bib):

Miroslav Kratochvíl, Laurent Heirendt, St Elmo Wilken, Taneli Pusa, Sylvain Arreckx, Alberto Noronha, Marvin van Aalst, Venkata P Satagopam, Oliver Ebenhöh, Reinhard Schneider, Christophe Trefois, Wei Gu, COBREXA.jl: constraint-based reconstruction and exascale analysis, Bioinformatics, Volume 38, Issue 4, 15 February 2022, Pages 1171–1172, https://doi.org/10.1093/bioinformatics/btab782

COBREXA logo   Uni.lu logo   LCSB logo   HHU logo   QTB logo   PerMedCoE logo <!--acklogosend-->

Owner

  • Name: Luxembourg Centre for Systems Biomedicine
  • Login: LCSB-BioCore
  • Kind: organization
  • Location: Luxembourg

Citation (CITATION.cff)

cff-version: 1.2.0
title: COBREXA.jl
message: >-
  If you use COBREXA.jl and want to refer to it in
  your work, use this citation.
type: software
authors:
  - given-names: Miroslav
    family-names: Kratochvíl
    orcid: https://orcid.org/0000-0001-7356-4075
  - given-names: Laurent
    family-names: Heirendt
    orcid: https://orcid.org/0000-0003-1861-0037
  - given-names: St Elmo
    family-names: Wilken
    orcid: https://orcid.org/0000-0002-4113-2590
  - given-names: Taneli
    family-names: Pusa
    orcid:  https://orcid.org/0000-0003-2183-8876
  - given-names: Sylvain
    family-names: Arreckx
    orcid: https://orcid.org/0000-0002-8112-2135
  - given-names: Alberto
    family-names: Noronha
    orcid: https://orcid.org/0000-0002-0935-4599
  - given-names: Marvin
    family-names: van Aalst
    orcid: https://orcid.org/0000-0002-7434-0249
  - given-names: Venkata P
    family-names: Satagopam
    orcid: https://orcid.org/0000-0002-6532-5880
  - given-names: Oliver
    family-names: Ebenhöh
    orcid: https://orcid.org/0000-0002-7229-7398
  - given-names: Reinhard
    family-names: Schneider
    orcid: https://orcid.org/0000-0002-8278-1618
  - given-names: Christophe
    family-names: Trefois
    orcid: https://orcid.org/0000-0002-8991-6810
  - given-names: Wei
    family-names: Gu
    orcid: https://orcid.org/0000-0003-3951-6680
repository-code: 'https://github.com/LCSB-BioCore/COBREXA.jl'
date-released: 2021-05-16

preferred-citation:
  type: article
  title: >-
    COBREXA.jl: constraint-based reconstruction and
    exascale analysis
  authors:
    - given-names: Miroslav
      family-names: Kratochvíl
      orcid: https://orcid.org/0000-0001-7356-4075
    - given-names: Laurent
      family-names: Heirendt
      orcid: https://orcid.org/0000-0003-1861-0037
    - given-names: St Elmo
      family-names: Wilken
      orcid: https://orcid.org/0000-0002-4113-2590
    - given-names: Taneli
      family-names: Pusa
      orcid:  https://orcid.org/0000-0003-2183-8876
    - given-names: Sylvain
      family-names: Arreckx
      orcid: https://orcid.org/0000-0002-8112-2135
    - given-names: Alberto
      family-names: Noronha
      orcid: https://orcid.org/0000-0002-0935-4599
    - given-names: Marvin
      family-names: van Aalst
      orcid: https://orcid.org/0000-0002-7434-0249
    - given-names: Venkata P
      family-names: Satagopam
      orcid: https://orcid.org/0000-0002-6532-5880
    - given-names: Oliver
      family-names: Ebenhöh
      orcid: https://orcid.org/0000-0002-7229-7398
    - given-names: Reinhard
      family-names: Schneider
      orcid: https://orcid.org/0000-0002-8278-1618
    - given-names: Christophe
      family-names: Trefois
      orcid: https://orcid.org/0000-0002-8991-6810
    - given-names: Wei
      family-names: Gu
      orcid: https://orcid.org/0000-0003-3951-6680
  doi: "10.1093/bioinformatics/btab782"
  journal: "Bioinformatics"
  volume: 38
  issue: 4
  year: 2021
  month: 11
  issn: "1367-4803"
  url: "https://doi.org/10.1093/bioinformatics/btab782"
  abstract: "COBREXA.jl is a Julia package for scalable, high-performance constraint-based reconstruction and analysis of very large-scale biological models. Its primary purpose is to facilitate the integration of modern high performance computing environments with the processing and analysis of large-scale metabolic models of challenging complexity. We report the architecture of the package, and demonstrate how the design promotes analysis scalability on several use-cases with multi-organism community models.https://doi.org/10.17881/ZKCR-BT30.Supplementary data are available at Bioinformatics online."

GitHub Events

Total
  • Watch event: 2
  • Push event: 1
Last Year
  • Watch event: 2
  • Push event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 1,972
  • Total Committers: 13
  • Avg Commits per committer: 151.692
  • Development Distribution Score (DDS): 0.592
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Mirek Kratochvil e****a@g****m 805
St. Elmo s****s@g****m 743
laurentheirendt l****t@u****u 246
cylon-x c****x@u****u 90
htpusa t****a@p****e 24
Sylvain Arreckx s****x@g****m 19
Marvin van Aalst m****t@g****m 18
Alberto NORONHA a****a@u****u 6
github-actions[bot] 4****] 6
CompatHelper Julia c****y@j****g 6
htpusa t****a@u****u 4
Jose Antonio Pereiro Morejon 4****o 3
HettieC h****n@b****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 28
  • Total pull requests: 123
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 23 days
  • Total issue authors: 7
  • Total pull request authors: 6
  • Average comments per issue: 3.82
  • Average comments per pull request: 2.86
  • Merged pull requests: 95
  • Bot issues: 0
  • Bot pull requests: 7
Past Year
  • Issues: 0
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • stelmo (8)
  • exaexa (7)
  • htpusa (4)
  • laurentheirendt (3)
  • HettieC (2)
  • JuliaTagBot (1)
  • mihai-sysbio (1)
Pull Request Authors
  • stelmo (75)
  • exaexa (48)
  • github-actions[bot] (7)
  • josePereiro (2)
  • laurentheirendt (1)
  • htpusa (1)
Top Labels
Issue Labels
feature (9) quality (8) documentation (3) bug (2) performance (1) :axe: code axing :axe: (1) minor (1)
Pull Request Labels
do not merge (9) feature (7) minor (5) code axing (4) :x: breaking :x: (4) bug (4) quality (4) :x: breaking (3)

Dependencies

.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/cache v1 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia v1 composite
.github/workflows/pr-format.yml actions
  • actions/checkout v3 composite
Dockerfile docker
  • julia latest build