mucus_model
No preview image
Model was written in NetLogo 5.3.1
•
Viewed 61 times
•
Downloaded 8 times
•
Run 0 times
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
breed[homo_mutant_males homo_mutant_male] breed[homo_mutant_females homo_mutant_female] breed[hetero_mutant_males hetero_mutant_male] breed[hetero_mutant_females hetero_mutant_female] breed[wild_males wild_male] breed[wild_females wild_female] globals[wild homo_mutant hetero_mutant total near_male_pink near_male_lime near_male_for_female_red distance_male_mutant-female_pink distance_male_mutant-female_lime distance_male_for_female_red bin_ct2 X1] patches-own [mucus];;valiable ;;;;;;;;;;;;;; ;;; setpup ;;; ;;;;;;;;;;;;;; to setup __clear-all-and-reset-ticks setup-patch setup-wild-male setup-wild-female setup-hetero_mutant_males setup-hetero_mutant_females reset-ticks end to setup-patch ask patches [set pcolor 97] end to setup-wild-male create-wild_males 4995 [setxy random-xcor random-ycor] ask wild_males [ set pen-size 2 set color blue set size 0.5 ] end to setup-wild-female create-wild_females 4995 [setxy random-xcor random-ycor] ask wild_females [ set pen-size 2 set color red set size 0.5 ] end to setup-hetero_mutant_females create-hetero_mutant_females 5 [setxy random-xcor random-ycor] ask hetero_mutant_females [ set pen-size 2 set color lime set size 0.5 ] end to setup-hetero_mutant_males create-hetero_mutant_males 5 [setxy random-xcor random-ycor] ask hetero_mutant_males [ set pen-size 2 set color cyan set size 0.5 ] end ;;;;;;;;;;;;;;;;;;;;; ;;; Go procedures ;;; ;;;;;;;;;;;;;;;;;;;;; to go if ticks >= 30 [ stop ] if ticks > 1 [ if count hetero_mutant_females = 0 and count hetero_mutant_males = 0 and count homo_mutant_males = 0 and count homo_mutant_females = 0[ stop ] ] set-mucus repeat 30 [ move-wild-abalone move-mutant-abalone disapper-of-mucus ] fertilization count-offsprings produce-next-generation tick end ;;;;;;;;;;;;;;;;;; ;;; procedures ;;; ;;;;;;;;;;;;;;;;;; to set-mucus ask turtles [ set mucus mucus * 0 set mucus mucus + 1 if (mucus > 0) [set pcolor gray] ] end ;;;abalones move according to the behavioral rules consist with behaviour of H.discus hannai to move-wild-abalone ask-concurrent turtles with [ color = red or color = blue][ set X1 random-exponential 48.76 ;;;set the locomotion distance repeat X1[ ifelse random 1 < 0 [rt random 360][lt random 360] forward 1 set mucus mucus * 0 set mucus mucus + 1 if (mucus > 0) [set pcolor gray] ] ] end to move-mutant-abalone ask-concurrent turtles with [ color = pink or color = sky or color = cyan or color = lime ][ set X1 random-exponential 48.76 ;;;set the locomotion distance repeat X1 [ if not can-move? 1 [ifelse random 1 < 0 [rt 90][lt 90]] let bin_ct 0 ;;;set the mucus following rate repeat 78 [if random-float 1 < 0.8 [set bin_ct bin_ct + 1]] set bin_ct2 bin_ct / 78 ifelse random-float 1 > bin_ct2 [ ifelse any? patches in-cone 1 180 with [pcolor = 97] [face one-of patches in-cone 1 180 with [pcolor = 97] forward 1 set mucus mucus * 0 set mucus mucus + 1 if (mucus > 0)[set pcolor gray]][ ifelse random 1 < 0 [rt random 360][lt random 360] forward 1 set mucus mucus * 0 set mucus mucus + 1 if (mucus > 0) [set pcolor gray]] ] [ ifelse any? patches in-cone 1 180 with [pcolor = gray][ face one-of patches in-cone 1 180 with [ pcolor = gray ] forward 1 set mucus mucus * 0 set mucus mucus + 1 if (mucus > 0) [set pcolor gray] ] [ifelse random 1 < 0 [rt random 360][lt random 360] forward 1 set mucus mucus * 0 set mucus mucus + 1 if (mucus > 0) [set pcolor gray]] ] ] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to disapper-of-mucus ask patches with [pcolor = gray][ set mucus mucus - 1 if (mucus < 0) [set pcolor 97] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to fertilization ask turtles with [color = pink] [ set near_male_pink min-one-of turtles with [color = blue or color = sky or color = cyan or color = brown] [distance myself] let mutant-near_male_positiony_pink [ycor] of near_male_pink let mutant-near_male_positionx_pink [xcor] of near_male_pink let mutant-female_positiony_pink [ycor] of self let mutant-female_positionx_pink [xcor] of self set distance_male_mutant-female_pink (sqrt ( (mutant-female_positionx_pink - mutant-near_male_positionx_pink) ^ 2 + (mutant-female_positiony_pink - mutant-near_male_positiony_pink) ^ 2)) let fertilization_pink (88.31 * exp(-0.32 * (distance_male_mutant-female_pink / 10 ))) if [color] of near_male_pink = sky [hatch fertilization_pink / 10 [setxy random-xcor random-ycor set color yellow]] if [color] of near_male_pink = cyan [hatch (fertilization_pink / 10 * 2) [setxy random-xcor random-ycor set color yellow] hatch (fertilization_pink / 10 * 2) [setxy random-xcor random-ycor set color green]] if [color] of near_male_pink = blue [hatch fertilization_pink / 10 [setxy random-xcor random-ycor set color green]] die ] ask turtles with [color = lime] [ set near_male_lime min-one-of turtles with [color = blue or color = sky or color = cyan] [distance myself] let mutant-near_male_positiony_lime [ycor] of near_male_lime let mutant-near_male_positionx_lime [xcor] of near_male_lime let mutant-female_positiony_lime [ycor] of self let mutant-female_positionx_lime [xcor] of self set distance_male_mutant-female_lime (sqrt ( (mutant-female_positionx_lime - mutant-near_male_positionx_lime) ^ 2 + (mutant-female_positiony_lime - mutant-near_male_positiony_lime) ^ 2)) let fertilization_lime (88.31 * exp(-0.32 * (distance_male_mutant-female_lime / 10 ))) if [color] of near_male_lime = sky [ hatch (fertilization_lime / 10)* 0.75 [setxy random-xcor random-ycor set color yellow] hatch (fertilization_lime / 10) * 0.25 [setxy random-xcor random-ycor set color green] ] if [color] of near_male_lime = blue [ hatch (fertilization_lime / 10)* 0.75 [setxy random-xcor random-ycor set color magenta] hatch (fertilization_lime / 10)* 0.25 [setxy random-xcor random-ycor set color yellow] ] if [color] of near_male_lime = cyan [ hatch (fertilization_lime / 10)* 0.75 [setxy random-xcor random-ycor set color yellow] hatch (fertilization_lime / 10)* 0.25 [setxy random-xcor random-ycor set color green] ] die ] ask turtles with [color = red] [ set near_male_for_female_red min-one-of turtles with [color = blue or color = sky or color = cyan] [distance myself] let near_male_positiony_red [ycor] of near_male_for_female_red let near_male_positionx_red [xcor] of near_male_for_female_red let female_positiony_red [ycor] of self let female_positionx_red [xcor] of self set distance_male_for_female_red (sqrt ( (female_positionx_red - near_male_positionx_red) ^ 2 + (female_positiony_red - near_male_positiony_red) ^ 2)) let fertilization_red (88.31 * exp(-0.32 * (distance_male_for_female_red / 10))) if [color] of near_male_for_female_red = blue [hatch (fertilization_red / 10) [setxy random-xcor random-ycor set color magenta]] if [color] of near_male_for_female_red = cyan [ hatch (fertilization_red / 10)* 0.5 [setxy random-xcor random-ycor set color magenta] hatch (fertilization_red / 10)* 0.5 [setxy random-xcor random-ycor set color yellow] ] if [color] of near_male_for_female_red = sky [hatch (fertilization_red / 10) [setxy random-xcor random-ycor set color green]] die ] end to count-offsprings set homo_mutant (count turtles with [color = yellow]);; set hetero_mutant ((count turtles with [color = green]));; set wild (count turtles with [color = magenta]);; set total (homo_mutant + hetero_mutant + wild ) ask turtles [die] end to produce-next-generation create-homo_mutant_males (10000 * (homo_mutant / total)) / 2 [set size 0.5 setxy random-xcor random-ycor set color sky ] create-homo_mutant_females (10000 * (homo_mutant / total)) / 2 [set size 0.5 setxy random-xcor random-ycor set color pink ] create-hetero_mutant_males (10000 * ( hetero_mutant / total)) / 2 [set size 0.5 setxy random-xcor random-ycor set color cyan] create-hetero_mutant_females (10000 * (hetero_mutant / total)) / 2 [set size 0.5 setxy random-xcor random-ycor set color lime] create-wild_males (10000 * ( wild / total)) / 2 [set size 0.5 setxy random-xcor random-ycor set color blue ] create-wild_females (10000 * ( wild / total)) / 2 [set size 0.5 setxy random-xcor random-ycor set color red ] end
There is only one version of this model, created over 5 years ago by Yukio Matsumoto.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.