Effect of quorum sensing inhibitors on P. aeruginosa biofilms

Effect of quorum sensing inhibitors on P. aeruginosa biofilms preview image

1 collaborator

Default-person Sarah Buddle (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.2.0 • Viewed 139 times • Downloaded 14 times • Run 0 times
Download the 'Effect of quorum sensing inhibitors on P. aeruginosa biofilms' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

Models the impact of different types of antibiotics and quorum sensing inhibitors/enhancers on dispersal of Pseudomonas aeruginosa biofilms.

The basic model of biofilm dispersal and quorum sensing is based on the partial differential equation model by Emerenini et al (2015).

To run the model, download it and use the NetLogo application - it won't run in NetLogo web.

HOW TO USE IT

Variables controlled in interface:

patch-length: length of the grid square division-mass: mass at which cell divides cell-density: density of bacterial cell growth-rate: maximum specific growth rate * growth-k: half saturation concentration (growth) * yield: yield coefficient - links nutrient consumption with increase in bacterial mass * lysis-rate: death rate of bacteria nutrient-dose: initial concentration of growth-limiting nutrient ahl-synthesis-rate: amount of ahl produced per bacterial cell if under quorum sensing induction threshold ahl-degradation-rate: proportion of AHL that degrades small-molecule-diffusion-rate: proportion of concentration gradient between two patches that diffuses between them per hour diffusion-decrease-biofilm: diffusion rate in biofilm = diffusion rate in water x diffusion-decrease-biofilm antibiotic-dose: concentration of antibiotic at the top of the view antibiotic-death-rate:: death rate in Michealis-Menten death of bacteria from antibiotic half-max-conc: Michaelis-Menten constant for the above aiia-reaction-rate: Michealis-Menten Vmax for AiiA, an enzymes that degrades AHL aiia-km: Michaelis-Menten Km for AiiA antibiotic-qs-effect: proportional adjustment quorum sensing induction threshold by drugs that effect quorum sensing resistance-mutation-rate: rate at which antibiotic resistance mutations occur speed: swimming speed of detached bacteria tumble-rate: frequency of direction changes by detached bacteria shuffle-step-size: distance moved by bacteria in the biofilm per hour attachment-rate: controls rate at which bacteria re-attach to the biofilm * attachment-k: Km for the above process * dispersal-rate: rate of dispersal from the biofilm when below the AHL threshold ahl-threshold: threshold AHL concentration for induction of quorum sensing behaviour ahl-synthesis-increase: proportional increase in AHL synthesis above the AHL threshold dispersal-increase: proprtional increase in dispersal above the quorum AHL threshold

*See Emerenini et al (2015) for more details on this variable

CREDITS AND REFERENCES

This model is available on the NetLogo Modelling Commons at: http://modelingcommons.org/browse/onemodel/6663#modeltabsbrowseinfo

References

Emerenini BO, Hense BA, Kuttler C, Eberl HJ. A Mathematical Model of Quorum Sensing Induced Biofilm Detachment. PLOS ONE. 2015; 10:7:e0132385, doi: https://doi.org/10.1371/journal.pone.0132385.

Wilensky, U. (1998). NetLogo Heat Diffusion model. http://ccl.northwestern.edu/netlogo/models/HeatDiffusion. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

See the spreadsheet accompanying the online version of the model for sources of parameter values.

Related models

Carvalho G, Balestrino D, Forestier C, Mathias JD. How Do Environment-Dependent Switching Rates between Susceptible and Persister Cells Affect the Dynamics of Biofilms Faced with Antibiotics? Npj Biofilms and Microbiomes. 2018; 4:1:6. doi: https://doi.org/10.1038/s41522-018-0049-2.

Biggs MB, Papin JA. Novel Multiscale Modeling Tool Applied to Pseudomonas Aeruginosa Biofilm Formation. PLOS ONE. 2013; 8:10:e78011. doi: https://doi.org/10.1371/journal.pone.0078011.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

; extensions [ profiler ]
extensions [ vid ]

globals [
  film-output-prefix ; date and time of start of film for use in naming images for film
  total-mass ; total mass of bacteria at that timestep
  new-shuffle-step-size ; shuffle step size in terms of patches
  top-patches ; row of patches at the top of the system
]

patches-own [
  ahl ; AHL concentration
  antibiotic ; antibiotic concentration
  nutrient ; growth-limiting nutrient concentration
  old-ahl old-nutrient ; concentrations on previous tick
  biofilm? ; true if patch is covered by biofilm
  ahl-threshold-adj ; ahl threshold adjusted by local antibiotic concentration
]

breed [bacteria bacterium]

bacteria-own [
  attached? ; true if attached to surface/part of biofilm
  move-count ; counts steps taken for move procedure
  mass ; mass of cell
  resistant? ; true if bacterium is resistant to the antibiotic
]

; setup simulation - see individual procedures for comments on what they do

to setup
  clear-all
  setup-patches
  setup-bacteria
  update-patches
  set-globals
  format-patches
  setup-film
  reset-ticks
  if film? [ vid:start-recorder ]
end 

; run simulation - see individual procedures for comments on what they do

to go
  ; profiler:start
  while [ ticks <= 1441 ] [ ; stops simulation after 60 days
    if ticks > 25 [ disperse ] ; doesn't start dispersal immediately to avoid cases where all bacteria quickly disperse
    move
    grow-bacteria
    divide-bacteria
    die-bacteria
    mutate
    kill-antibiotic
    shuffle-bacteria
    update-patches
    synthesise-ahl
    diffuse-ahl
    degrade-ahl
    diffuse-nutrient
    format-patches
    format-bacteria
    plot-density
    if film? [ vid:record-view ]
    tick
  ]
end 

;;; --- Setup Procedures --- ;;;

; sets patch variables and colour at start of simulation

to setup-patches
  ask patches [
    set pcolor white
    set ahl 0
    set nutrient nutrient-dose
    set old-ahl 0
    set old-nutrient nutrient-dose
    set antibiotic antibiotic-dose
    set biofilm? FALSE
    set ahl-threshold-adj ahl-threshold
  ]
  ask patches with [ pycor < 0 ] [ set pcolor 8 ]
end 

; simulation starts with single bacterium in centre of surface

to setup-bacteria
 create-bacteria 1 [
    setxy (max-pxcor / 2) 0
    set attached? TRUE
    set resistant? FALSE
    set mass (division-mass / 2)
    format-bacteria
  ]
end 

; set global variables

to set-globals
  set new-shuffle-step-size shuffle-step-size / patch-length
  set top-patches patches with [pycor = max-pycor]
end 

; prepares to output film with name of the current date and time

to setup-film
  if film? [
    set film-output-prefix (word "output/film/" date-and-time "_")
  ]
end 

;;; --- Simulation Procedures --- ;;;

; dispersal of bacteria from the biofilm
; disperses with probability dispersal-rate if below (adjusted) ahl threshold. Dispersal rate increases if above threshold

to disperse
  ask bacteria with [attached?] [
    ifelse not resistant? or antibiotic-type != "effect-quorum-sensing" [
      ifelse ahl > ahl-threshold-adj [
        if dispersal-rate * dispersal-increase >= random-float 1 [set attached? FALSE]
        ]
      [
        if dispersal-rate >= random-float 1 [ set attached? FALSE ]
      ]
    ]
    [
      ifelse ahl > ahl-threshold [
        if dispersal-rate * dispersal-increase >= random-float 1 [set attached? FALSE]
        ]
      [
        if dispersal-rate >= random-float 1 [ set attached? FALSE ]
      ]
    ]
  ]
end 


; random movement of detached cells

to move
  set total-mass sum [mass] of bacteria
  ask bacteria with [not attached?] [ ; since movement happens much faster than cell division, assumes either cells will move out of frame of reference or they will attach every hour
    while [not attached?] [
      set heading random 360
      set move-count 0
      while [ move-count < speed * tumble-frequency / patch-length ] ; moves for at given speed, tumbles and changes direction according to tumble-frequency
      [ fd 1
        bounce
        set move-count move-count + 1
      ]
    ]
  ]
end 

; either diffuse out of system, bounce off surface or attach to biofilm

to bounce ; bacteria procedure

  ; die when hit outside walls - simulates diffusion out of system
  if abs pxcor = max-pxcor [ die ]
  if abs pxcor = 0 [ die ]
  if abs pycor = max-pycor [ die ]

  ; bounce off bottom surface
  if pycor = 0 [ set heading ( - heading ) ]

  ; attach or bounce off biofilm
  if  count bacteria-here with [attached?] > 0 [ ; if collide with an attached bacterium

    let mass-tot sum [mass] of bacteria-here - mass / total-mass ; mass of other bacteria at this patch as a fraction of total bacteria
    let probability-attachment (attachment-rate * mass-tot) / (attachment-k + mass-tot) ; MM-like attachment kinetics as in Emerinini 2015 model

    ifelse probability-attachment > random-float 1 ; attaches according to probability-attchment
    [ set attached? TRUE
      set move-count speed
      ]
    [ set heading ( - heading ) ]
    ]
end 

; grow bacteria

to grow-bacteria
  ask bacteria [
    let mass-increase (mass * nutrient * growth-rate) / (growth-k + nutrient) ; Monod growth kinetics as in Emerinini 2015 model
    set mass mass + mass-increase
    set nutrient nutrient - (mass-increase / yield) ; removes consumed nutrient
    if nutrient < 0 [set nutrient 0]
  ]
end 

; bacterial divide when they reach division-mass

to divide-bacteria
  ask bacteria [
    if mass >= division-mass [
      let new-mass (division-mass / 2) + random-normal 0 (division-mass / 20) ; mass of daughter cell is half mass of mother cell with some random variation
      set mass new-mass
      hatch 1 [ ; new cell
        set mass division-mass - new-mass ; mass of both daughters adds up to original cell
        set heading random 360 ; set random direction
        fd shuffle-step-size ; move away in random direction so not directly on top of parent
      ]
    ]
  ]
end 

; bacteria die with probability lysis-rate

to die-bacteria
  ask bacteria [
    if lysis-rate > random-float 1 [die]
  ]
end 

; some bacteria randomly mutate and become antibiotic resistant

to mutate
  if antibiotic-type != "none" [
    ask bacteria [
      if resistance-mutation-rate * 10 ^ -5 > random-float 1 [ set resistant? TRUE ]
    ]
  ]
end 

; if bacteria-killing antibiotic treatment used, bacteria die according to death rate and antibiotic concentration

to kill-antibiotic
  if antibiotic-type = "kill-bacteria" [
    ask bacteria [
      ifelse not resistant? [
        let probability-death (antibiotic-death-rate * antibiotic) / ( half-max-conc + antibiotic)
        if probability-death >= random-float 1 [ die ]
      ]
      [
        let probability-death (antibiotic-death-rate-resistant * antibiotic) / ( half-max-conc + antibiotic)
        if probability-death >= random-float 1 [ die ]
      ]
    ]
  ]
end 

; bacteria move slowly in random directions in the biofilm to reduce overlapping

to shuffle-bacteria
  ask bacteria [
    set heading random 360
    if [pycor] of patch-ahead new-shuffle-step-size >= 0 [ fd new-shuffle-step-size ]

    ; stops movement out of system
    if ycor < 0.5 [ set ycor -0.5 + random-float 1 ]
    if xcor < 0.5 [ set xcor 0.5 + random-float 1 ]
    if xcor > ( max-pxcor - 0.5 ) [ set xcor max-pxcor - 0.5 - random-float 1 ]
    if ycor > ( max-pycor - 0.5 ) [ set ycor max-pycor - 0.5 - random-float 1 ]
  ]
end 

; all living bacteria synthesise ahl according to ahl-synthesis-rate. This increases if over ahl-threshold

to synthesise-ahl
  ask bacteria [
    ifelse not resistant? or antibiotic-type != "effect-intracellular-quorum-sensing" [
      ask patch-here [
        ifelse ahl < ahl-threshold-adj [
          set ahl ahl + ahl-synthesis-rate
        ]
        [ set ahl ahl + (ahl-synthesis-rate * ahl-synthesis-increase) ] ; increase by additional amount if over ahl threshold
      ]
    ]
      [ ask patch-here [
        ifelse ahl < ahl-threshold [
          set ahl ahl + ahl-synthesis-rate
        ]
        [ set ahl ahl + (ahl-synthesis-rate * ahl-synthesis-increase) ] ; increase by additional amount if over ahl threshold
      ]
      ]
  ]
  ask patches [set old-ahl ahl]
end 

; diffusion of ahl - diffuses into neighbouring patches according to diffusion rate. Adapted from the model Heat Diffusion (Wilensky, 1998)

to diffuse-ahl
    ask patches [
      ifelse biofilm? [
        set ahl ( diffusion-rate * diffusion-decrease-biofilm * (sum [old-ahl] of neighbors4) / ( patch-length ^ 2 ) + ((1 - (4 * diffusion-decrease-biofilm * diffusion-rate / patch-length ^ 2))  * old-ahl ))
      ]
      [
        set ahl ( diffusion-rate *  (sum [old-ahl] of neighbors4) / patch-length ^ 2 ) + ((1 - ( 4 * diffusion-rate / patch-length ^ 2)) * old-ahl )
      ]
    if ahl < 0 [ set ahl 0 ]
    set old-ahl ahl
    ]
end 

; as above for nutrient

to diffuse-nutrient
  ; top patches have constant nutrient concentration
  ask top-patches [
    set nutrient nutrient-dose
    set old-nutrient nutrient-dose
  ]
    ask patches [
      ifelse biofilm? [
        set nutrient ( diffusion-rate * diffusion-decrease-biofilm * (sum [old-nutrient] of neighbors4) / patch-length ^ 2 ) + ((1 - ( 4 * diffusion-decrease-biofilm * diffusion-rate / patch-length ^ 2 )) * old-nutrient)
      ]
      [
        set nutrient (diffusion-rate *  (sum [old-nutrient] of neighbors4) / patch-length ^ 2 ) + ((1 - ( 4 * diffusion-rate / patch-length ^ 2 )) * old-nutrient)
      ]
    if nutrient < 0 [ set nutrient 0 ]
    if nutrient > nutrient-dose [ set nutrient nutrient-dose ]
    set old-nutrient nutrient
    ]
end 

; constant rate of degradation of AHL, increased by an ahl-degrading antibiotic

to degrade-ahl
  ask patches [
    set ahl ahl - (ahl * ahl-degradation-rate)
    if antibiotic-type = "degrade-ahl" [
      let degradation (antibiotic * aiia-reaction-rate * ahl) / (aiia-km + ahl)
      set ahl ahl - degradation
    ]
    if ahl < 0 [set ahl 0]
    set old-ahl ahl
  ]
end 

; set patch variables

to update-patches
  ask patches with [ count bacteria-here with [attached?] > 0 ] [ set biofilm? TRUE ]
  ask patches with [ count bacteria-here with [attached?] = 0 ] [ set biofilm? FALSE ]

  ; drugs affecting QS adjust the effective ahl threshold concentration
  if antibiotic-type = "effect-intracellular-quorum-sensing" [
    ask patches [ set ahl-threshold-adj ahl-threshold - ( antibiotic-qs-effect * ahl-threshold * antibiotic / antibiotic-dose ) ]
  ]
end 

; sets antibiotic dose according to antibiotic type. Run by button in interface

to set-antibiotic-dose
  ifelse antibiotic-type = "none" [ set antibiotic-dose 0 ] [ set antibiotic-dose 50 ]
end 

;;; --- Plots etc --- ;;;

to export-bacteria-plot
  export-plot "Bacteria" (word "output/bacteria_plots/" date-and-time ".csv")
end 

to export-biofilm-mass-plot
  export-plot "Biofilm Mass" (word "output/biofilm_mass_plots/" date-and-time ".csv")
end 

to export-ahl-plot
  export-plot "Patches with AHL concentration greater than threshold" (word "output/ahl_plots/" date-and-time ".csv")
end 

;;; --- Visualisation Procedures --- ;;;

to format-patches
  ask patches with [ pycor >= 0 ] [ set pcolor scale-color blue ahl (2 * ahl-threshold) 0 ]; darker blue corresponds to higher AHL concentration
end 

to format-bacteria
  ask bacteria [
    set shape "circle"
    set color green
    if resistant? [ set color 72 ]
    set size (((3 * mass) / (cell-density * pi * 4)) ^ (1 / 3)) / patch-length ; calculate diameter from mass and density
  ]
end 

; Plots bacterial density rather than standard visualisation

to plot-density
  if plot-density? [
    ask bacteria [set color [0 0 0 0]]
    ask patches [set pcolor scale-color red (sum [mass] of bacteria-here) (10000) 0]
  ]
end 

There are 2 versions of this model.

Uploaded by When Description Download
Sarah Buddle about 3 years ago Updated comments Download this version
Sarah Buddle about 3 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Effect of quorum sensing inhibitors on P. aeruginosa biofilms.png preview Preview for 'Effect of quorum sensing inhibitors on P. aeruginosa biofilms' about 3 years ago, by Sarah Buddle Download
Parameter Sources.pdf pdf Sources of parameters used in model about 3 years ago, by Sarah Buddle Download
Parameter Values.pdf pdf Values of parameters used in model about 3 years ago, by Sarah Buddle Download

This model does not have any ancestors.

This model does not have any descendants.