Sickle Cell Disease

Sickle Cell Disease preview image

1 collaborator

Default-person Firat Soylu (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0.2 • Viewed 398 times • Downloaded 17 times • Run 0 times
Download the 'Sickle Cell Disease' 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?

[Heterozygote advantage] [http://en.wikipedia.org/wiki/Heterozygous_advantage] [Overdominance] [http://en.wikipedia.org/wiki/Overdominance]

(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

question about model (Question)

Hi Firat, I am Interested in your sickle cell anemia model. I am also interested in modelling evolution in the context of disease in humans. I cannot seem to get the mutation events to take place in your model. Any ideas as to how to go about fixing this? Cheers, Joseph

Posted almost 11 years ago

Click to Run Model

breed [humans human]
humans-own [first-allele second-allele age isMalaria?]

to setup
  clear-all
  design-humans
  set-default-shape humans "person"
  ask patches [
    if pycor >= 1 [set pcolor (scale-color green region1-swampiness 10 0)]
    if pycor <= -1 [set pcolor (scale-color green region2-swampiness 10 0)]
    if (pycor > -1 and pycor < 1) [ set pcolor grey ] 
    ]
  reset-ticks
end 

to design-humans
  create-humans initial-population [
    randomly-locate ifelse-value (random-float 1 > 0.5) [1] [2] ;region 1 or region 2
    set first-allele "S"
    set second-allele "S"
    set age random 20
    set color blue
  ]
end 

to randomly-locate [region]
  setxy (ifelse-value (random-float 1 > 0.5) [random-float max-pxcor - 1] [random-float min-pxcor + 1]) (ifelse-value (region = 1) [1 + random-float (max-pycor - 1)] [ -1 + random-float (min-pycor + 1)])
end 

to go
  if count humans < min-population or count humans > max-population [stop]
  ask humans [
    check-if-sick
    set age age + 1
    if  age > 100 or (isMalaria? = true and random-float 100 < malaria-dead-probability) or (shape = "person sick" and random-float 100 < sicklecell-dead-probability) [die]
    if (random-float 100 < malaria-probability-coefficient * (1 / (pcolor - 49))) and shape = "person" [set isMalaria? true set color red]
    move
  ]
    repeat round (count humans * reproduction-rate / 200) [
      ask one-of humans  [
        if any? other humans [
          ask one-of other humans [
            reproduce]
        ]
      ]
    ]   
  tick
end 

to reproduce
  hatch 1 [ 
    set first-allele ifelse-value (random 1 < 0.5) [[first-allele] of self] [[second-allele] of self] ;mother
    set second-allele ifelse-value (random 1 < 0.5) [[first-allele] of myself] [[second-allele] of myself] ;father
    set age 0
    check-if-sick
    randomly-locate ifelse-value (ycor > 0) [1] [2]
  ]
end 

to move
  if (abs [pxcor] of patch-ahead 0.1) + 1 > max-pxcor [ set heading (- heading) ]
  if ((abs [pycor] of patch-ahead 0.1) + 1 > max-pycor) or ((abs [pycor] of patch-ahead 0.1) - 1 < 0) [ set heading (180 - heading) ]
  fd 0.1
end 

to mutate [human-set]
  ask one-of human-set [
    ifelse random-float 1 > 0.5 [set first-allele "s"] [set second-allele "s"]
    check-if-sick
    ]
end 

to check-if-sick
    let current-color color
    ifelse first-allele = "s" and second-allele = "s" [set shape "person sick"] 
    [ifelse first-allele = "s" or second-allele = "s" [set shape "person carrier"] [set shape "person"]]
    set color current-color
end 

There is only one version of this model, created about 11 years ago by Firat Soylu.

Attached files

File Type Description Last updated
Sickle Cell Disease.png preview Preview for 'Sickle Cell Disease' about 11 years ago, by Firat Soylu Download

This model does not have any ancestors.

This model does not have any descendants.