Alzheimers_Buildup

No preview image

1 collaborator

Default-person Grace Schwarz (Author)

Tags

alzheimers 

Tagged by Grace Schwarz over 6 years ago

disease 

Tagged by Grace Schwarz over 6 years ago

human health 

Tagged by Grace Schwarz over 6 years ago

neurophysiology/medicine 

Tagged by Grace Schwarz over 6 years ago

proteins 

Tagged by Grace Schwarz over 6 years ago

waste 

Tagged by Grace Schwarz over 6 years ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.0.3 • Viewed 696 times • Downloaded 145 times • Run 0 times
Download the 'Alzheimers_Buildup' 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 explores how APOE affects the buildup of neurofibrillary tangles and amyloid-beta plaques in the brain.

Classic symptoms of Alzheimer’s disease include a buildup of beta-amyloid plaques and neurofibrillary tangles in the neural tissue. This model presents a very simplified possible version of one of APOE's mechanisms in the body - breaking down waste.

APOE is a lipoprotein that metabolizes fats – as well as peptides like beta-amyloid - that has three variants that differ at a single-base level: APOE2, APOE3, and APOE4. APOE2 has a protective effect on against the onset of Alzheimer's but we do not know why - this model represents one possible effect of APOE2, a more efficent breakdown of the waste products. APOE3 is the 'wild type' version that is the most common. Patients who have the APOE4 gene are at a much higher risk for developing Alzheimer's.

HOW IT WORKS

APOE breaks down the neurofibrillary tangles (NFT) and amyloid-beta plaques (AB) in the nerual tissue. APOE loses ‘energy’ as it moves – this is a simplification of protein inactivation, competition, and degradation as time passes. To replenish energy, APOE must bind and break down NFT and/or AB.IT gains a small amount of energy from the cells it passes over, this helps stablizie the model. If energy is not replenished, APOE dies.

AB also loses ‘energy’ as it moves about the tissue, this is a simplification of the cellular mechanisms that each AB has within the brain. Both AB and NFT are necessary for a healthy system – but they can quickly build up and cause the system to fail. NFT and AB perform tasks at each cell but build up rapidly and make the cell unhealthy, turning it brown. The NFT or AB must move on and the cell must recover in order to regain it’s green and become a healthy cell again.

APOE only acts on NFT if there is AB present. This represents one hypothesis about the mechanism of Alzheimer's Disease - the AB cascade hypothesis (Jack, 2011).

HOW TO USE IT

  1. Adjust the slider parameters, choose a live threshold and APOE variant (see below).
  2. Press the Set-up button.
  3. Press the color-patches button
  4. Press the Go button to begin the simulation.
  5. Look at the monitors to see the current population sizes
  6. Look at the Populations plot to watch the populations fluctuate over time

Parameters: APOE Variant: The user chooses one of three genetic variants of APOE Disease Progression: The initial percent unhealthy cells, as well as how long it takes for cell to recover from a AB or NFT task AB-Buildup: The initial volume of AB buildup NFT-Buildup: The initial volume of NFT buildup Inital-APOE: The initial volume of APOE AB-Transcription-Level: The probability of a NFT being transcribed at each time step NFT-Transcription-Level: The probability of a AB being transcribed at each time step APOE-Transcription-Level: The probability of a APOE being transcribed at each time step %LiveRequired: User chooses the threshold at which the model dies

THINGS TO NOTICE

Watch as the NFT/AB and APOE populations fluctuate. Notice that increases and decreases in the sizes of each population are related. In what way are they related? What eventually happens?

Notice the Tissue Health plot representing fluctuations in the overall number of live cells. How do the sizes of the NFT, AB, APOE and live cell populations appear to relate? What is the explanation for this?

Why do you suppose that some variations of the model might be stable while others are not?

THINGS TO TRY

Try adjusting the transcription parameters under various settings. How sensitive is the stability of the model? Repeat with the inital buildup, although this will not affect the model beyond starting-up

Which slider is the model most sensitive to? Which drop-down menu?

Can you find any other parameter settings that generate a stable ecosystem?

What happens if all three turtles are the same size?

What happens if NFT is also allowed to move?

Try changing the transcription rules -- for example, what would happen if transcription depended on energy rather than being determined by a fixed probability?

Try changing the energy values in the code - how much energy does APOE need from each AB and NFT in order to survive?

NETLOGO FEATURES

Note the use of breeds to model three different kinds of "turtles": APOE, NFT, and AB. Some breeds are stuck in place, while others move.

Note the use of patches to model CellState.

Note use of the ONE-OF agentset reporter to select a random AB or NFT to be broken down by an APOE.

RELATED MODELS

Look at Child of Wolf Sheep Predation and Rabbits Grass Weeds for other models of interacting populations with different rules.

CREDITS AND REFERENCES

Bizzle, J. (2014). Child of Wolf Sheep Predation, Model ID 3513 -- NetLogo Modeling Commons. modelingcommons.org/browse/onemodel/3513#modeltabsbrowseinfo.

Wilensky, U. & Reisman, K. (1999). Connected Science: Learning Biology through Constructing and Testing Computational Theories -- an Embodied Modeling Approach. International Journal of Complex Systems, M. 234, pp. 1 - 12.

Wilensky, U. & Reisman, K. (2006). Thinking like a Wolf, a Sheep or a Firefly: Learning Biology through Constructing and Testing Computational Theories -- an Embodied Modeling Approach. Cognition & Instruction, 24(2), pp. 171-209.

Jiang, Q. Y., Lee, C. E., Mandrekar, S. M., Wilkinson, B. L., Cramer, P. C., Landreth, G. D., Holtzman, D. (2008). ApoE Promotes the Proteolytic Degradation of Aβ. Neuron, 58(5), 681-693.

Cho, Yunhee, et. al. (2018) IPSC & CRISPR/Cas9 Technologies Enable Precise & Controlled Physiologically Relevant Disease Modeling for Basic & Applied Research. Applied StemCell Inc. www.appliedstemcell.com.

Genaro Gabriel Ortiz, et. al. (July 1st 2015). Genetic, Biochemical and Histopathological Aspects of Familiar Alzheimer's Disease, Alzheimer's Disease, Inga Zerr, IntechOpen, DOI: 10.5772/59809. 

Farfel, Yu, De Jager, Schneider, & Bennett. (2016). Association of APOE with tau-tangle pathology with and without β-amyloid. Neurobiology of Aging, 37, 19-25.

Jack CR Jr, Vemuri P, Wiste HJ, Weigand SD, Aisen PS, Trojanowski JQ, Shaw LM, Bernstein MA, Petersen RC, Weiner MW, Knopman DS, Alzheimer's Disease Neuroimaging, I. Evidence for ordering of Alzheimer disease biomarkers. Archives of neurology. 2011; 68(12):1526–1535.

Phillips MC (2014). "Apolipoprotein E isoforms and lipoprotein metabolism". IUBMB Life. 66 (9): 616–23. doi:10.1002/iub.1314. PMID 25328986.

Olsson F, Schmidt S, Althoff V, Munter LM, Jin S, Rosqvist S, Lendahl U, Multhaup G, Lundkvist J (January 2014). "Characterization of intermediate steps in amyloid beta (Aβ) production under near-native conditions". The Journal of Biological Chemistry. 289 (3): 1540–50. doi:10.1074/jbc.M113.498246

Sontheimer, H. (2015). Chapter 4 - Aging, Dementia, and Alzheimer Disease. In Diseases of the Nervous System (pp. 99-131).

Comments and Questions

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

Click to Run Model

globals [CellState]                                                       ;; keep track of CellState

Breed [NFT a-NFT ]
NFT-own [energyNFT]                                                       ;; AB, NFT, and APOE2 are all breeds of turtle.

Breed [ AB a-AB ]
AB-own [energyAB]

Breed [ APOE APOEsingle]
APOE-own [energyAPOE birth]

patches-own [countdown dead ]

to setup
  clear-all

  ask patches [
    set countdown DiseaseProgression ]                                    ;; initialize CellState to set parameter

  set-default-shape NFT "circle"
  create-NFT NFT-buildup [                                                ;; create the NFT, then initialize their variables
    set color magenta
    set size 2.3                                                          ;; NFT can be up to 441 amino acids long (Sontheimer, 2015), using the 352 isoform, 352/150 = 2.3
    set label-color magenta - 2
    set energyNFT 50
    setxy random-xcor random-ycor ]

  set-default-shape AB "circle"
  create-AB AB-buildup [                                                  ;; create the AB, then initialize their variables
    set color blue
    set size .5                                                           ;; AB is up to 51 amino acids long (Olsson, 2014), 51/200 = .333, round up to .5
    set label-color blue - 2
    set energyAB 50
    setxy random-xcor random-ycor ]

  set-default-shape APOE "square"
  create-APOE Inital-APOE [                                               ;; create the APOE, then initialize their variables
    set color red
    set size 2                                                            ;; APOE is 299 amino acids long  (Phillips, 2014), 299/150 = 2
    set energyAPOE 100
    setxy random-xcor random-ycor ]

  reset-ticks
end 

to go
  if not any? APOE [ stop ]                                               ;; Humans require APOE for survival
  if (((count patches with [pcolor = green]) * 100)/(count patches) < %LiveRequired? ) [ stop]  ;; Humans require live cells

  ask NFT [                                                               ;; NFT is intracellular, does not move, does not lose energy
    task-CellState
    transcribe-NFT ]

  ask AB [
    move
    set energyAB energyAB - .25                                           ;; AB loses energy as it moves
    task-CellState
    transcribe-AB ]

  ask APOE [
    move
    set energyAPOE energyAPOE - 1                                         ;; APOE requires more energy than AB to move, larger
    set birth 1
    catch
    deathAPOE
    transcribe-APOE ]

  ask patches [ grow-CellState ]                                          ;; run procedure to allow regrowth of Cell health

  tick
end 

to move                                                                   ;; turtle moving around procedure
  rt random 100
  lt random 100
  fd 1
end 

to task-CellState                                                         ;; task CellState
  ask NFT-here [
    if pcolor = green [
    set pcolor brown                                                      ;; turn the cell brown, indicating cell recovering from task performed
    set energyNFT energyNFT + 5                                           ;; NFT and AB gain energy by performing tasks on each cell
      if energyNFT < 0 and pcolor = brown [ die ] ] ]                     ;; if NFT or AB run out of energy on an already unhealthy cell, die

  ask AB-here [
    if pcolor = green [                                                   ;; same thing, for AB
    set pcolor brown
    set energyAB energyAB + 100
      if energyAB < 0 and pcolor = brown [ die ] ] ]
end 

to catch
 let preyAB one-of AB-here                                                ;; AB procedure, grab a random AB
  if (preyAB != nobody)                                                   ;; did we get one? if so,
  [ if (APOE-Variant = "APOE2" ) and (random-float 50 < AB-Transcription-Level ) ;; APOE2 has better odds of binding than APOE3 or APOE4
     [ ask preyAB [ die ]                                                 ;; kill it
      set energyAPOE energyAPOE + 50 ]                                    ;; get energy from breaking down AB

    if (APOE-Variant = "APOE3" ) and (random-float 75 < AB-Transcription-Level )
      [ ask preyAB [ die ]                                                ;; APOE3 and APOE4 are progressively worse at binding AB, get less energy from it
      set energyAPOE energyAPOE + 35 ]

    if (APOE-Variant = "APOE4" ) and (random-float 100 < AB-Transcription-Level )
      [ ask preyAB [ die ]                                                ;; APOE3 and APOE4 are progressively worse at binding AB, get less energy from it
      set energyAPOE energyAPOE + 20 ] ]                                  ;; APOE3 and APOE4 allow higher levels of waste accumulation

  if count AB > 1                                                         ;; APOE only acts on NFT when AB is present (Farfel, 2016)
   [let preyNFT one-of NFT-here                                           ;; same as above for NFT
    if (preyNFT != nobody)
  [ if (APOE-Variant = "APOE2" ) and (random-float 50 < NFT-Transcription-Level )
     [ ask preyNFT [ die ]
      set energyAPOE energyAPOE + 50 ]

    if ( APOE-Variant = "APOE3" ) and (random-float 75 < NFT-Transcription-Level )
    [ ask preyNFT [ die ]
      set energyAPOE energyAPOE + 35 ]

    if (APOE-Variant = "APOE4" ) and (random-float 100 < NFT-Transcription-Level )
    [ ask preyNFT [ die ]
        set energyAPOE energyAPOE + 20 ] ] ]
end 

to transcribe-NFT                                                          ;; NFT procedure
  if count AB > 1   [                                                      ;; AB cascade hypothesis (Jack, 2011)
    if random-float 100 < ( NFT-Transcription-Level / 25 ) [               ;; throw "dice" to see if you will transcribe
      set energyNFT (energyNFT / 2)                                        ;; divide energy between parent and offspring
        hatch 1 [ rt random-float 360 fd 3 ] ] ]                           ;; hatch an offspring and move it forward 5 steps
end 

to transcribe-AB                                                           ;; AB procedure
  if random-float 50 < ( AB-Transcription-Level / 25 ) [                   ;; throw "dice" to see if you will transcribe, odds are better to compensate for NFT being larger/more accessible to APOE
    set energyAB (energyAB / 2)                                            ;; divide energy between parent and offspring
      hatch 1 [ rt random-float 360 fd 1 ] ]                               ;; hatch an offspring and move it forward 1 step
end 

to transcribe-APOE                                                         ;; APOE procedure
  ifelse ( count APOE < ( count NFT + count AB) ) [                        ;; transcribe more APOE only if NFT and AB levels are too high
     if (random-float 100 < ( APOE-Transcription-Level / 25 ))             ;; throw "dice" to see if you will transcribe
     [set energyAPOE (energyAPOE / 2)                                      ;; divide energy between parent and offspring
      hatch 1 [ rt random-float 360 fd 1]                                  ;; hatch an offspring and move it forward 1 step
      if pcolor = green
       [set pcolor brown
          set energyAPOE energyAPOE + 5 ] ] ]                              ;; APOE gets energy from cell as it is transcribed, takes cell's health for itself

     [ die ]                                                               ;; if ( APOE > NFT + AB) too much APOE already, cells will degrade APOE not produce more
end 

to deathAPOE                                                               ;; APOE procedure when energy dips, die
  if APOE-Variant = "APOE2" [ if energyAPOE < 0 [ die ]  ]                 ;; APOE2 is the baseline
  if APOE-Variant = "APOE3" [ if energyAPOE < 5 [ die ]  ]                 ;; APOE3 and APOE4 are worse adapted to survival, die faster
  if APOE-Variant = "APOE4" [ if energyAPOE < 10 [ die ]  ]
end 

to grow-CellState                                                          ;; countdown on brown patches: if reach 0, grow some CellState
    if pcolor = brown [
      ifelse countdown <= 0
        [ set pcolor green
          set countdown DiseaseProgression ]
        [   if APOE-Variant = "APOE2" [ set countdown countdown - 10 ]     ;; APOE2 is the baseline, cell recover faster
            if APOE-Variant = "APOE3" [ set countdown countdown - 5  ]     ;; APOE3 and APOE4 are harder on the cells, cells take longer to recover
            if APOE-Variant = "APOE4" [ set countdown countdown - 1  ] ] ]
end 

to color-patches                                                           ;; sets the disease state - user inputs how 'healthy' the tissue begins
         let InitalLivePatches (100 - DiseaseProgression)
         let total InitalLivePatches + DiseaseProgression
         let p-green InitalLivePatches / total
         let p-brown DiseaseProgression / total
      ask patches [
         let x random-float 1.0
         if x <= p-green + p-brown [ set pcolor green]
         if x <= p-brown [ set pcolor brown] ]
end 

There are 9 versions of this model.

Uploaded by When Description Download
Grace Schwarz over 6 years ago Improved accuracy to in vivo Download this version
Grace Schwarz over 6 years ago solved info tab issue Download this version
Grace Schwarz over 6 years ago Reverted to older version Download this version
Grace Schwarz over 6 years ago Reverted to older version Download this version
Grace Schwarz over 6 years ago test info layout Download this version
Grace Schwarz over 6 years ago Reverted to older version Download this version
Grace Schwarz over 6 years ago Information formatting Download this version
Grace Schwarz over 6 years ago change initializing variables Download this version
Grace Schwarz over 6 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.