# Alzheimers_Buildup

No preview image

Model was written in NetLogo 6.0.3
•
Viewed 313 times
•
Downloaded 21 times
•
Run 0 times

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)

Info tab cannot be displayed because of an encoding error

## 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.

## Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.