|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.simulator.sbml.SBMLinterpreter
public class SBMLinterpreter
This differential equation system (DESystem
) takes a model in SBML
format and maps it to a data structure that is understood by the
AbstractDESSolver
. Therefore, this class implements all necessary
functions expected by SBML.
Field Summary | |
---|---|
protected Reaction |
currentReaction
This field is necessary to also consider local parameters of the current reaction because it is not possible to access these parameters from the model. |
protected double[] |
initialValues
An array, which stores all computed initial values of the model. |
protected List<Double>[] |
listOfContraintsViolations
An array, which stores for each constraint the list of times, in which the constraint was violated during the simulation. |
protected Model |
model
The model to be simulated. |
protected Map<String,Double> |
stoichiometricCoefHash
This Map saves the current stoichiometric coefficients for those
SpeciesReference objects that are a target to an Assignment
. |
static String |
TEMP_VALUE
Key to memorize user objects in ASTNode |
protected double[] |
v
An array of the velocities of each reaction within the model system. |
protected double[] |
Y
An array of the current concentration of each species within the model system. |
Constructor Summary | |
---|---|
SBMLinterpreter(Model model)
This constructs a new DESystem for the given SBML Model . |
|
SBMLinterpreter(Model model,
double defaultSpeciesValue,
double defaultParameterValue,
double defaultCompartmentValue)
|
|
SBMLinterpreter(Model model,
double defaultSpeciesValue,
double defaultParameterValue,
double defaultCompartmentValue,
Map<String,Boolean> amountHash)
Creates a new SBMLinterpreter |
Method Summary | |
---|---|
double |
compileReaction(int reactionIndex)
|
double |
computeDelayedValue(double time,
String id)
Returns the value for the element with the given id at a time point in the past, where the time gives the amount of time in the past. |
void |
computeDerivatives(double time,
double[] Y,
double[] changeRate)
|
boolean |
containsEventsOrRules()
This method is used to check if this differential equation system contains any events or rules that would require a special treatment by the numerical solver. |
boolean |
containsFastProcesses()
|
int |
getAdditionalValueCount()
Gives the number of intermediate results that are computed by this class. |
String[] |
getAdditionalValueIds()
This provides the column/row identifiers of all intermediate results: one identifier per result. |
double[] |
getAdditionalValues(double t,
double[] Y)
Computes and/or delivers the intermediate results at the given time and for the given results from the previous time step. |
double |
getCurrentCompartmentSize(String id)
Returns the size of the compartment with the given id. |
double |
getCurrentCompartmentValueOf(String speciesId)
Checks if the given symbol id refers to a Species and returns the
value of its Compartment or 1d otherwise |
double |
getCurrentParameterValue(String id)
Returns the value of the parameter with the given id. |
double |
getCurrentSpeciesValue(String id)
Returns the value of the species with the given id. |
double |
getCurrentStoichiometry(String id)
Returns the value of the stoichiometry of the species reference with the given id. |
double |
getCurrentTime()
Returns the timepoint where the simulation is currently situated |
double |
getCurrentValueOf(int position)
Returns the current value of the Y vector at the given position. |
double |
getCurrentValueOf(String id)
Returns the current value of the SBase with the given id. |
int |
getDimension()
|
int |
getEventCount()
Counts the number of events in this system. |
String[] |
getIdentifiers()
Delivers an array of String s that describe the content of each
dimension of the resulting array of this DESystem . |
double[] |
getInitialValues()
Returns the initial values of the model to be simulated. |
Model |
getModel()
Returns the model that is used by this object. |
EventInProgress |
getNextEventAssignments(double t,
double previousTime,
double[] Y)
Returns a list with event assignments for the events triggered either by the time t or by the concentrations of the species stored in Y. |
boolean |
getNoDerivatives()
|
int |
getParameterCount()
This method tells you the complete number of parameters within the model. |
int |
getPositionOfParameters()
|
int |
getPositiveValueCount()
|
int |
getRuleCount()
Counts the number of rules to be evaluated in each time point. |
void |
init()
This method initializes the differential equation system for simulation. |
void |
init(boolean refreshTree)
This method initializes the differential equation system for simulation. |
void |
init(boolean renewTree,
double defaultSpeciesValue,
double defaultParameterValue,
double defaultCompartmentValue)
This method initializes the differential equation system for simulation. |
void |
init(boolean renewTree,
double defaultSpeciesValue,
double defaultParameterValue,
double defaultCompartmentValue,
Map<String,Boolean> amountHash)
This method initializes the differential equation system for simulation. |
boolean |
processAssignmentRules(double t,
double[] Y)
Calculates the changes or assignments that are defined by all rules in the system at the given simulation time point. |
void |
processInitialAssignments(double time,
double[] Y)
Processes the initial assignments |
boolean |
processRules(double time,
double[] changeRate,
double[] Y,
boolean initialCalculations)
Processes the rules |
protected void |
processVelocities(double[] changeRate,
double time)
This method computes the multiplication of the stoichiometric matrix of the given model system with the reaction velocities vector passed to this method. |
void |
registerDelayValueHolder(DelayValueHolder dvh)
|
void |
setFastProcessComputation(boolean isProcessing)
|
void |
setParameters(double[] params)
This method allows us to set the parameters of the model to the specified values in the given array. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String TEMP_VALUE
ASTNode
protected Reaction currentReaction
protected double[] initialValues
protected List<Double>[] listOfContraintsViolations
protected Model model
protected double[] v
protected Map<String,Double> stoichiometricCoefHash
Map
saves the current stoichiometric coefficients for those
SpeciesReference
objects that are a target to an Assignment
.
protected double[] Y
Constructor Detail |
---|
public SBMLinterpreter(Model model) throws ModelOverdeterminedException, SBMLException
This constructs a new DESystem
for the given SBML Model
.
Note that only a maximum of Integer.MAX_VALUE
Species
can
be simulated. If the model contains more Species
, this class is not
applicable.
Note that currently, units are not considered.
model
-
ModelOverdeterminedException
SBMLException
public SBMLinterpreter(Model model, double defaultSpeciesValue, double defaultParameterValue, double defaultCompartmentValue) throws SBMLException, ModelOverdeterminedException
model
- defaultSpeciesValue
- defaultParameterValue
- defaultCompartmentValue
-
SBMLException
ModelOverdeterminedException
public SBMLinterpreter(Model model, double defaultSpeciesValue, double defaultParameterValue, double defaultCompartmentValue, Map<String,Boolean> amountHash) throws SBMLException, ModelOverdeterminedException
SBMLinterpreter
model
- the model to interpretdefaultSpeciesValue
- the default value for species, if no value is givendefaultParameterValue
- the default value for parameters, if no value is givendefaultCompartmentValue
- the default value for compartments, if no value is givenamountHash
- a hash that states for the species in the model, whether their
amount or their concentration should be computed
SBMLException
ModelOverdeterminedException
Method Detail |
---|
public boolean containsFastProcesses()
containsFastProcesses
in interface FastProcessDESystem
public String[] getAdditionalValueIds()
RichDESystem
String
array must equal the length of the array returned by
RichDESystem.getAdditionalValues(double, double[])
.
getAdditionalValueIds
in interface RichDESystem
public double[] getAdditionalValues(double t, double[] Y) throws DerivativeException
RichDESystem
getAdditionalValues
in interface RichDESystem
t
- The time point for which intermediate results are to be
computed.Y
- The result vector from the previous time step.
DerivativeException
- If the system cannot be solved for the given configuration or
no intermediate results can be computed in this step.public double getCurrentCompartmentValueOf(String speciesId)
Species
and returns the
value of its Compartment
or 1d otherwise
getCurrentCompartmentValueOf
in interface SBMLValueHolder
speciesId
-
public double getCurrentCompartmentSize(String id)
SBMLValueHolder
getCurrentCompartmentSize
in interface SBMLValueHolder
public double getCurrentParameterValue(String id)
SBMLValueHolder
getCurrentParameterValue
in interface SBMLValueHolder
public double getCurrentSpeciesValue(String id)
SBMLValueHolder
getCurrentSpeciesValue
in interface SBMLValueHolder
public double getCurrentStoichiometry(String id)
SBMLValueHolder
getCurrentStoichiometry
in interface SBMLValueHolder
public int getDimension()
getDimension
in interface FirstOrderDifferentialEquations
public EventInProgress getNextEventAssignments(double t, double previousTime, double[] Y) throws DerivativeException
EventDESystem
getNextEventAssignments
in interface EventDESystem
t
- The current simulation time.Y
- The current change of the system.
DerivativeException
public String[] getIdentifiers()
DESystem
String
s that describe the content of each
dimension of the resulting array of this DESystem
.
getIdentifiers
in interface DESystem
String
s which has the same length than the
number given by FirstOrderDifferentialEquations.getDimension()
. Each
String
describes the content of the given dimension.public double[] getInitialValues()
public Model getModel()
public int getAdditionalValueCount()
RichDESystem
RichDESystem.getAdditionalValueIds()
and
RichDESystem.getAdditionalValues(double, double[])
.
getAdditionalValueCount
in interface RichDESystem
public int getEventCount()
EventDESystem
getEventCount
in interface EventDESystem
public int getParameterCount()
int
value, whereas the SBML model may
contain int
values.public int getRuleCount()
EventDESystem
getRuleCount
in interface EventDESystem
public int getPositionOfParameters()
public double getCurrentTime()
getCurrentTime
in interface SBMLValueHolder
public void computeDerivatives(double time, double[] Y, double[] changeRate) throws DerivativeException
computeDerivatives
in interface FirstOrderDifferentialEquations
DerivativeException
public double getCurrentValueOf(String id)
SBMLValueHolder
getCurrentValueOf
in interface SBMLValueHolder
public void init() throws ModelOverdeterminedException, SBMLException
This method initializes the differential equation system for simulation. In
more detail: the initial amounts or concentration will be assigned to every
Species
or InitialAssignment
s if any are executed.
To save computation time the results of this method should be stored in an array. Hence this method must only be called once. However, if the SBML model to be simulated contains initial assignments, this can lead to wrong simulation results because initial assignments may depend on current parameter values.
ModelOverdeterminedException
SBMLException
public void init(boolean refreshTree) throws ModelOverdeterminedException, SBMLException
refreshTree
-
ModelOverdeterminedException
SBMLException
public void init(boolean renewTree, double defaultSpeciesValue, double defaultParameterValue, double defaultCompartmentValue) throws ModelOverdeterminedException, SBMLException
renewTree
- defaultSpeciesValue
- defaultParameterValue
- defaultCompartmentValue
-
ModelOverdeterminedException
SBMLException
public void init(boolean renewTree, double defaultSpeciesValue, double defaultParameterValue, double defaultCompartmentValue, Map<String,Boolean> amountHash) throws ModelOverdeterminedException, SBMLException
renewTree
- defaultSpeciesValue
- defaultParameterValue
- defaultCompartmentValue
- amountHash
-
ModelOverdeterminedException
SBMLException
public boolean processAssignmentRules(double t, double[] Y) throws DerivativeException
EventDESystem
processAssignmentRules
in interface EventDESystem
t
- The current simulation time.Y
- The current change of the system.
true
if there has been a change in the Y vector
caused by the rules.
DerivativeException
public void processInitialAssignments(double time, double[] Y) throws SBMLException
time
- the ASTNode
timeY
- the Y vector
SBMLException
public boolean processRules(double time, double[] changeRate, double[] Y, boolean initialCalculations) throws SBMLException
time
- the current timechangeRate
- the changeRate vectorY
- the Y vectorinitialCalculations
-
SBMLException
protected void processVelocities(double[] changeRate, double time) throws SBMLException
changeRate
- An array containing the rates of change for each species in the
model system of this class.time
-
SBMLException
public void setFastProcessComputation(boolean isProcessing)
setFastProcessComputation
in interface FastProcessDESystem
isProcessing
- Should there be a splitting of fast and slow reactions in the simulation?public void setParameters(double[] params)
params
- An array of parameter values to be set for this model. If the number
of given parameters does not match the number of model parameters,
an exception will be thrown.public boolean containsEventsOrRules()
DESystem
containsEventsOrRules
in interface DESystem
true
if any events or rules are contained
in the differential equation system.public double getCurrentValueOf(int position)
SBMLValueHolder
getCurrentValueOf
in interface SBMLValueHolder
public int getPositiveValueCount()
getPositiveValueCount
in interface DESystem
public void registerDelayValueHolder(DelayValueHolder dvh)
registerDelayValueHolder
in interface DelayedDESystem
dvh
- the delay value holder to be registeredpublic double computeDelayedValue(double time, String id)
DelayValueHolder
computeDelayedValue
in interface DelayValueHolder
time
- the time point (in the past) at which the value is to be
computed for the element with the given id.id
- the id of the delayed value
public boolean getNoDerivatives()
getNoDerivatives
in interface EventDESystem
true
, if the change vector is always
zero in the system.public double compileReaction(int reactionIndex)
reactionIndex
- index of the reaction
|
Generated December 13 2012 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |