Hemangioblast Determination
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
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.