cadherins homo/heterotypic binding

cadherins homo/heterotypic binding 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 everyone
Model was written in NetLogo 3D 6.2.2 • Viewed 48 times • Downloaded 5 times • Run 0 times
Download the 'cadherins homo/heterotypic binding' 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?

(a general understanding of what the model is trying to show or explain)

## HOW IT WORKS

(what rules the agents use to create the overall behavior of the model)

## HOW TO USE IT

(how to use the model, including a description of each of the items in the Interface tab)

## THINGS TO NOTICE

(suggested things for the user to notice while running the model)

## THINGS TO TRY

(suggested things for the user to try to do (move sliders, switches, etc.) with the model)

## EXTENDING THE MODEL

(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)

## NETLOGO FEATURES

(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)

## RELATED MODELS

(models in the NetLogo Models Library and elsewhere which are of related interest)

## CREDITS AND REFERENCES

(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Comments and Questions

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

Click to Run Model

globals [x0 y0 z0 heterotypic]
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  set z0 0
  reset-ticks
end 

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

to set-binding
  set heterotypic (homo/hetero + 1) / 2
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 noisy-move
  ask turtles [if random-float 1 < noise [face one-of neighbors fd random-float 1 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]]]
  ]
end 

to adhere
  ask turtles [face patch x0 y0 z0 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
    set z0 mean [zcor] 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 one-of patches 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 is only one version of this model, created over 1 year ago by William Driscoll.

Attached files

File Type Description Last updated
cadherins homo/heterotypic binding.png preview Preview for 'cadherins homo/heterotypic binding' over 1 year ago, by William Driscoll Download

This model does not have any ancestors.

This model does not have any descendants.