All Projects â†’ SciML â†’ Catalyst.jl

SciML / Catalyst.jl

Licence: other
Chemical reaction network and systems biology interface for scientific machine learning (SciML). High performance, GPU-parallelized, and O(1) solvers in open source software

Programming Languages

julia
2034 projects
dsl
153 projects

Labels

Projects that are alternatives of or similar to Catalyst.jl

Biojs
🔎A library of JavaScript components to represent biological data
Stars: ✭ 438 (+168.71%)
Mutual labels:  biology
Yesterday I Learned
Brainfarts are caused by the rupturing of the cerebral sphincter.
Stars: ✭ 50 (-69.33%)
Mutual labels:  biology
Riddle
Race and ethnicity Imputation from Disease history with Deep LEarning
Stars: ✭ 91 (-44.17%)
Mutual labels:  biology
Dna 3d Engine
3d engine implementation in DNA code!
Stars: ✭ 493 (+202.45%)
Mutual labels:  biology
Metasra Pipeline
MetaSRA: normalized sample-specific metadata for the Sequence Read Archive
Stars: ✭ 33 (-79.75%)
Mutual labels:  biology
Python biologist
Python Programming for Biologists
Stars: ✭ 55 (-66.26%)
Mutual labels:  biology
Jvarkit
Java utilities for Bioinformatics
Stars: ✭ 313 (+92.02%)
Mutual labels:  biology
Escher
Build, share, and embed visualizations of metabolic pathways.
Stars: ✭ 141 (-13.5%)
Mutual labels:  biology
Awesome Biological Visualizations
A list of web-based interactive biological data visualizations.
Stars: ✭ 40 (-75.46%)
Mutual labels:  biology
Biosequences.jl
Biological sequences for the julia language
Stars: ✭ 77 (-52.76%)
Mutual labels:  biology
Ncbi Genome Download
Scripts to download genomes from the NCBI FTP servers
Stars: ✭ 494 (+203.07%)
Mutual labels:  biology
Thrive
The main repository for the development of the evolution game Thrive.
Stars: ✭ 874 (+436.2%)
Mutual labels:  biology
Globalbioticinteractions
Global Biotic Interactions provides access to existing species interaction datasets
Stars: ✭ 71 (-56.44%)
Mutual labels:  biology
Chainer Chemistry
Chainer Chemistry: A Library for Deep Learning in Biology and Chemistry
Stars: ✭ 462 (+183.44%)
Mutual labels:  biology
Indra
INDRA (Integrated Network and Dynamical Reasoning Assembler) is an automated model assembly system interfacing with NLP systems and databases to collect knowledge, and through a process of assembly, produce causal graphs and dynamical models.
Stars: ✭ 105 (-35.58%)
Mutual labels:  biology
Jbrowse
A modern genome browser built with JavaScript and HTML5.
Stars: ✭ 393 (+141.1%)
Mutual labels:  biology
Semester Biology
Stars: ✭ 52 (-68.1%)
Mutual labels:  biology
Dspp Keras
Protein order and disorder data for Keras, Tensor Flow and Edward frameworks with automated update cycle made for continuous learning applications.
Stars: ✭ 160 (-1.84%)
Mutual labels:  biology
Seagull
A Python Library for Conway's Game of Life
Stars: ✭ 130 (-20.25%)
Mutual labels:  biology
Openworm
Project Home repo for Central Dockerfile and Project-wide issues
Stars: ✭ 1,201 (+636.81%)
Mutual labels:  biology

Catalyst.jl

Join the chat at https://gitter.im/JuliaDiffEq/Lobby Build Status Coverage Status codecov.io

Stable API Stable Dev API Dev

Catalyst.jl is a domain-specific language (DSL) for high-performance simulation and modeling of chemical reaction networks. Catalyst utilizes ModelingToolkit ReactionSystems, leveraging ModelingToolkit to enable large-scale simulations through auto-vectorization and parallelism. ReactionSystems can be used to generate ModelingToolkit-based models, allowing easy simulation and parameter estimation of mass action ODE models, Chemical Langevin SDE models, stochastic chemical kinetics jump process models, and more. Generated models can be used with solvers throughout the broader SciML ecosystem, including higher-level SciML packages (e.g., for sensitivity analysis, parameter estimation, machine learning applications, etc.).

Tutorials and Documentation

For information on using the package, see the stable documentation. The in-development documentation describes unreleased features in the current master branch.

Features

  • DSL provides a simple and readable format for manually specifying chemical reactions.
  • The Catalyst.jl API provides functionality for extending networks, building networks programmatically, and for composing multiple networks together.
  • ReactionSystems generated by the DSL can be converted to a variety of ModelingToolkit.AbstractSystems, including ODE, SDE, and jump process representations.
  • By leveraging ModelingToolkit, users have a variety of options for generating optimized system representations to use in solvers. These include construction of dense or sparse Jacobians, multithreading or parallelization of generated derivative functions, automatic classification of reactions into optimized jump types for Gillespie-type simulations, automatic construction of dependency graphs for jump systems, and more.
  • Generated systems can be solved using any DifferentialEquations.jl ODE/SDE/jump solver, and can be used within EnsembleProblems for carrying out GPU-parallelized parameter sweeps and statistical sampling. Plot recipes are available for visualizing the solutions.
  • Julia Exprs can be obtained for all rate laws and functions determining the deterministic and stochastic terms within resulting ODE, SDE, or jump models.
  • Latexify can be used to generate LaTeX expressions corresponding to generated mathematical models or the underlying set of reactions.
  • Graphviz can be used to generate and visualize reaction network graphs. (Reusing the Graphviz interface created in Catlab.jl.)

Illustrative Examples

Gillespie Simulations of Michaelis-Menten Enzyme Kinetics

rs = @reaction_network begin
  c1, S + E --> SE
  c2, SE --> S + E
  c3, SE --> P + E
end c1 c2 c3
p = (0.00166,0.0001,0.1)   # [c1,c2,c3]
tspan = (0., 100.)
u0 = [301., 100., 0., 0.]  # [S,E,SE,P]

# solve JumpProblem
dprob = DiscreteProblem(rs, u0, tspan, p)
jprob = JumpProblem(rs, dprob, Direct())
jsol = solve(jprob, SSAStepper())
plot(jsol,lw=2,title="Gillespie: Michaelis-Menten Enzyme Kinetics")

Adaptive SDEs for A Birth-Death Process

using Catalyst, Plots, StochasticDiffEq, DiffEqJump
rs = @reaction_network begin
  c1, X --> 2X
  c2, X --> 0
  c3, 0 --> X
end c1 c2 c3
p = (1.0,2.0,50.) # [c1,c2,c3]
tspan = (0.,10.)
u0 = [5.]         # [X]
sprob = SDEProblem(rs, u0, tspan, p)
ssol  = solve(sprob, LambaEM(), reltol=1e-3)
plot(ssol,lw=2,title="Adaptive SDE: Birth-Death Process")

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].