Hemangioblast Determination

No preview image

1 collaborator

Default-person Jerry Rhee (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 4.1 • Viewed 151 times • Downloaded 18 times • Run 0 times
Download the 'Hemangioblast Determination' 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?

This model seeks to formalize the coordination of interactions that is required to generate blood and endothelial distribution patterns in the yolk sac at mouse headfold stages.

Specifically, it focuses on the requirements necessary to understand the stochastic interactions that influence hemangioblast determination, as marked by balanced nuclear HoxB4 and GATA1 levels, and its positioning.

HOW IT WORKS

Rules are modified from Ants and Slime.

All cells move based on their ability to sense a nutrition/chemical/food/ligand gradient at a specific distance from its current patch across a radial arc. The agents will then respond by moving towards the higher gradient in a probabilistic manner but are also constrained in the distance and angle of movement.

Some patches secrete chemicals. These patches are distributed across different regions; the blood islands (BI) are located at the top, oasis is the middle migration zone and the nook, an area marked by the arc of large triangle forms, which represents the contact region between the Ventral Cuboidal Mesothelium (VCM) and transitional visceral endoderm (AX) that sits close to the targets (epiblast/allantoic core domain (ACD)) at the bottom.

The targets are the source of new cells that migrate out of the epiblast or ACD. Green endothelial cells that do not have hematopoietic potential come out of the two large targets to generate the primary plexus. Large yellow clouds that represent hemangioblasts making the endothelial/erythroid choice come out of the little target. Each of these large clouds are assigned an initial value between 0 and 50 and adds a random value between 1 and 5 with each tick. When the difference gets greater than "threshold-difference", AND GATA1value > HOXB4value, then the cloud changes its color to red. If HOXB4value > GATA1value, the cloud changes to green, and becomes an angioblast. If it stays within the range of the "threshold-difference", it stays yellow, and thus, a hemangioblast.

HOW TO USE IT

steadyrate controls the rate of endothelial cell generation

HSCrate controls the rate of HSC generation

Divide1/Divide2 controls the type of endothelial cells that come out

All sliders below that aid in placing the chemical sources and their relative strengths.

All sniff and wiggle sliders control chemical sensing and movement response.

Threshold-difference determines at what range the choice between endothelial and erythroid cell is made.

On/Off hideturtle? switch controls whether you see the patch sources.

THINGS TO NOTICE

Where do the cells tend to congregate the most?

Do any two cells move together?

What's the spatial relationship between large yellow, green and red clouds over time?

THINGS TO TRY

Try making different arrangements. What's required to make those configurations? How is this environment produced in such a reproducible manner in the yolk sac? What actually executes these programs?

Chart the difference in specific cells over time.

Set an upper limit for threshold-difference based on cell distributions.

Set a lower limit for threshold-difference.

EXTENDING THE MODEL

Will adding adhesion rules change anything?

How about cell division rules?

RELATED MODELS

The patterns of movement of the endothelial cells and the blood cells and their ability to sense the chemical around them were adopted from the Ants and Slime models in the netlogo library.

CREDITS AND REFERENCES

To refer to this model in academic publications, please use: Wilensky, U. (1997). NetLogo Slime model. http://ccl.northwestern.edu/netlogo/models/Slime. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

In other publications, please use: Copyright 1997 Uri Wilensky. All rights reserved. See http://ccl.northwestern.edu/netlogo/models/Slime for terms of use.

Rhee, Jerry M., Iannaccone, Philip M., Mapping mouse hemangioblast maturation from headfold stages, Developmental Biology (2012),

doi:10.1016/j.ydbio.2012.02.023

Comments and Questions

Click to Run Model

patches-own [ oasis-scent 
  chemical energy origin? origin-scent outer? inner? outer-scent inner-scent value food nimmer repressor salue ]
turtles-own [ HoxB4 GATA1 ]
breed [ hemangioAs hemangioA ]
breed [ hemangioBs hemangioB ]
breed [ hemangioCs hemangioC ]
breed [ lot lots ]
breed [ alot alots ]
breed [ blot blots ]
breed [ clot clots ]
breed [ dlot dlots ]
breed [ elot elots ]
breed [ flot flots ]
breed [ glot glots ]
breed [ hlot hlots ]
breed [ ilot ilots ]
breed [ jlot jlots ]
breed [ klot klots ]
breed [ llot llots ]
breed [ slot slots ]
breed [ tlot tlots ]
breed [ oasis oasi ]
breed [ linings lining ]
breed [ pulps pulp ]
breed [ meta metas]
breed [ endos endo ]
breed [ bloodcs bloodc ]
breed [ BIs BI ]

breed [ niches niche ]

globals [ range ]

breed [ drawer ]

to setup
  clear-all
  setup-BIs
  setup-oasis
  setup-niches
  setup-hemangios
  setup-hemangioCs
end 

to setup-BIs
  ask patches [ if (pycor = 14 ) [ set inner-scent 20 set pcolor cyan ] ]
  ask patches [ if (pycor = 14 ) [ sprout-BIs 1 ] ]
  ask patches [ if (pycor = 13 ) [ set outer-scent 30 set pcolor lime ] ]
  ask patches [ if (pycor = 13 ) [ sprout-BIs 1 ] ]
end 

to setup-oasis
 create-lot 2
  ask lot [ setxy 0 -8 facexy random-xcor 0  set color white 
  set breed oasis  set value Number  ] 
   create-alot 2
   ask alot [ setxy -10 -7 facexy random-xcor 0  set color white 
   set breed oasis  set value Number  ] 
    create-blot 2
    ask blot [ setxy 10 -7 facexy random-xcor 0  set color white 
    set breed oasis  set value Number  ] 
      create-clot 2
      ask clot [ setxy -5 -3 facexy random-xcor 0  set color white 
      set breed oasis  set value Number  ] 
        create-dlot 2
        ask dlot [ setxy 5 -3 facexy random-xcor 0  set color white 
        set breed oasis set value Number  ] 
          create-elot 2
          ask elot [ setxy 0 0 facexy random-xcor 0  set color white 
           set value Number  set breed oasis] 
            create-flot 2
            ask flot [ setxy -10 0 facexy random-xcor 0  set color white 
             set value Number  set breed oasis] 
              create-glot 2
              ask glot [ setxy 10 0 facexy random-xcor 0  set color white 
               set value Number  set breed oasis] 
                 create-hlot 2
                 ask hlot [ setxy -5 3 facexy random-xcor 0  set color white 
                  set value Number  set breed oasis] 
                   create-ilot 2
                   ask ilot [ setxy 5 3 facexy random-xcor 0  set color white 
                    set value Number  set breed oasis] 
                      create-jlot 2
                      ask jlot [ setxy 10 7 facexy random-xcor 0  set color white 
                       set value Number  set breed oasis] 
                         create-klot 2
                         ask klot [ setxy -10 7 facexy random-xcor 0  set color white 
                          set value Number  set breed oasis]
                             create-llot 2
                             ask llot [ setxy 0 7 facexy random-xcor 0  set color white 
                              set value Number  set breed oasis]    
  create-slot 1
    ask slot [   setxy 0 2  facexy random-xcor 0  set color white  
       set value Number set size 1 set breed oasis] 

    create-tlot 1
    ask tlot [   setxy 9 7  facexy random-xcor 0  set color white  
       set value Number set size 1 set breed oasis] 
 
      ask oasis [ ask n-of oasisnumber patches in-radius 3 
    [  sprout-bloodcs 1 
      sprout-endos 1  ] ] 
  ask oasis [ set chemical oasisCONC ]
end 

to setup-niches
     create-drawer 1 [   setxy 0 -14  facexy 0 0   ]
      ask drawer
  [ hatch-niches nichenombre set breed niches ]
  ask niches [ set size 4 facexy 0 0 rt random 360 fd nichestep ]
    ask niches [ if (pycor < -12 ) [ die ] ]
   
  ask drawer [ die ]
    ;; ask patches [  if (pycor > 12 ) [ set outer-scent 20 set pcolor cyan ] ]
end 

to setup-hemangios
  create-hemangioAs 1
    ask hemangioAs [ setxy 1 -14 facexy random-xcor 0  set color white 
      set shape "target" set value Number set size 3] 
create-hemangioBs 1
    ask hemangioBs [   setxy -1 -14  facexy random-xcor 0  set color grey  
      set shape "target" set value Number set size 3] 
 ;; create-hemangioCs 1
  ;;   ask hemangioCs [   setxy 1 -14  facexy random-xcor 0  set color magenta set shape "target" set value Number ]  
end 

to setup-hemangioCs
  create-hemangioCs 1 [ setxy 0 -16 facexy random-xcor 0 set color white
    set shape "target" set value Number set size 1 ]
end 

to go
 ;; ask patches [  if (pycor > 12 ) [ set outer-scent 20 set pcolor cyan ] ]
  
    ask hemangioAs [ set value random steadyrate ]
    ask hemangioAs  [ if ( value < 2 ) and divide1?
         [ hatch 1 set breed endos 
           set shape "cell" set color lime set size 2] 
         ] 
     ;; type 2 division 
    ask hemangioAs [ if ( value < 2 and divide2? )
         [ hatch 1 set breed bloodcs 
           set shape "cloud" set color lime set size 2] 
           ] 
       
    ask hemangioBs [ set value random steadyrate ]
    ask hemangioBs  [ if ( value < 2 ) and divide1?
         [ hatch 1 set breed bloodcs 
           set shape "cloud" set color lime set size 2] 
         ] 
     ;; type 2 division 
    ask hemangioBs [ if ( value < 2 and divide2? )
         [ hatch 1 set breed endos 
           set shape "cell" set color lime set size 2 ] 
           ] 
    
    ask hemangioCs [ set salue random HSCrate ]
    ask hemangioCs  [ if ( salue < 1 ) and divide1?
         [ hatch 1 set breed meta 
           set shape "cloud" set color yellow set size 5 set HoxB4 random-float 50 set GATA1 random-float 50 ] 
         ] 
     ;; type 2 division 
;    ask hemangioCs [ if ( salue < 1 ) and divide2? 
 ;        [ hatch 1 set breed meta 
   ;        set shape "cell" set color yellow set size 4 set GATA1 random-float 50 set HoxB4 random-float 50] 
     ;     ] 

;;  Green endos migration rules:
   if any? endos with [ shape = "cell" ] 
  [ ask endos
  [ if chemical > sniff-threshold                  ;; ignore pheromone unless there's enough here
      [ turn-toward-chemical ]
    rt random-float wiggle-angle - random-float wiggle-angle + wiggle-bias
    fd 0.1
    set chemical chemical + cellCONC ]                    ;; drop chemical onto patch
  diffuse chemical 1                               ;; diffuse chemical to neighboring patches
  
  ask patches
  [ set chemical chemical * nicheDIFF                     ;; evaporate chemical
    set pcolor scale-color green chemical 0.1 20 ]]  ;; update display of chemical concentration
   if any? endos with [ shape = "cell" ] [ ask endos [ if outer-scent = 30 [ hatch-linings 1 set color lime die ]]]
   ask linings [set shape "cell"]
  
;;  Red bloodcs migration rules:
  
  if any? bloodcs with [ shape = "cloud" ] [ ask bloodcs 
  [ if chemical > sniff-threshold                  ;; ignore pheromone unless there's enough here
      [ turn-toward-chemical ]
    rt random-float wiggle-angle - random-float wiggle-angle + wiggle-bias
    fd 0.1
    set chemical chemical + cellCONC ]                    ;; drop chemical onto patch
  diffuse chemical 1                               ;; diffuse chemical to neighboring patches
  
    ask bloodcs [ if ycor > 12 
         [ set color red ] 
           ] 
    
  ask patches
  [ set chemical chemical * nicheDIFF                    ;; evaporate chemical
    set pcolor scale-color blue chemical 0.1 10 ]]  ;; update display of chemical concentration
   if any? bloodcs with [ color = magenta ] [ ask bloodcs [ if inner-scent = 20 [ hatch-pulps 1 set color magenta die ]]]
   ask pulps [set shape "cloud" set size 2]
   
   ;;  HSC migration rules:
  
  if any? meta with [ color = yellow ] [ ask meta 
  [ if chemical > sniff-threshold                  ;; ignore pheromone unless there's enough here
      [ turn-toward-chemical ]]
   ask meta [
      rt random-float wiggle-angle - random-float wiggle-angle + wiggle-bias
    fd 0.1
    set chemical chemical + nicheCONC                     ;; drop chemical onto patch
    set GATA1 GATA1 + random-float 5
    set HoxB4 HoxB4 + random-float 5 ] ]
  
   if any? meta with [ color = yellow ]
  [ ask meta [
     if ( GATA1 - HoxB4 > 0 ) and ( abs GATA1 - HoxB4 > threshold-difference ) 
     [ set color 15 set breed bloodcs set shape "cloud" set size 5 ] ] ]
  
     if any? meta with [ color = yellow ]
  [ ask meta [
     if ( HoxB4 - GATA1 > 0 ) and ( abs HoxB4 - GATA1 > threshold-difference ) 
     [ set color 72 set breed endos set shape "cell" set size 5 ] ] ]
  ;; ****
       
    
  diffuse chemical 1                               ;; diffuse chemical to neighboring patches
  
  ask patches
  [ set chemical chemical * nicheDIFF                    ;; evaporate chemical
    set pcolor scale-color blue chemical 0.1 10 ]  ;; update display of chemical concentration
   if any? meta with [ color = magenta ] [ ask meta [ if inner-scent = 20 [ hatch-pulps 1 set color magenta die ]]]
   ask pulps [set shape "cloud" set size 2]
  
  tick
  
  
 ask niches
    [ set chemical chemical + ( nichebias * nicheCONC ) ]                    ;; drop chemical onto patch
  diffuse chemical nicheDIFF                               ;; diffuse chemical to neighboring patches
  ask patches
  [ set chemical chemical * 0.9                    ;; evaporate chemical
    set pcolor scale-color blue chemical 0.1 10 ] 
 ask niches [ if hideturtle? [ ht ]]
 
 ask oasis
   [ set chemical chemical + ( 20 * nichebias * nicheCONC ) ]                    ;; drop chemical onto patch
  diffuse chemical nicheDIFF                               ;; diffuse chemical to neighboring patches
  ask patches
  [ set chemical chemical * 0.9                    ;; evaporate chemical
    set pcolor scale-color blue chemical 0.1 10 ] 
 ask oasis [ if hideturtle? [ ht ]]
 
 
 ask BIs [ if hideturtle? [ ht ]]
   ask BIs [ set chemical chemical + ( BI-CONC * nichebias * nicheCONC ) ]                    ;; drop chemical onto patch
  diffuse chemical nicheDIFF                               ;; diffuse chemical to neighboring patches
  ask patches
  [ set chemical chemical * 0.9                    ;; evaporate chemical
    set pcolor scale-color blue chemical 0.1 10 ] 
end 

to turn-toward-chemical  ;; turtle procedure
  ;; examine the patch ahead of you and two nearby patches;
  ;; turn in the direction of greatest chemical
    let ahead 0
  let myright 0
  let myleft 0
  let sniffed-patch patch-ahead 2
  if sniffed-patch != nobody [
    set ahead [chemical] of sniffed-patch
  ]
  set sniffed-patch patch-right-and-ahead sniff-angle 2
  if sniffed-patch != nobody [
    set myright [chemical] of sniffed-patch
  ]
  set sniffed-patch patch-left-and-ahead sniff-angle 2
  if sniffed-patch != nobody [
    set myleft [chemical] of sniffed-patch
  ]
  ifelse (myright >= ahead) and (myright >= myleft)
  [ rt sniff-angle ]
  [ if myleft >= ahead
    [ lt sniff-angle ] ]
end 

 ;;    ask bloodc 543 [ print hoxb4 ] to get hoxb4/gata1 levels

There is only one version of this model, created about 12 years ago by Jerry Rhee.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.