######################## Pulse Generator ######################## =========================== Introduction =========================== The **pulse generator** example consists of the synthetic bacterial colony designed by Ron Weiss' group in [Basu2005]_. This model implements the propagation of a wave of gene expression in a bacterial colony. The complete model can be downloaded from this `link `_. The **pulse generator** consists of two different bacterial strains, *sender cells* and *pulsing cells*: * **Sender cells** contain the gene *luxI* from *Vibrio fischeri*. This gene codifies the enzyme LuxI responsible for the synthesis of the molecular signal *3OC6-HSL* (AHL). The *luxI gene* is expressed constitutively under the regulation of *the promoter PLtetO1* from the tetracycline resistance transposon. .. figure:: senderCell.png :scale: 80 :alt: alternate text :align: center * **Pulsing cells** contain the *luxR gene* from *Vibrio fischeri* that codifies the *3OC6-HSL* receptor protein LuxR. This gene is under the constitutive expression of the promoter *PluxL* from *Vibrio fischeri*. It also contains the *gene cI* from *lambda phage* codifying the repressor CI under the regulation of the promoter *PluxR* that is activated upon binding of the transcription factor *LuxR_3OC6_2*. Finally, this bacterial strain carries the *gene GFP* that codifies the green fluorescent protein under the regulation of the synthetic promoter *PluxPR* combining the *Plux* promoter (activated by the transcription factor *LuxR_3OC6_2*) and the *PR* promoter from *lambda phage* (repressed by the transcription factor CI). .. figure:: pulsingCell.png :scale: 80 :alt: alternate text :align: center The bacterial strains above are distributed in a specific spatial distribution. Sender cells are located at one end of the bacterial colony and the rest of the system is filled with pulsing cells as the figure below shows: .. figure:: syntheticBacterialColony.png :scale: 80 :alt: alternate text :align: center ========================= The Model ========================= Our model of the **Pulse Generator** uses a module library describing the regulation of the different promoters used in the two bacterial strains. This library is presented below:: # Author: Francisco J. Romero-Campero # # Date: February 2010 # # Description: This module library describes the regulation of the gene promoters used in the # # pulse generator circuit developed by Ron Weiss group # libraryOfModules promoterLibrary # This module represents the constitutive expression of a gene X under the regulation # # of the promoter PLtetO1 from the tetracycline resistance transposon # PLtetO1({X},{c_1},{l}) = { # This module represents a promoter # type: promoter # DNA sequence corresponding to biobrick BBa_R0040 from the Registry of Standard Biological Parts # sequence: TCCCTATCAGTGATAGAGATTGACATCCCTATCAGTGATAGAGATACTGAGCAC rules: r1: [ PLtetO1_geneX ]_l -c_1-> [ PLtetO1_geneX + rnaX_RNAP ]_l } # This module represents the constitutive expression of a gene X under the regulation # # of the promoter PluxL from Vibrio fischeri # PluxL({X},{c_1},{l}) = { # This module represents a promoter # type: promoter # DNA sequence corresponding to biobrick BBa_R0063 from the Registry of Standard Biological Parts # sequence: ACCTGTACGATCCTACAGGTGCTTATGTTAAGTAATTGTATTCCCAGCGATACAATAGTGTGACAAAAATCCAAT TTATTAGAATCAAATGTCAATCCATTACCGTTTTAATGATATATAACACGCAAAACTTGCGACAAACAATAGGTA rules: r1: [ PluxL_geneX ]_l -c_1-> [ PluxL_geneX + rnaX_RNAP ]_l } # This module represents the positively regulated expression of a gene X under the control # # of the promoter PluxR which is activated by LuxR_2 # PluxR({X},{c_1, c_2, c_3},{l}) = { # This module represents a promoter # type: promoter # DNA sequence corresponding to biobrick BBa_R0062 from the Registry of Standard Biological Parts # sequence: ACCTGTAGGATCGTACAGGTTTACGCAAGAAAATGGTTTGTTATAGTCGAATAAA rules: r1: [ LuxR2 + PluxR_geneX ]_l -c_1-> [ PluxR_LuxR2_geneX ]_l r2: [ PluxR_LuxR2_geneX ]_l -c_2-> [ LuxR2 + PluxR_geneX ]_l r3: [ PluxR_LuxR2_geneX ]_l -c_3-> [ PluxR_LuxR2_geneX + rnaX_RNAP ]_l } # This module represents the positivele/negatively regulated expression of a gene X under the control # # of the synthetic promoter PluxPR that combines the activation by LuxR2 with the repression by CI2 # PluxPR({X},{c_1,c_2,c_3,c_4,c_5,c_6,c_7,c_8,c_9},{l}) = { # This module represents a promoter # type: promoter # DNA sequence corresponding to biobrick BBa_I1051 from the Registry of Standard Biological Parts # sequence: ACCTGTAGGATCGTACAGGTTTACGCAAGAAAATGGTTTGTTATAGTCGAATACCTCTGGCGGTGATA rules: r1: [ LuxR2 + PluxPR_geneX ]_l -c_1-> [ PluxPR_LuxR2_geneX ]_l r2: [ PluxPR_LuxR2_geneX ]_l -c_2-> [ LuxR2 + PluxPR_geneX ]_l r3: [ LuxR2 + PluxPR_CI2_geneX ]_l -c_3-> [ PluxPR_LuxR2_CI2_geneX ]_l r4: [ PluxPR_LuxR2_CI2_geneX ]_l -c_4-> [ LuxR2 + PluxPR_CI2_geneX ]_l r5: [ CI2 + PluxPR_geneX ]_l -c_5-> [ PluxPR_CI2_geneX ]_l r6: [ PluxPR_CI2_geneX ]_l -c_6-> [ CI2 + PluxPR_geneX ]_l r7: [ CI2 + PluxPR_LuxR2_geneX ]_l -c_7-> [ PluxPR_LuxR2_CI2_geneX ]_l r8: [ PluxPR_LuxR2_CI2_geneX ]_l -c_8-> [ CI2 + PluxPR_LuxR2_geneX ]_l r9: [ PluxPR_LuxR2_geneX ]_l -c_9-> [ PluxPR_LuxR2_geneX + rnaX_RNAP ]_l } endLibraryOfModules An additional module library describing several post-transcriptional regulatory mechanisms is also used in our model:: # Author: Francisco J. Romero-Campero # # Date: February 2010 # # Description: This module library describes some general post-transcriptional regulatory mechanisms # libraryOfModules postTrasncriptionalRegulation # This module represents transcription termination, translation, rna and protein degradation # PostTransc({X},{c_1,c_2,c_3,c_4,c_5},{l}) = { rules: r1: [ rnaX_RNAP ]_l -c_1-> [ rnaX ]_l r2: [ rnaX ]_l -c_2-> [ rnaX + proteinX_Rib ]_l r3: [ rnaX ]_l -c_3-> [ ]_l r4: [ proteinX_Rib ]_l -c_4-> [ proteinX ]_l r5: [ proteinX ]_l -c_5-> [ ]_l } # This module represents the dimerisation of a protein X # Dim({X,Y},{c_1,c_2},{l}) = { rules: r1: [ proteinX + proteinX ]_l -c_1-> [ Y ]_l r2: [ Y ]_l -c_2-> [ ]_l } # This module represents the dimerisation of a protein X in the presence of a signal S # DimSig({X,S,Y},{c_1,c_2,c_3,c_4},{l}) = { rules: r1: [ proteinX + signalS ]_l -c_1-> [ proteinX_S ]_l r2: [ proteinX_S ]_l -c_2-> [ ]_l r3: [ proteinX_S + proteinX_S ]_l -c_3-> [ Y ]_l r4: [ Y ]_l -c_4-> [ ]_l } # This module represents the free diffusion of a singal X in a rectangular latice # Diffusion({X},{c_1},{l}) = { rules: r1: [ signalX ]_l =(1,0)=[ ] -c_1-> [ ]_l =(1,0)=[ signalX ] r2: [ signalX ]_l =(-1,0)=[ ] -c_1-> [ ]_l =(-1,0)=[ signalX ] r3: [ signalX ]_l =(0,1)=[ ] -c_1-> [ ]_l =(0,1)=[ signalX ] r4: [ signalX ]_l =(0,-1)=[ ] -c_1-> [ ]_l =(0,-1)=[ signalX ] } endLibraryOfModules The bacterial strain, **senderCell**, producing the signal 3OC6-HSL (AHL) is modelled using the SP-system model below:: # Author: Francisco J. Romero-Campero # # Date: February 2010 # # Description: This SP-system models the sender cell strain developed by Ron Weiss group # SPsystem senderCell # Molecular species present in the system # alphabet PLtetO1_geneLuxI proteinLuxI proteinLuxI_Rib rnaLuxI rnaLuxI_RNAP signal3OC6 endAlphabet # Compartments of the system # compartments bacterium endCompartments # Initial number of molecules in the compartments # initialMultisets initialMultiset bacterium PLtetO1_geneLuxI 1 endInitialMultiset endInitialMultisets # Molecular interactions produced by the synthetic circuit # ruleSets ruleSet bacterium # Transcriptional fusion between the PLtetO1 and geneLuxI gene # PLtetO1({LuxI},{0.1},{bacterium}) from promoterLibrary.plb # Post-transcriptional processes associated with LuxI # PostTransc({LuxI},{3.36,0.0667,0.004,3.78,0.0667},{bacterium}) from postTranscriptionalLibrary.plb # Signal synthesis # r1: [ proteinLuxI ]_bacterium -c1-> [ proteinLuxI + signal3OC12 ]_bacterium c1 = 5 # Signal diffusion # Diffusion({3OC6},{2},{bacterium}) from postTranscriptionalLibrary.plb endRuleSet endRuleSets endSPsystem The bacterial strain, **pulsingCell**, producing a pulse of GFP protein as a response to the signal 3OC6-HSL (AHL) is modelled using the SP-system model below:: # Author: Francisco J. Romero-Campero # # Date: February 2010 # # Description: This SP-system models the pulsing cell strain developed by Ron Weiss' group # SPsystem pulsingCell # Molecular species present in the system # alphabet CI2 LuxR2 PluxL_geneLuxR PluxPR_CI2_geneGFP PluxPR_LuxR2_CI2_geneGFP PluxPR_LuxR2_geneGFP PluxPR_geneGFP PluxR_LuxR2_geneCI PluxR_geneCI proteinCI proteinCI_Rib proteinGFP proteinGFP_Rib proteinLuxR proteinLuxR_3OC6 proteinLuxR_Rib rnaCI rnaCI_RNAP rnaGFP rnaGFP_RNAP rnaLuxR rnaLuxR_RNAP signal3OC6 endAlphabet # Compartments in the system # compartments bacterium endCompartments # Initial number of molecules present in the system # initialMultisets initialMultiset bacterium PluxL_geneLuxR 1 PluxR_geneCI 1 PluxPR_geneGFP 1 endInitialMultiset endInitialMultisets # Molecular interactions produced by the synthetic gene circuit # ruleSets ruleSet bacterium # Transcriptional fusion between the PluxL and the LuxR gene # PluxL({LuxR},{0.1},{bacterium}) from promoterLibrary.plb # Post-transcriptional processes associated with LuxR # PostTransc({LuxR},{3.2,0.3,0.04,3.6,0.075},{bacterium}) from postTranscriptionalLibrary.plb # Dimerisation of LuxR in the presence of 3OC6 # DimSig({LuxR,3OC6,LuxR2},{1,0.0154,1,0.0154},{bacterium}) from postTranscriptionalLibrary.plb # Transcriptional fusion between the PluxR and the CI gene # PluxR({CI},{1,1,4},{bacterium}) from promoterLibrary.plb # Post-transcriptional processes associated with CI # PostTransc({CI},{3.2,0.02,0.04,3.6,0.1},{bacterium}) from postTranscriptionalLibrary.plb # Dimerisation of CI # Dim({CI,CI2},{1,0.00554},{bacterium}) from postTranscriptionalLibrary.plb # Transcriptional fusion between the PluxPR and the GFP gene # PluxPR({GFP},{1,1,1,1,5,0.0000001,5,0.0000001,4},{bacterium}) from promoterLibrary.plb # Post-transcriptional processes associated with GFP # PostTransc({GFP},{3.36,0.667,0.04,3.78,0.0667},{bacterium}) from postTranscriptionalLibrary.plb # Diffusion of signal 3OC6 # Diffusion({3OC6},{0.1},{bacterium}) from postTranscriptionalLibrary.plb endRuleSet endRuleSets endSPsystem For technical reasons, our model using an extra cell to represent the boundary of the system:: SPsystem Boundary alphabet signal3OC6 endAlphabet compartments cell endCompartments initialMultisets initialMultiset cell endInitialMultiset endInitialMultisets ruleSets ruleSet cell r1: [ signal3OC6 ]_cell -c1-> [ ]_cell c1=1 endRuleSet endRuleSets endSPsystem The **geometry** of a bacterial colony of the cell type or bacterial strain represented in the previous model is captured using the following rectangular lattice:: # Author: Francisco J. Romero-Campero # # Date: February 2010 # # Description: A rectangular lattice of size 11x31 # lattice rectangularLattice # Dimension of the lattice and lower/upper bounds # dimension 2 xmin 0 xmax 10 ymin 0 ymax 30 # Parameters used in the definition of the rest of components defining the lattice # parameters parameter b1 value = 2 parameter b2 value = 1 endParameters # Basis vector determining the points in the lattice # # in this case we have a rectangular lattice # basis (b1,0) (0,b2) endBasis # Vertices used to determine the shape of the outmost membrane # # of the SP systems located on each point of the lattice # vertices (b1/2,b2/2) (-b1/2,b2/2) (-b1/2,-b2/2) (b1/2,-b2/2) endVertices # Vectors pointing at the neighbours of each point of the lattice # neighbours (1,0) (1,1) (0,1) (-1,1) (-1,0) (-1,-1) (0,-1) (1,-1) endNeighbours endLattice Finally, the model of the synthetical **bacterial colony** is obtained by distributing cellular clones of the *sender cell* strain at one end of the lattice and cellular clones of the *pulsing cell* strain over the rest of the points. This is modelled using the **LPP-system** below:: # Author: Francisco J. Romero-Campero # # Date: February 2010 # # Description: This LPP-system models the spatial distribution of the different # # cellular strains in the synthetic bacterial colony developed by # # Ron Weiss' group exhibiting pulse propagation# LPPsystem pulsePropagation # List of the different bacterial strains used in the system # SPsystems SPsystem senderCell from senderCell.sps SPsystem pulsingCell from pulsingCell.sps SPsystem boundaryCell from boundaryCell.sps endSPsystems # The geometry of the system is determine using a regular finite point lattice # lattice rectangular from rectangular.lat # Spatial distribution of the cells over the lattice # spatialDistribution # The boundary of the system is filled with boundary cells # positions for boundaryCell parameters parameter i = 0:1:30 parameter j = 0:10:10 endParameters coordinates x = i y = j endCoordinates endPositions positions for boundaryCell parameters parameter i = 0:30:30 parameter j = 1:1:9 endParameters coordinates x = i y = j endCoordinates endPositions # Sender cells are distributed at one end of the lattice # positions for senderCell parameters parameter i = 1:1:5 parameter j = 1:1:9 endParameters coordinates x=i y=j endCoordinates endPositions # Pulsing cells are distributed over the rest of the lattice # positions for pulsingCell parameters parameter i=6:1:29 parameter j=1:1:9 endParameters coordinates x=i y=j endCoordinates endPositions endSpatialDistribution endLPPsystem ======================== Simulations ======================== Stochastic simulations of our model of the pulse generator can be run using the Infobiotics workbench. For this, please load using the provided interface the simulation parameter file, pulsePropagation.params, provided with the files comprising this example. Be patient, these simulations could take around five minutes. Below we show a picture of the spatial propagation of a pulse of GFP over the bacterial colony. You can see our video `here `_ or `here `_. .. figure:: pulse_generator_picture.png :scale: 100 :alt: alternate text :align: center ========================= Model Checking ========================= We observe that the further away the pulsing cells are from the sender cells the less likely they are of producing a pulse. We analyse this property by model checking the temporal formula below for a single pulsing cell recieving the signal at different rates:: R = ? [ I = T ] T = 0:5:200 .. figure:: pulseGeneratorModelCheckingResults.png :scale: 80 :alt: alternate text :align: center