Main Content

SimBiology.Species

Object containing species information

Description

The SimBiology.Species object represents a species, which is a chemical or entity that participates in reactions, for example, DNA, ATP, Pi, creatine, G-Protein, or Mitogen-Activated Protein Kinase (MAPK). Species amounts can vary or remain constant during a simulation. The name of each species must be unique within the same compartment and the species object cannot have the same name as any observable object in the model.

To add species that participate in reactions, add the reaction to the model. The process of adding the reaction to the model creates a compartment object (unnamed) and the necessary species objects.

Alternatively, create and add a species object to a compartment, using the addspecies function.

Use dot notation to query the object properties or change properties that are not read-only. You can also use the get and set commands.

The SimBiology Model Builder app also enables you to add species, reactions, and other model components to your model and edit them. For an example, see Incorporate SGLT2 Inhibition into Physiologically Based Glucose-Insulin Model Using SimBiology Model Builder.

Creation

Use addspecies to create and add a species to a compartment.

Properties

expand all

Species initial amount, specified as a positive scalar. InitialAmount is the quantity of the species before the simulation starts.

The InitialAmount property and the Value property are identical.

Data Types: double

Species initial amount units, specified as a character vector or string scalar. This property is identical to Units.

The property indicates the unit definition for the InitialAmount property of a species object.

The InitialAmountUnits property is identical to the Units property. For more details, see Units.

Example: "picomole/liter"

Data Types: char | string

Flag to set the species value as a constant, specified as a numeric or logical 1 (true) or 0 (false). ConstantAmount is identical to Constant.

For more details, see the Constant property.

Data Types: double | logical

Flag to set the species value as a constant, specified as a numeric or logical 1 (true) or 0 (false). ConstantAmount is identical to Constant.

The Constant property indicates whether the quantity of the species object can vary during the simulation. Constant can be either true or false. If Constant is true, the quantity of the species cannot vary during the simulation. By default, Constant is false and the quantity of the species can vary during the simulation. If Constant is false, the quantity of the species can be determined by reactions and rules.

Note

When you want the species to participate in a reaction, but do not want any reactions to modify its quantity, set its BoundaryCondition to true, and ConstantAmount to false.

The following is an example of modeling species as constant amounts.

Consider the role of nucleotides (GTP, ATP, cAMP) and cofactors (Ca++, NAD+, coenzyme A). Consider the role of GTP in the activation of Ras by receptor tyrosine kinases: Ras-GDP + GTP -> Ras-GTP + GDP

Model GTP and GDP with constant amount set to true. In addition, you can set the BoundaryCondition of these species to true, thus making them boundary species.

Data Types: double | logical

Special value, specified as a nonnegative scalar.

The InitialAmount property and the Value property are identical.

Data Types: double

Units for the species value, specified as a character vector or string scalar.

Units can be one of the built-in units or you can create your own units. To get a list of the built-in units, use sbioshowunits. To create a custom unit, use sbiounit. If Units changes from one unit definition to another, the Value property does not automatically convert to the new units. sbioconvertunits does this conversion.

Note

SimBiology® uses units including empty units in association with DimensionalAnalysis and UnitConversion features.

  • When DimensionalAnalysis and UnitConversion are both false, units are not used. However, SimBiology still performs a minimum level of dimensional analysis to decide whether a reaction rate is in dimensions of amount/time or concentration/time.

  • When DimensionalAnalysis is true and UnitConversion is false, units (if not empty) must have consistent dimensions so that SimBiology can perform dimensional analysis. However, the units are not converted.

  • When UnitConversion is set to true (which requires DimensionalAnalysis to be true), SimBiology performs a dimensional analysis and converts everything to consistent units. Hence, you must specify consistent units, and no units can be empty. If you have a dimensionless parameter, you must still set its unit to dimensionless.

See DefaultSpeciesDimension for more information on specifying dimensions for species quantities. Some examples of valid dimensions are amount, amount/length, amount/area, or amount/volume. InitialAmountUnits or Units must have corresponding dimensions to CapacityUnits. For example, if the CapacityUnits are meter2, then species must be amount/meter2 or amount.

Example: "milligram"

Data Types: char | string

Flag to set the species boundary condition, specified as a numeric or logical 1 (true) or 0 (false). The property indicates whether reactions affect a species quantity.

When the BoundaryCondition property of a species is false, the reactions can modify the species quantity. If a species is modified by reactions, then rules (repeated assignment rule, rate rule, or algebraic rule) cannot modify its value. SimBiology considers a reaction to modify a species when the net stoichiometry for the species is non-zero. For example, the reaction X -> 2*X modifies X, but the reaction X + E -> Y + E does not modify E.

When BoundaryCondition is true, then the value of the species is not changed by reactions during model simulation, even if the net stoichiometry is non-zero. Set the BoundaryCondition of a species to true if you want the species to participate in the reaction but you want to determine the value of that species using a rule instead. For example, set the BoundaryCondition of species X to true to specify its value using a repeated assignment rule but also to use species X in a reaction with MassAction kinetics, for example, X + Y -> Z.

For details on how these two properties affect a species quantity during simulation, see How Species Amounts Change During Simulations.

Consider the following two use cases of boundary conditions:

  • Modeling receptor-ligand interactions that affect the rate of change of the receptor but not the ligand. For example, in response to hormone, steroid receptors such as the glucocorticoid receptor (GR) translocate from the cytoplasm (cyt) to the nucleus (nuc). The hsp90/ hsp70 chaperone complex directs this nuclear translocation [1]. The natural ligand for GR is cortisol; the synthetic hormone dexamethasone (dex) is used in place of cortisol in experimental systems. In this system dexamethasone participates in the reaction but the quantity of dexamethasone in the cell is regulated using a rule. To simply model translocation of GR you could use the following reactions:

    Formation of the chaperone-receptor complex,

    Hsp90_complex + GR_cyt -> Hsp90_complex:GR_cyt
    

    In response to the synthetic hormone dexamethasone (dex), GR moves from the cytoplasm to the nucleus.

    Hsp90_complex:GR_cyt + dex -> Hsp90_complex + GR_nuc + dex
    
    For dex,
     BoundaryCondition = true; ConstantAmount = false
    In this example dex is modeled as a boundary condition with a rule to regulate the rate of change of dex in the system. Here, the quantity of dex is not determined by the rate of the second reaction but by a rate rule such as

    ddex/dt = 0.001 
    which is specified in the SimBiology software as
    dex = 0.001

  • Modeling the role of nucleotides (for example, GTP, ATP, cAMP) and cofactors (for example, Ca++, NAD+, coenzyme A). Consider the role of GTP in the activation of Ras by receptor tyrosine kinases.

    Ras-GDP + GTP  -> Ras-GTP + GDP
    For GTP, BoundaryCondition = true; ConstantAmount = true

    Model GTP and GDP with boundary conditions, thus making them boundary species. In addition, you can set the Constant property of these species to true to indicate that their quantity does not vary during a simulation.

Data Types: double | logical

SimBiology.Species object name, specified as a character vector or string.

For details on requirements and recommendations for naming SimBiology components, see Guidelines for Naming Model Components.

Data Types: char | string

This property is read-only.

Parent object, specified as a SimBiology.Compartment object.

Additional information that you can add for SimBiology.Species, specified as a character vector or string.

Data Types: char | string

Object label, specified as a character vector or string.

Tip

Use this property to group objects and then use sbioselect to retrieve. For example, use the Tag property of reaction objects to group synthesis or degradation reactions. You can then retrieve all synthesis reactions using sbioselect. Similarly, for species objects you can enter and store classification information, for example, membrane protein, transcription factor, enzyme classifications, or whether a species is an independent variable. You can also enter the full form of the name of the species.

Data Types: char | string

This property is read-only.

Object type, specified as 'species'. When you create a SimBiology object, the value of Type is automatically defined.

Data Types: char

Data to associate with the object, specified as a numeric scalar, vector, string, or any other MATLAB data type.

The object does not use this data directly, but you can access it using dot notation or get.

Object Functions

copyobjCopy SimBiology object and its children
deleteDelete SimBiology object
displayDisplay summary of SimBiology object
findUsagesFind out how a species, parameter, or compartment is used in a model
getGet SimBiology object properties
moveMove SimBiology species or parameter object to new parent
renameRename SimBiology model component and update expressions
setSet SimBiology object properties

Examples

collapse all

This example shows you how to construct a simple model with two species (A and B) and a reaction. The reaction is A -> B, which follows mass action kinetics with the forward rate parameter k. Hence the rate of change is dA/dt=-k*A.

Create a SimBiology model named simpleModel.

m1 = sbiomodel('simpleModel');

Add a reaction that involves two species A and B, where A is converted to B.

r1 = addreaction(m1,'A -> B');

SimBiology automatically add species A and B to the model.

m1.species
ans = 
   SimBiology Species Array

   Index:    Compartment:    Name:    Value:    Units:
   1         unnamed         A        0               
   2         unnamed         B        0               

Set the initial amount of the first species (A) to 10.

m1.species(1).InitialAmount = 10;

Define the kinetic law of the reaction to follow mass action kinetics. You can achieve this by adding a kinetic law object to the reaction r1.

kineticLaw = addkineticlaw(r1,'MassAction');

Add a rate constant parameter to the mass action kinetic law. You must set the ParameterVariableNames property of the kinetic law object to the name of the parameter 'k' so that the reaction rate can be determined.

p1 = addparameter(kineticLaw,'k',0.5);
kineticLaw.ParameterVariableNames = 'k';

Simulate the model.

sd = sbiosimulate(m1);

Plot the simulation results.

sbioplot(sd);

Figure contains an axes object. The axes object with title States versus Time, xlabel Time, ylabel States contains 2 objects of type line. These objects represent A, B.

This example illustrates how to use the BoundaryCondition property of a species so that the species amount is not modified by the reaction it participates in, but by a user-defined dose object.

Load a sample project.

sbioloadproject radiodecay.sbproj

A SimBiology model named m1 is loaded to the MATLAB Workspace. The model is a simple radioactive decay model in which two species (x and z) are modified by the following reaction.k

m1.Reactions
ans = 
   SimBiology Reaction Array

   Index:    Reaction:
   1         x -> z   

Simulate the model and view results before adding any boundary conditions.

[t,x,names] = sbiosimulate(m1);
plot(t,x);
legend(names)
xlabel('Time');
ylabel('Amount');

Figure contains an axes object. The axes object with xlabel Time, ylabel Amount contains 2 objects of type line. These objects represent x, z.

Add a RepeatDose object to the model and specify the species to be dosed, dose amount, dose schedule, and units.

d1 = adddose(m1,'d1','repeat');
set(d1,'TargetName','z','Amount',100.0,'Interval',1.0,'RepeatCount',8);
set(d1,'TimeUnits','second','AmountUnits','molecule');

Set the BoundaryCondition of species z to be true so that the species will be modified by the dose object d1, but not by the reaction.

set(m1.species(2),'BoundaryCondition',true);

Simulate the model by applying the dose object.

[t2,x2,names] = sbiosimulate(m1,d1);

Plot the results. Notice that the amount of species z is now modified by the repeated dose object, but not by the reaction.

[t2,x2,names] = sbiosimulate(m1,d1);
plot(t2,x2);
legend(names);
xlabel('Time');
ylabel('Amount');

Figure contains an axes object. The axes object with xlabel Time, ylabel Amount contains 2 objects of type line. These objects represent x, z.

References

[1] Pratt, William B, Mario D Galigniana, Yoshihiro Morishima, and Patrick J M Murphy. “Role of Molecular Chaperones in Steroid Receptor Action.” Edited by Iain J. McEwan. Essays in Biochemistry 40 (June 1, 2004): 41–58.

Version History

Introduced in R2006b

expand all