Table Of Contents

Previous topic

Specification of Cell Types

Next topic

Library of Molecular Interaction Modules

This Page

Single Cell Specification Format

The specification of a single cell type can be provided to Infobiotics in SBML format. Specifically, Infobiotics is compatible with the SBML v2.1 generated by CellDesigner.

Alternatively, the specific modelling language based on SP-systems provided by Infobiotics can be used. The skeleton of the specification of an individual cell type, identified with the name cellTypeName must be done in a text file with extension .sps for Stochastic P-system according to the following format:

SPSystem cellTypeName

    alphabet
    ...
    endAlphabet

    compartments
    ...
    endCompartments

    initialMultisets
    ...
    endInitialMultisets

    ruleSets
    ...
    endRuleSets

endSPSystem

In Ron Weiss’ synthetic pulse propagation, there exist two different bacterial strains or cell types. One of them acts a signal sender and the other one as a pulse generator in response to the signal produced by the first bacterial strain. In what follows we use the specification of the signal sender to introduce the format for the specification of the different components of an SP-system model enumerated above.

Molecular Species

The molecular species described as string-objects are specified within the block molecules ... endMolecules. Each molecular species is identified with a name, moleculeName. For example, in our signal sender the following molecular species are present:

alphabet
     Pconst_geneLuxI
     rnaLuxI_RNAP
     rnaLuxI
     proteinLuxI_Rib
     proteinLuxI
     signal3OC6
 endAlphabet

These objects represent the constitutively expressed gene LuxI, Pconst_geneLuxI, an RNA polymerase producing the RNA associated with LuxI, rnaLuxI_RNAP, the LuxI RNA, rnaLuxI, a ribosome translating the corresponding RNA into the protein LuxI, proteinLuxI_Rib, the LuxI protein, proteinLuxI and the molecula signal 3OC6, signal3OC6.

Compartments

The different compartments and regions relevant in a model of an individual cell type are specified in the block compartments ... endCompartments. Each compartment is identified with a compartmentName and the keyword inside followed by another compartmentName is used to specify the inclusion of the first compartment in the second one. The declaration of a compartment identified with compartmentName1 inside a compartment identified with compartmentName2 is specified as follows:

compartmentName1 inside compartmentName2

If a compartment is not contained in any other compartment of the system the key word inside and the second compartment name are omitted.

Our example includes two relevant regions for a bacterium. Specifically, the media surronding an individual cell and the bacterium itself. Note how the compartment bacterium is declared as contained in the compartment media:

compartments
    media
    bacterium inside media
endCompartments

Initial Multiplicities

The initial number of molecules present at the beginning of the simulation in the different compartments must be specified using the block initialMultisets ... endInitialMultisets. For each compartment identified with compartmentName a different block initialMultiset compartmentName ... endInitialMultiset must be declared inside the block initiaLMultisets. This inner block contains a list of species names follow by an integer representing the initial number of molecules:

initialMultisets
   initialMultiset compartmentName
      speciesName   numberOfMolecules
      ...
   endInitialMultiset
   ...
endInitialMultisets

If a compartment is initiallly empty the block declaring its initial number of molecules can be omitted. For example, our signal sender consists of two compartments, the media and the bacterium. The media is initially empty whereas the bacterium has a molecule Pcons_geneLuxI represeting a specific gene:

initialMultisets
    initialMultiset bacterium
        Pconst_geneLuxI 1
    endInitialMultiset
 endInitialMultisets

Molecular Interactions

The molecular interactions in a cell type are represented using rules specified within the block ruleSets ... endRuleSets. For each compartment identified with compName a different block ruleSet compName ... endRuleSet enumerating the molecular interactions associated with the compartment must be inserted in the previous block:

ruleSets
   ruleSet compName
      ...
   endRuleSet
   ...
endRuleSets

The sender cell in our example needs the specification of the molecualar interactions involving two different compartments, the media and the bacterium:

ruleSets
   ruleSet media
      ...
   endRuleSet
   ruleSet bacterium
      ...
   endRuleSet
endRuleSets

The molecular interactions taking place inside a compartment (first rule type below) or moving molecules outside a compartment (second rule type below) and inside a compartment (third rule type below) are specified using one of the rule types bellow. These must be specified within the corresponding block ruleSet compName ... endRuleSet:

ruleName:  [ reactants ]_compName -const-> [ products ]_compName       const = value
ruleName:  [ reactants ]_compName -const-> products [ ]_compName       const = value
ruleName:  reactants [ ]_compName -const-> [ products ]_compName       const = value

In the above declaration ruleName is an identifier of the rule, reactants and products are either a single moleculeName or two separated by a plus symbol, moleculeName + moleculeName; the compartment involved in the molecular interaction is identified with compName; const is used to represent the stochastic constant specifically associated with the rule and its value is specified in const = value.

In the sender cell of our running example there are two different compartments, the media and the bacterium. In the media the only molecular interactions are signal diffusion out of the media, signal diffusion inside the bacterium and signal degradation. These are represented using the rules r1, r2 and r3 specified in the correponding ruleSet block:

ruleSet media
     r1:  [ signal3OC6 ]_media -c1-> signal3OC6 [ ]_media            c1 = 1
     r2:  signal3OC6 [ ]_bacterium -c2-> [ signal3OC6 ]_bacterium    c2 = 2
     r3:  [ signal3OC6 ]_bacterium -c3-> [ ]_bacterium               c3 = 1
endRuleSet

The molecular interactions associated with a compartment can be specified in a modular way by reusing sets of rules, modules, containing variables that can be instantiated with specific molecular species names, stochastic constant values and compartment names. A module is specified by stating its identifier moduleName and the molecular names, stochastic constant values and compartment names for the corresponding instantiations (objectInstantiation, constantInstantiation, compInstantiaton). Finally, the file containing the library of modules where the corresponding module is defined must be specified after the key word from:

moduleName( objectInstantiation, constantInstantiation, compInstantiation ) from moduleLibraryFile

For example, in our sender cell the molecular interactions associated with the bacterium compartment are specified using two modules defined in the module library library.plb. The first one called Pconst contains rules describing the constitutive expression of a gene X, instantiated in this case with LuxI, at a rate c, instantiated with 0.1, inside a compartment l, instantiated with bacterium here. The second one called PostTransc consists of rules representing the processes involved in the post-transcriptional regultion of a protein X, instantiated with LuxI here, taking place a the rates instantiated with the values 3.36,0.0667,0.004,3.78,0.0667 inside a compartment instantiated as bacterium in this case.

Three additional rules are added in order to represent signal synthesis by proteinLuxI, signal diffusion out of the compartment bacterium and signal degradation:

ruleSet bacterium
     Pconst({LuxI},{0.1},{bacterium}) from library.plb
     PostTransc({LuxI},{3.36,0.0667,0.004,3.78,0.0667},{bacterium}) from library.plb
     r1:  [ proteinLuxI ]_bacterium -c1-> [ proteinLuxI + signal3OC6 ]_bacterium             c1 = 1
     r2:  [ signal3OC6 ]_bacterium -c2-> signal3OC6 [ ]_bacterium                            c2 = 2
     r3:  [ signal3OC6 ]_bacterium -c3-> [ ]_bacterium                                       c3 = 2
endRuleSet

The use of modules is extensively described in the next section.