Code Monkey home page Code Monkey logo

kisao's Introduction

SED-ML logo

Simulation Experiment Description

SED-ML is an XML-based format for encoding simulation setups, to ensure exchangeability and reproducibility of simulation experiments.

This repository contains the SED-ML specifications, schema, figures and presentations.

Homepage: https://sed-ml.org/
Discussion group: https://groups.google.com/forum/#!forum/sedml-discuss
Editors' email: [email protected]
Issue tracker: https://github.com/SED-ML/sed-ml/issues
Repository: https://github.com/sed-ml/sed-ml
Test suite: https://github.com/SED-ML/sedml-test-suite

Editor notes, online documents, ...

Google Drive: https://drive.google.com/drive/folders/0B71r5kLs3FlibnZMUEpIU1RKR1k?usp=sharing

© 2017-2021 sed-ml.org

kisao's People

Contributors

annazhukova avatar github-actions[bot] avatar jonrkarr avatar luciansmith avatar matthiaskoenig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kisao's Issues

Parameter for number of parallel processes

name: parallelism

definition: Number of parallel processes to use

subClassOf: KISAO_0000201

algorithm: FVA
algorithm: gFBA

isImplementedIn: COBRApy

Reported by: jonrkarr

New parameter for dopri5 dfactor

name: dfactor

altLabel: fac1

definition: Minimum factor to increase/decrease step size by in one step. The new step-size is chosen subject to the restriction fac1 <= current step-size / old step-size <= fac2.

subClassOf: KISAO_0000242

algorithm: KISAO_0000087, KISAO_0000436

isImplementedIn: SciPy, JModelica, Odespy

Reported by: jonrkarr

add "optimization algorithm"

an optimization algorithm tries to find the minumum or maximum of an arbitrary function. It takes a function of one or several variables and determines the values for the variables so that the function value is optimal.

Reported by: *anonymous

KISAO terms for DFBA

Hi all,

I would need KISAO terms for the description of dynamic flux balance analysis (DFBA) as algorithms. In the following the 4 short terms, terms and description:

DFBA: dynamic flux balance analysis
"Dynamic flux balance analysis (DFBA) enables the simulation of dynamic biological systems by assuming organisms reach steady state rapidly in response to changes in the extracellular environment. DFBA couples flux balance analysis (FBA) model approaches with dynamic model approaches. There exist three main approaches to simulate DFBA models: the static optimization approach (SOA), the dynamic optimization approach (DOA), and the
direct approach (DA).

SOA-DFBA: stationary optimization approach
Dynamic Flux Balance Analysis (DFBA) couples flux balance analysis (FBA) model approaches with dynamic model approaches. The static optimization approach (SOA) uses the Euler forward method, solving the embedded LPs at each time step. The FBA fluxes are assumed to be constant during the time step.

DOA-DFBA: dynamic optimization approach
Dynamic Flux Balance Analysis (DFBA) couples flux balance analysis (FBA) model approaches with dynamic model approaches. The dynamic optimization approach (DOA) discretizes the time horizon and optimizes simultaneously over the entire time period of interest by
solving a nonlinear programming problem (NLP).

DA-DFBA: direct approach
Dynamic Flux Balance Analysis (DFBA) couples flux balance analysis (FBA) model approaches with dynamic model approaches. The direct approach (DA) includes the LP solver in the right-hand side evaluator for the ordinary differential equations (ODEs) and takes advantage of reliable implicit ODE integrators with adaptive step size for error control.

The terms, namely SOA-DFBA, would be need to encode the simulation algorithm in SED-ML for a publication we are preparing.

For defintion see for instance {Gomez2014},
https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-014-0409-8

"Dynamic flux balance analysis (DFBA) enables
the simulation of dynamic biological systems by assuming
organisms reach steady state rapidly in response to
changes in the extracellular environment. Then, the rates
predicted by FBA are used to update the extracellular
environment. There exist three approaches to simulate
DFBA models: the static optimization approach (SOA) [2],
the dynamic optimization approach [2] (DOA), and the
direct approach (DA). The static optimization approach
uses the Euler forward method, solving the embedded
LPs at each time step. Since most DFBA models are
stiff, small time steps are required for stability, making
this approach computationally expensive. Meanwhile, the
DOA approach discretizes the time horizon and optimizes
simultaneously over the entire time period of interest by
solving a nonlinear programming problem (NLP). The
dimension of this NLP increases with time discretization,
therefore it is limited to small-scale metabolic models
[3]. Finally, a DA has been proposed recently by including
the LP solver in the right-hand side evaluator for
the ordinary differential equations (ODEs) and taking
advantage of reliable implicit ODE integrators with adaptive
step size for error control."

Thanks a lot
Matthias

Reported by: matthiaskoenig

Parameter for reactions

name: reactions

definition: Reactions to compute the variablity of

subClassOf: KISAO_0000201

algorithm: FVA

isImplementedIn: COBRApy

Reported by: jonrkarr

Term request: synchronous updating policy

Create new term: synchronous updating policy

Definition:
An updating policy where all enabled transitions occur simultaneously. Thus a state will have at most one successor.

Position:
characteristics branch, as subclass of "type of updating policy" (kisao:KISAO_0000451)

Reported by: dagwa

Linear solver type property for algorithms where applicable

Some algorithms depend on a linear solver, and some implementations let the users pick this type of linear solver (e.g. IDA, which provides direct solvers along with solvers based on Krylov Subspace methods. I suggest Generalised Minimal Residual (GMRES) be a subset of Krylov Subspace Solvers, and Scaled, Preconditioned GMR (SPGMR) be treated as a specific type of GMRES; under Krylov Subspace Methods, Biconjugate Gradient Stabilized Methods, with the scaled, preconditioned variant, a minimum residual method, and a quasi-minimum residual (QMR), with transpose-free QMR (TFQMR) as a type of QMR, and the scaled, preconditioned variant SPTQMR as a variant of that).

Reported by: a1kmm

Term request: asynchronous updating policy

Create new term: asynchronous updating policy

Definition:
An updating policy where all enabled transitions (events) occur independently. Thus a state has as many successors as the number of transitions enabled in this state.

Position:
characteristics branch, as subclass of "type of updating policy" (kisao:KISAO_0000451)

Reported by: dagwa

New term for partitioned leaping

I'd like to propose a term for partitioned leaping:

name: partitioned leaping method

definition:
Multiscale simulation approach for modeling stochasticity in chemical reaction networks.
The approach seamlessly integrates exact-stochastic and "leaping" methodologies into
a single partitioned leaping algorithmic framework. The technique correctly accounts
for stochastic noise at significantly reduced computational cost, requires the definition
of only three modelindependent parameters and is particularly well-suited for simulating
systems containing widely disparate species populations.

subClassOf: KISAO_0000039

isImplementedIn: BioNetGen

parameters: KISAO_0000488

reference: Harris LA, Clancy P. A "partitioned leaping" approach for multiscale modeling of chemical reaction dynamics. J Chem Phys. 125 (14), 144107 (2006).
doi: 10.1063/1.2354085

Reported by: jonrkarr

Add a KiSAO term for "combined solvers"

Some models require using combined solvers (e.g. CVODE + KINSOL). It would therefore be nice to have a KiSAO term for such combined solvers. The idea is that, using the forthcoming SED-ML L1V4, we will then be able to specify an algorithm as being a "combined solver", which first parameter is the KiSAO term for CVODE and the second parameter the KiSAO term for KINSOL, etc.

Reported by: agarny

Typo in rule-based simulation method

"Such models consist of formal rules governing interactive behaviour. Rule-based simulation methods are methods, used to simulated such models."
should be:
"Such models consist of formal rules governing interactive behaviour. Rule-based simulation methods are methods, used to simulate such models."
and could be:
"Rule-based models consist of formal rules governing interactive behaviour. Rule-based simulation methods simulate such models."

Reported by: dagwa

maximum step size

From KiSAO SurveyMonkey

Q1: Which type of term would you like to suggest?

Algorithm parameter

Q10: Parameter name (e.g. absolute tolerance):

maximum step size
Q11: Parameter type:

double

Q12: Short description:

An upper limit, in the units of the bound variable over which a numerical integration is being performed, that an adaptive step size numerical integration algorithm should take.

Q21: Parameter ancestor/descendants (if any):

error control parameter
Q22: Which algorithms use this parameter?

Multiple, including everything under CVODE-like method, IDA-like method, and specific implementations of many of the multi-step methods and one-step methods.
PAGE 9: Tell us about yourself (optional)
Q23: Your name:

Andrew Miller
Q24: Your e-mail:

[email protected]

Reported by: gambardella

New algorithm for RK23

name: Explicit Runge-Kutta method of order 3(2)

altLabel: RK23

definition: RK23 uses the Bogacki-Shampine pair of formulas [1]. The error is controlled assuming accuracy of the second-order method, but steps are taken using the third-order accurate formula (local extrapolation is done). A cubic Hermite polynomial is used for the dense output.

subClassOf: KISAO_0000064

seeAlso: 10.1016/0893-9659(89)90079-7

isImplementedIn: SciPy, MATLAB, Odespy, deSolve, Octave, GillesPy2

Reported by: jonrkarr

add "global optimization algorithm"

a global optimization algorithm tries to find the global optimum of a function. If a function has several minima/maxima with in the allowed range of variable values, the global minimum/maximum is the one with the smallest/largest function value.

Reported by: sahle

New parameter for dopri5 safety

name: safety

altLabel: safe

definition: Safety factor on new step selection

subClassOf: KISAO_0000242

algorithm: KISAO_0000087, KISAO_0000436

isImplementedIn: SciPy, JModelica, Odespy

Reported by: jonrkarr

New algorithm for parsimonious FBA

name: parsimonious Flux Balance Analysis

altLabel: parsimonious FBA

altLabel: pFBA

definition: Method for determining the smallest flux distribution among all flux distributions that satisfy the constraints of the FBA model

subClassOf: KISAO_0000437

seeAlso: 10.1038/msb.2010.47

isImplementedIn: COBRApy

Reported by: *anonymous

KLU solver

As of version 2.6 the CVODES solver by SUNDIALS supports the sparse linear solver KLU from SuiteSparse (http://faculty.cse.tamu.edu/davis/suitesparse.html). Especially for large scale systems with sparse interactions it is important to specify this as linear solver as it will typically yield a substantial computational speedup.

I am not sure whether "algorithm characteristic" is correct. It should be treated the same as other linear solvers such as GMRES.

name: KLU ("Clark Kent" LU factorization algorithm)
type: algorithm characteristic
short description: sparse left-looking LU factorization, using a block triangular form
reference: Davis, Timothy A., and Ekanathan Palamadai Natarajan. "Algorithm 907: KLU, a direct sparse solver for circuit simulation problems." ACM Transactions on Mathematical Software (TOMS) 37.3 (2010): 36.

Reported by: *anonymous

Property for numerical or analytic Jacobian

There should be a way to describe whether the method used to compute the Jacobian matrix is numerical or analytic, and if it is numerical, what algorithm is used (for example, finite differences).

Reported by: a1kmm

Add terms for all algorithms supported by GSL

To go through the list:

Explicit embedded Runge-Kutta (2, 3) => No term yet
Explicit 4th order (classical) Runge-Kutta => Already KISAO_0000032
Explicit embedded Runge-Kutta-Fehlberg (4, 5) method => Already KISAO_0000086
Explicit embedded Runge-Kutta Cash-Karp (4, 5) method => No term yet
Explicit embedded Runge-Kutta Prince-Dormand (8, 9) method => No term yet.
Implicit Gaussian first order Runge-Kutta => No term yet.
Implicit Gaussian second order Runge-Kutta => No term yet.
Implicit Gaussian 4th order Runge-Kutta => No term yet.
Implicit Bulirsch-Stoer method of Bader and Deuflhard => No term yet.
A variable-coefficient linear multistep Adams method in Nordsieck form. This stepper uses explicit Adams-Bashforth (predictor) and implicit Adams-Moulton (corrector) methods in P(EC)^m functional iteration mode. Method order varies dynamically between 1 and 12 => No term yet.
A variable-coefficient linear multistep backward differentiation formula (BDF) method in Nordsieck form => KISAO_0000030 is vague but that term could describe this algorithm.

Reported by: a1kmm

New term requests: maximum Adams order and maximum BDF order

As discussed on the sed-ml mailing list:

https://sourceforge.net/p/sed-ml/mailman/message/34816341/

it turns out that there are situations where a single algorithm must use two different 'maximum order' terms; one for maximum adams order, and a second for maximum BDF order. I know you just added 'maximum order' (at my request--thank you!); can you now add maximum Adams order and maximum BDF order as children of 'maximum order'? Thank you!

Reported by: luciansmith

New algorithm for flux variability analysis

name: flux variability analysis

altLabel: FVA

definition: Method for determining the minimum and maximum flux of each reaction that satisfies the flux constraints of the FBA model

subClassOf: KISAO_0000437

seeAlso: 10.1016/j.ymben.2003.09.002

isImplementedIn: COBRApy

Reported by: *anonymous

New term request: maximum order

Roadrunner has two parameters that one can set for deterministic runs: 'maximum_bdf_order' and 'maximum_adams_order'. Both could be represented by a general 'maximum order' KiSAO term.

Reported by: luciansmith

New term request: seed

For any stochastic algorithm, being able to set the seed means you can reproduce your results if you run the same algorithm on the same computer.

Reported by: luciansmith

New parameter for fraction of optimum

name: fraction of optimum

definition: Fraction of the optimum solution which must be maintained

subClassOf: KISAO_0000201

algorithm: FVA
algorithm: pFBA

isImplementedIn: COBRApy

Reported by: jonrkarr

Algorithm for geometric FBA

name: geometric Flux Balance Analysis

altLabel: geometric FBA

altLabel: gFBA

definition: Method for determining the central flux distribution among all flux distributions that satisfy the constraints of the FBA model

subClassOf: KISAO_0000437

seeAlso: 10.1016/j.jtbi.2009.01.027

isImplementedIn: COBRApy

Reported by: jonrkarr

New term request: minimum dampening

The dampening factor is a variable for at least some steady state algorithms: roadrunner allows you to set the minimum value for this.

Reported by: luciansmith

add "local optimization algorithm"

a local optimization algorithm only finds a local optimum of a function. If several optima exist for the function, it usually depends on the starting values for the variables which optimum is found.

This is a kind of optimization algorithm.

Reported by: sahle

New parameter for stop condition

name: stop condition

definition: A condition upon which a simulation should terminate.

subClassOf: KISAO_0000201

isImplementedIn: BioNetGen

Reported by: jonrkarr

Term request: random asynchronous updating policy

Create term: random asynchronous updating policy

Definition:
An updating policy where a single transition is picked randomly from the set of transitions enabled in this state. Thus a state will have at most one successor.

Position:
characteristics branch, as subclass "asynchronous updating policy" (#25), which is suggested to be a subclass of "type of updating policy" (kisao:KISAO_0000451); as a subclass of "random updating policy" (kisao:KISAO_0000452)

Reported by: dagwa

Term request: fully asynchronous updating policy

Create new term: fully asynchronous updating policy

Definition:
An updating policy where all enabled transitions occur either independently or (partially) simultaneously. (i.e. considering all possible combinations of enabled transitions). Thus a state has as many successors as the number of combinations of transitions enabled in this state .

Position:
characteristics branch, as subclass "asynchronous updating policy" (#25), which is suggested to be a subclass of "type of updating policy" (kisao:KISAO_0000451)

Reported by: dagwa

New algorithm for VODE

name: Real-valued Variable-coefficient Ordinary Differential Equation solver, with fixed-leading-coefficient implementation

altLabel: VODE

altLabel: DVODE

definition: VODE provides implicit Adams method (for non-stiff problems) and a method based on backward differentiation formulas (BDF) (for stiff problems).

subClassOf: KISAO_0000433

seeAlso: 10.1137/0910062

isImplementedIn: SciPy, Odespy, deSolve, GillesPy2

Reported by: jonrkarr

KISAO terms for parameter estimation / optimization

Hello,

in order to be able to express parameter estimation tasks in SED-ML we need the capability of defining some optimization methods. Under:

KISAO_0000472:
Simulated Annealing
Random Search
Particle Swarm
Genetic Algorithm

  • Genetic Algorithm SR
    Evolutionary Programming
  • Evolutionary Strategy (SRES)

and under KISAO_0000471:
Truncated Newton
Steepest Descent
Praxis
NL2SOL
Nelder - Mead
Levenberg - Marquardt
Hooke & Jeeves

description of the methods i like here:
http://copasi.org/Support/User_Manual/Methods/Optimization_Methods/

associated parameters would be nice as well, at the bare minimum we would need (full list of parameters listed on the site above):

Number of Generations:
The parameter is a positive integer value to determine the number of generations the algorithm shall evolve the population.

Population Size:
The parameter is a positive integer value to determine the size of the population

Iteration Limit:
This parameter is positive integer determining the maximum number of iterations the algorithm shall perform.

Tolerance
This parameter is a positive value determining the tolerance with which the solution shall be determined. If the improvement between two steps is less than the tolerance the algorithm stops.

Thank you so much,

best
Frank

Reported by: *anonymous

New term request: minimum time step

For any algorithm with variable step size, sometimes it is helpful to be able to set the minimum step size instead of just the maximum step size.

Reported by: luciansmith

Parameter for pFBA factor

name: pFBA factor

definition: Maximum permissible sum of absolute fluxes

subClassOf: KISAO_0000201

algorithm: FVA

isImplementedIn: COBRApy

Reported by: jonrkarr

New algorithm for ZVODE

name: Complex-valued Variable-coefficient Ordinary Differential Equation solver, with fixed-leading-coefficient implementation

altLabel: ZVODE

definition: ZVODE provides implicit Adams method (for non-stiff problems) and a method based on backward differentiation formulas (BDF) (for stiff problems).

subClassOf: KISAO_0000433

seeAlso: 10.1137/0910062

isImplementedIn: SciPy, Odespy, deSolve, GillesPy2

Reported by: jonrkarr

add "bayesian inference algorithm"

A bayesian inference algorithm calculates a posterior probability distribution from a prior probability distribution and some additional evidence in the form of a likelyhood function.

Reported by: sahle

Number of Runs

This should indicate the number of runs that a simulation should perform. It would typically be used to specify the number of runs for a stochastic simulation.

Reported by: cjmyers

Typo (mine): 'dampening' -> 'damping'

My request for a new term had a typo I only just found when implementing SED-ML support: the term should be 'minimum damping', not 'minimum dampening'. Sorry!

Reported by: luciansmith

Parameter for loopless

name: loopless

definition: Whether to return only loopless flux solutions

subClassOf: KISAO_0000201

algorithm: FVA

isImplementedIn: COBRApy

Reported by: jonrkarr

New parameter for dopri5 beta

name: beta

definition: Beta parameter for stabilised step size control

subClassOf: KISAO_0000242

algorithm: KISAO_0000087, KISAO_0000436

isImplementedIn: SciPy, JModelica, Odespy

Reported by: jonrkarr

New parameter for dopri5 ifactor

name: ifactor

altLabel: fac2

definition: Maximum factor to increase/decrease step size by in one step. The new step-size is chosen subject to the restriction fac1 <= current step-size / old step-size <= fac2.

subClassOf: KISAO_0000242

algorithm: KISAO_0000087, KISAO_0000436

isImplementedIn: SciPy, JModelica, Odespy

Reported by: jonrkarr

Maximal Timestep Method

From KiSAO surveymonkey:

Q3: Algorithm name (e.g. tau-leaping method):

Maximal Timestep Method
Q4: Short description:

Hybrid simulation algorithm integrating Gillespie exact simulation and Gillespie tau leap.
Q5: Reference (e.g. article name, DOI, PubMed id):

PMID: 14990466
Q6: Your comment:

Hybrid simulation method used to simulate systems involving reactions with propensities varying by many orders of magnitude.

Q15: Algorithm ancestor:

hybrid
Q16: Is this method a hybrid one or does it use other algorithms?

yes (please specify which algorithms it uses) Gillespie direct method Gillespie tau leap

Q17: Which characteristics does it possess?

Stochastic simulation of stiff systems
Q18: Which parameters does it use?

Key parameter is Maximal Timestep. If Gillespie waiting time is longer than Maximal Timestep, slow reaction is not fired and tau-leap step is executed for fast reactions. Otherwise, slow reaction is fired and tau-leap is executed with shorter time step.

Q23: Your name:

Andrzej Kierzek
Q24: Your e-mail:

[email protected]

Reported by: gambardella

New term request: maximum iterations

For algorithms that iterate to a solution (steady state finders in particular), a limit on the number of iterations that should be performed is often helpful.

Reported by: luciansmith

Replace “Logical Model Simulation Method” (kisao:KISAO_0000448) by “Discrete Event Simulation algorithm”

We suggest to replace the term "Logical Model Simulation Model", because “Discrete Event Simulation algorithm” is more generic, and it refers to the actual type of simulation rather than to the characteristic of the model.

altLabel:
DES

Definition:
Discrete Event Simulation algorithm refers to the simulation of systems whose (countable) discrete states change over time and are event-driven.

Reference: C.G. Cassandras & S. Lafortune "Introduction to Discrete Event Systems", Chapt 1 2nd Ed 2008. Springer

Reported by: dagwa

Add 'type of problem' or similar

Some solver algorithms and implementations are specifically designed for solving ODE problems (y(0) = y0, y' = f(y, t) ) while others solve more general DAE problems like y(0) = 0, F(x, y, y', t) = 0.

This could be addressed if there was a solver characteristic like 'type of problem'.

Reported by: a1kmm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.