cadherins BIOL 443

cadherins BIOL 443 preview image

1 collaborator

Default-person William Driscoll (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.0.4 • Viewed 110 times • Downloaded 16 times • Run 0 times
Download the 'cadherins BIOL 443' modelDownload this modelEmbed this model

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


Comments and Questions

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

Click to Run Model

globals [x0 y0]
patches-own [binding_0 binding_1 aff_0 aff_1 open? ideal_type]
turtles-own [cell_type my_affinity]

to Setup
  clear-all
  crt 2 [set cell_type 0 set shape "circle"]
  ask one-of turtles [fd 1 set cell_type 1]
  update-cells?
  ask patches [update-patches]
  set x0 0 set y0 0
  reset-ticks
end 

to Go
  mitosis
  migrate
  noisy-move
  space-out
  adhere
  set-center
  tick
end 

to mitosis
  if ticks > division_time [
  ask turtles [if count turtles < (2 ^ n_divisions) [hatch 1 [push-out cell-movement]]]
    reset-ticks]
end 

to migrate
  ask n-of (noise * count patches) patches [set open? 1]
  ask turtles-on patches with [open? = 1] [ifelse cell_type = 0 [uphill aff_0 ask patch-here [update-patches] ask neighbors [update-patches]]
    [uphill aff_1 ask patch-here [update-patches] ask neighbors [update-patches]]] ;[cell-movement]
end 

to noisy-move
  ask turtles [if random-float 1 < noise [face one-of neighbors fd random-float (1 + (100 * noise)) cell-movement]]
end 

to space-out
  ask patches with [count turtles-here > 1.5] [ifelse ideal_type = 0
    [ask turtles-here with [cell_type = 1] [face max-one-of neighbors [aff_1] fd 1 ask patch-here [update-patches] ask neighbors [update-patches]]]
    [ask turtles-here with [cell_type = 0] [face max-one-of neighbors [aff_0] fd 1 ask patch-here [update-patches] ask neighbors [update-patches]]]

    if count turtles-here > 1.5 [ask n-of (count turtles-here - 1) turtles-here [push-out]
  ]]
end 

to adhere
  ask turtles [face patch x0 y0 ifelse any? turtles-on patch-ahead 1 [] [fd 1]]
end 

to set-center
  if ticks > (division_time * 5) [
  set x0 mean [xcor] of turtles
  set y0 mean [ycor] of turtles
  ]
end 

to push-out
  carefully [face one-of neighbors with [open? = 1] fd 1 ask neighbors [update-patches]] [face min-one-of neighbors [count turtles-here] fd 1 ask neighbors [update-patches]]
  if count turtles-here > 1 [
    carefully [ask min-one-of turtles-here [my_affinity] [face patch x0 y0 left 180 fd 1 cell-movement ask neighbors [update-patches]]] []
  ]
end 

to cell-movement  ;; Turtle context only
  ifelse cell_type = 0

    [set my_affinity [binding_0] of patch-here
      let da (max [aff_0] of neighbors)
      ifelse da > my_affinity [uphill aff_0
      carefully [ask turtles-here [move-to max-one-of neighbors [aff_0]]] [face one-of patches jump 1 ask neighbors [update-patches]]
        ask neighbors [update-patches]]
        [face one-of patches fd random-float 1 ask neighbors [update-patches]]
    ask patch-here [if ideal_type = 0 [set open? 0]]
     ]

    [set my_affinity [binding_1] of patch-here
    let da (max [aff_1] of neighbors)
      ifelse da > my_affinity [uphill aff_1
      carefully [ask turtles-here [move-to max-one-of neighbors [aff_1]]] [face one-of patches jump 1 ask neighbors [update-patches]]
        ask neighbors [update-patches]]
        [face one-of patches fd random-float 1 ask neighbors [update-patches]]
    ask patch-here [if ideal_type = 1 [set open? 0]]
      ]
end 

to update-patches  ;; Patch context only
  set binding_0 ((1 - (heterotypic)) * (count neighbors with [any? turtles-here with [cell_type = 0]])) + ((heterotypic) * (count neighbors with [any? turtles-here with [cell_type = 1]]))
  set binding_1 ((1 - (heterotypic)) * (count neighbors with [any? turtles-here with [cell_type = 1]])) + ((heterotypic) * (count neighbors with [any? turtles-here with [cell_type = 0]]))
  set open? 1
  ifelse binding_0 > binding_1
      [set ideal_type 0 if any? turtles-here with [cell_type = 0] [set open? 0]]
      [set ideal_type 1 if any? turtles-here with [cell_type = 1] [set open? 0]]
  set aff_0 (binding_0 * open?)
  set aff_1 (binding_1 * open?)
end 

to update-cells?
  ask turtles [ifelse cell_type = 0 [set color red set color lput (opacity * 250) extract-rgb color]
    [set color blue set color lput (opacity * 250) extract-rgb color]]
  ask turtles [set size cell_size]
end 

There are 4 versions of this model.

Uploaded by When Description Download
William Driscoll about 3 years ago Simplified, fixed a few bugs Download this version
William Driscoll over 3 years ago De-coupled migration from mitosis Download this version
William Driscoll over 3 years ago 3D->2D for browser Download this version
William Driscoll over 3 years ago Initial upload Download this version

Attached files

File Type Description Last updated
cadherins BIOL 443.png preview Preview for 'cadherins BIOL 443' over 3 years ago, by William Driscoll Download

This model does not have any ancestors.

This model does not have any descendants.