Alzheimers_Buildup
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
- Adjust the slider parameters, choose a live threshold and APOE variant (see below).
- Press the Set-up button.
- Press the color-patches button
- Press the Go button to begin the simulation.
- Look at the monitors to see the current population sizes
- 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
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.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.