turtles-own [ stem? ;; true for stem cells, false for transitory cells mutant? ;; false for setem cells, false for transitory cells age ;; age of cell. metastatic? ;; false for progeny of stem cell 0, true for progeny of stem cell 1, false for mutant cells ] globals [ time step cell-count ] to setup ca ask patches [ set pcolor gray ] set step 0.5 set-stem set-mutant evaluate-params end to set-stem ;;create two stem cells cct 2 [ setxy (screen-edge-x / -2.5) 0 set stem? true set metastatic? false set color blue set age 0 ] end to set-mutant ;;create one mutant cell cct 1 [ setxy (screen-edge-x / -2.5) 0 set mutant? true set stem? false set metastatic? false set color green set age 0 ] ask turtle 1 [ set metastatic? true set heading 90 ;; stem cell 1 will move away ] set cell-count 3 end to go set time (time + step) ask turtles [ ifelse leave-trail? [ pd ] [ pu ] if (who = 1) and (xcor < 25) [ fd 1 ] ;stem cell movement set age (age + step) move-transitional-cells move-mutant-cells mitosis death ] evaluate-params wait (slowdown / 60) ; slow down the simulation by (slowdown/50) seconds end ;;transitional cells move and hatch more. Turtle proc. to move-transitional-cells if (not stem?) [ set color ( red ) fd 1 if (age < 2.5) [ hatch 1 [ ;amplification rt random 360 fd 1 ] ] ] end ;;mutant cells move and hatch more. Turtle proc. to move-mutant-cells if (not stem?) [ set color ( red ) fd 1 if (age < 1.5) [ hatch 1 [ ;amplification rt random 360 fd 1 ] ] ] end to mitosis ;; turtle proc. - stem cells only if stem? [ hatch 1 [ fd 1 set color red set stem? false ifelse (who = 1) [ set age 8 ] [ set age 0 ] ] ] end to divide ;; turtle proc. - mutant cell only if mutant? [ hatch 1 [ fd 1 set color red set stem? false ifelse (who = 1) [ set age 8 ] [ set age 0 ] ] ] end to death ;; turtle proc. if (not stem?) and (not metastatic?) and (age > 8) [ die ] if (not stem?) and metastatic? and (age > 6) [ die ] end to evaluate-params set cell-count count turtles ;cell count if (cell-count <= 0) [ stop ] set-current-plot "Living Cells" plot cell-count end to kill-original-stem-cell ask turtle 0 [ die ] end to kill-moving-stem-cell ask turtle 1 [ die ] end to kill-transitory-cells ask turtles [ if (age < 5 and (not stem?)) [ die ] ] end to kill-mutant-cells ask turtles [ if (age < 3 and (not stem?)) [die] ] end to kill-combo-cells ask turtles [ if (age < 7 and (not stem?)) [die] ] end ; This model was created as part of the project: CONNECTED MATHEMATICS: ; MAKING SENSE OF COMPLEX PHENOMENA THROUGH BUILDING OBJECT-BASED PARALLEL ; MODELS (OBPML). The project gratefully acknowledges the support of the ; National Science Foundation (Applications of Advanced Technologies ; Program) -- grant numbers RED #9552950 and REC #9632612. ; Copyright 1998 by Uri Wilensky. All rights reserved. ; This model was converted to NetLogo as part of the project: ; PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN ; CLASSROOMS. The project gratefully acknowledges the support of the ; National Science Foundation ( REPP program ) -- grant number REC #9814682. ; Converted from StarLogoT to NetLogo, 2001. @#$#@#$#@ GRAPHICS-WINDOW 328 10 637 319 51 51 3.0 0 10 CC-WINDOW 328 321 657 466 Command Center BUTTON 12 11 67 44 setup setup NIL 1 T OBSERVER BUTTON 71 11 126 44 go go T 1 T OBSERVER SLIDER 166 10 292 43 slowdown slowdown 1.0 10.0 6.0 1.0 1 MONITOR 25 49 75 98 time time 0 1 MONITOR 78 50 149 99 cell-count cell-count 0 1 BUTTON 3 112 109 145 Taxol kill-transitory-cells NIL 1 T OBSERVER SWITCH 167 48 292 81 leave-trail? leave-trail? 1 1 -1000 BUTTON 26 155 154 189 kill original parent cell kill-original-stem-cell NIL 1 T OBSERVER PLOT 9 215 321 445 Living Cells Time Cells Alive 0.0 200.0 0.0 2000.0 true false PENS "Cells Alive" 1.0 0 -16777216 true BUTTON 164 156 302 189 kill moving parent cell kill-moving-stem-cell NIL 1 T OBSERVER BUTTON 111 112 216 145 Carboplatin kill-mutant-cells NIL 1 T OBSERVER BUTTON 217 111 324 145 Combination kill-combo-cells NIL 1 T OBSERVER @#$#@#$#@ WHAT IS IT? ----------- This model illustrates the growth of a tumor and how it resists chemical treatment. A tumor consists of two kinds of cells: parent cells (blue turtles) and transitory cells (all other turtles). During mitosis, a parent cell can divide either asymmetrically or symmetrically. In asymmetric mitosis, one of the two daughter cells remains a parent cell, replacing its parent. So a stem cell effectively never dies - it is quasi reincarnated after each division. The other daughter cell turns into a transitory cell that moves outward. Young transitory cells may divide, breeding other transitory cells. The transitory cells stop dividing at a certain age and change color from red to white to black, eventually dying. A stem cell may also divide symmetrically into two stem cells (blue turtles). In this example the original stem cell divides symmetrically only once. The first stem cell remains static, but the second stem cell moves to the right. This activity, in which the cell advances into distant sites and creates another tumor colony, is called metastasis. Notice that the metastasis is red. It is made of cells that die young. As the disease progresses, cells die younger and younger. The original StarLogoT Tumor model was contributed by Gershom Zajicek M.D., Professor of Experimental Medicine and Cancer Research at The Hebrew University-Hadassah Medical School, Jerusalem. HOW TO USE IT -------------- SETUP: Clears the display window and creates two blue neoplastic (cancerous) stem cells. One cell stays put and the other moves to the right. GO: Runs the simulation. SLOWDOWN: A high value slows down the process. TAXOL: This button introduces taxol to the tumor killing young transitory cells. CARBOPLATIN: This button introduces carboplatin to the tumor killing young transitory cells. COMBINATION: This button introduces a combination of taxol and carboplatin to the tumor killing young transitory cells. KILL ORIGINAL PARENT CELL: Kills the stationary parent cell. KILL MOVING PARENT CELL: Kills the metatatic parent cell. LEAVE-TRAIL: If it's ON, the cells trace their paths; if it's OFF, they do not. TIME: Displays how many times the go procedure has been run CELL-COUNT: Displays the total number of living cells. LIVING CELLS PLOT: plots the number of living cells. @#$#@#$#@ default true 0 Polygon -7566196 true true 150 5 40 250 150 205 260 250 arrow true 0 Polygon -7566196 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 box true 0 Polygon -7566196 true true 45 255 255 255 255 45 45 45 spacecraft true 0 Polygon -7566196 true true 150 0 180 135 255 255 225 240 150 180 75 240 45 255 120 135 thin-arrow true 0 Polygon -7566196 true true 150 0 0 150 120 150 120 293 180 293 180 150 300 150 turtle true 0 Polygon -7566196 true true 138 75 162 75 165 105 225 105 225 142 195 135 195 187 225 195 225 225 195 217 195 202 105 202 105 217 75 225 75 195 105 187 105 135 75 142 75 105 135 105 person false 0 Circle -7566196 true true 155 20 63 Rectangle -7566196 true true 158 79 217 164 Polygon -7566196 true true 158 81 110 129 131 143 158 109 165 110 Polygon -7566196 true true 216 83 267 123 248 143 215 107 Polygon -7566196 true true 167 163 145 234 183 234 183 163 Polygon -7566196 true true 195 163 195 233 227 233 206 159 truck-down false 0 Polygon -7566196 true true 225 30 225 270 120 270 105 210 60 180 45 30 105 60 105 30 Polygon -8716033 true false 195 75 195 120 240 120 240 75 Polygon -8716033 true false 195 225 195 180 240 180 240 225 truck-right false 0 Polygon -7566196 true true 180 135 75 135 75 210 225 210 225 165 195 165 Polygon -8716033 true false 210 210 195 225 180 210 Polygon -8716033 true false 120 210 105 225 90 210 truck-left false 0 Polygon -7566196 true true 120 135 225 135 225 210 75 210 75 165 105 165 Polygon -8716033 true false 90 210 105 225 120 210 Polygon -8716033 true false 180 210 195 225 210 210 circle true 0 Circle -7566196 true true 35 35 230 @#$#@#$#@ NetLogo 1.0 (Rev D) @#$#@#$#@ @#$#@#$#@ @#$#@#$#@