# GenEvo 4 Competition

Model was written in NetLogo 6.0-BETA1
•
Viewed 344 times
•
Downloaded 23 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

extensions [ ls cf ] globals [ ; These are constant variables used to specify simulation restrictions global-lactose-limit ; variable to specify lactose quantity initial-energy ; variable to specify initial energy of bacterial cells old-models-list ; list of ls:models to identify newly created model ] breed [ ecolis ecoli ] ecolis-own [ my-model ; cell model (LevelSpace child model) associated with an E. coli cell my-model-path ; path to locate the file to be used for creating a cell model (LevelSpace child model) ; these variables are used to store the corresponding statistics from the cell models energy ; energy of the cell lactose-inside ; lactose quantity inside a cell lactose-outside ; lactose quantity in the outside environment lacZ-inside ; lacZ proteins inside a cell lacY-inside ; lacY proteins inside a cell lacY-inserted ; lacY proteins inserted into the cell-wall lacI-lactose-complex ; lacI-lactose-complex molecules inside a cell ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;; SETUP PROCEDURES ;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to setup clear-all ls:reset ; set the constant values set initial-energy 1000 set global-lactose-limit (initial-number-of-cells * 5000) generate-cells ; create the cells if lactose? [ distribute-lactose ] ; distribute lactose if the option is selected reset-ticks end ; procedure to generate E. coli cells. If choose-models is OFF, default cell model is created for all the cells. to generate-cells let color-list [ gray red brown yellow green cyan violet magenta ] let i 0 create-ecolis initial-number-of-cells [ set color (item i color-list) setxy random-xcor random-ycor set shape "ecoli" ifelse choose-models? [ user-message "Select a Genetic Switch model to use..." set my-model-path user-file ][ set my-model-path "GenEvo 1 Genetic Switch.nlogo" ] create-my-model while [ test-if-switch my-model ] [ user-message "The model must be a Genetic Switch model! Please select a Genetic Switch model again." ls:close my-model set my-model-path user-file create-my-model ] set i i + 1 ] end to create-my-model ; turtle procedure ; If my-model-path is False, it means the user didn't select a file. ; In that case, we kill the E. coli so we this doesn't mess anything up. ifelse my-model-path != False [ ls:create-interactive-models 1 my-model-path set my-model max ls:models ls:hide my-model ls:let initial-variables-list generate-initial-variables-list ls:ask my-model [ setup set-initial-variables initial-variables-list ] ] [ die ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;; RUNTIME PROCEDURES ;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to go distribute-lactose ask ecolis [ rt random-float 360 fd 1 run-your-model maybe-reproduce if energy < 0 [ ls:close my-model die ] ] if not any? ecolis [ stop ] tick end ; Updates the enviornmental conditions and then runs each cell model to run-your-model ; turtle procedure ls:let lactose-outside-per-cell ifelse-value lactose? [ floor ( global-lactose-limit / length ls:models ) ] [ 0 ] ls:let parent-glucose? glucose? ls:let parent-lactose? lactose? ls:ask my-model [ set glucose? parent-glucose? set lactose? parent-lactose? go ] end ; when lactose? is OFF, this procedure is used to update the lactose quantity in the environment in the population model to distribute-lactose ifelse lactose? [ ls:let lactose-per-model (global-lactose-limit / length ls:models) ask patches [ set pcolor 2 ] ask ecolis [ ls:ask my-model [ update-lactose lactose-per-model ] ] ][ ; see how much lactose is outside all of the cells let total-lactose-outside sum [ count lactoses with [ not inside? ] ] ls:of ls:models cf:when ; color the patches based on the global lactose amount cf:case [ total-lactose-outside < (global-lactose-limit / 2) ] [ ask patches [ set pcolor 1 ]] cf:case [ total-lactose-outside = 0 ] [ ask patches [ set pcolor 0 ] ] cf:else [ ask patches [ set pcolor 2 ] ] ls:let lactose-per-model (total-lactose-outside / length ls:models) ask ecolis [ ls:ask my-model [ update-lactose lactose-per-model ] ] ] end ; procedure for E. coli cells to reproduce. A new cell is added in the population model and a new individual cell model is created. to maybe-reproduce ; if there's enough energy, reproduce if ( [ energy ] ls:of my-model > 2 * initial-energy ) [ ls:ask my-model [ divide-cell ] extract-cell-model-variables hatch 1 [ rt random-float 360 fd 1 ; move it forward so they don't overlap create-my-model ; Now create and setup the cell model that will simulate this new daughter cell ] ] end ; procedure to concatenate all the necessary initial variables for a daughter cell model into a single list to-report generate-initial-variables-list ; turtle procedure report (list color initial-energy lacY-inside lacY-inserted lacZ-inside lacI-lactose-complex lactose-inside lactose-outside lactose? glucose?) end ; Extract all the necessary variables from the cell model to extract-cell-model-variables ; turtle procedure let list-of-variables ([ send-variables-list ] ls:of my-model) ; grab the list ; now save the elements in our 'ecolis-own' variables set energy item 0 list-of-variables set lacY-inside item 1 list-of-variables set lacY-inserted item 2 list-of-variables set lacZ-inside item 3 list-of-variables set lacI-lactose-complex item 4 list-of-variables set lactose-inside item 5 list-of-variables set lactose-outside item 6 list-of-variables end ; procedure to view the cell model (LevelSpace child model) associated with each cell to inspect-cells if mouse-inside? and mouse-down? [ ask ecolis with-min [ distancexy mouse-xcor mouse-ycor ] [ ls:show my-model ] ] end ; procedure to test whether or not a model is a Genetic Switch model to-report test-if-switch [ a-model-number ] let return-value False carefully [ ls:ask a-model-number [ set LevelSpace? True ] ][ set return-value True ] report return-value end ; Copyright 2016 Uri Wilensky. ; See Info tab for full copyright and license.

There is only one version of this model, created about 7 years ago by Sugat Dabholkar.

## Attached files

File | Type | Description | Last updated | |
---|---|---|---|---|

GenEvo 4 Competition.png | preview | Preview for 'GenEvo 4 Competition' | about 7 years ago, by Sugat Dabholkar | Download |

This model does not have any ancestors.

This model does not have any descendants.