Plant Hybridization

Plant Hybridization preview image

1 collaborator

Uri_dolphin3 Uri Wilensky (Author)

Tags

(This model has yet to be categorized with any tags)
Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 314 times • Downloaded 25 times • Run 0 times
Download the 'Plant Hybridization' 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 lets you conduct experiments in Mendelian genetics with cross fertilization in a population of flowering plants.

A population of plants is used to show two sets of patterns of gene expression. One of these set of patterns is between a dominant and recessive forms (alleles) of a gene. The other is between two co-dominant genes.

This population of plants can be fertilized in the wild using bees to transmit pollen from one plant to another, or the user can artificially cross fertilize some or all the plants by hand (using the mouse to transfer pollen from one plant to another). After fertilization, seeds immediately form. Once fertilized, the same plant can not be fertilized again in that same growing season.

Plants drop the seeds they create in the same location the parent plant was growing. The user can allow these seeds of the plants to grow in the same location or move, organize, and label the seeds to make better sense of the outcomes of various fertilization events, in the following season of plant growth.

Also the user can move plants to the greenhouse location to "over winter" the plants so that they do not die at the end of the growing season. Keeping a plant in the greenhouse, ensures that it can be used in future seasons for additional cross fertilization experiments. But plants in the greenhouse are only permitted to cross-fertilize their pollen to plants outside the greenhouse. Greenhouse plants can not be fertilized, unless they are moved outside the greenhouse.

HOW IT WORKS

Plants have two possible genes that determine their expression of flower color: W or R. The genotype and phenotype each plant follows the following co-dominant gene expression patterns:

WW - white flower WR or RW - pink flower RR - red flower

Plants have two possible genes that determine their expression of plant height: T or t. The genotype and phenotype each plant follows the following dominant-recessive gene expression patterns:

TT or Tt or tT - tall tt - small

Plants have two possible genes that determine their expression of leaf pattern: C or c. The genotype and phenotype each plant follows the following dominant-recessive gene expression patterns:

CC or Cc or cC - solid green leaf cc - variegated green and yellow leaf

HOW TO USE IT

Buttons: SETUP - sets up the initial conditions set on the sliders. GO - runs and stops the model. NEXT SEASON advances the season. You must press this button to move the plants through their different stages of growth and reproduction. CLEAR SELECTED - clears any plants or seeds from the currently selected field. POLLINATE WITH BEES - randomly pollinates any plants that are not yet pollinated

Sliders: INITIAL-SEEDS sets the number of initial seeds that appear randomly distributed in the world. CHANCE-MUTATION sets the chance that a mutation is introduced when plants are fertilized from the known set of available genes W, R, T, t, C, and c. If a mutation is added, the result may be the genotype does not actually change, if the gene that was randomly replaced is replaced with the same gene as before or if the overall genotype has a different order for the genes, but not a different combination.

Switches: SHOW-FERTILIZATION-NETWORK shows lines between which plants have cross-fertilized. A circle represents self-fertilization LABEL-SEEDS-AND-PLANTS? allows the user to assign a label to any seed or plant they move. The label will be inherited by the next generations of seeds the plant produces. ADD-WILD-SEEDS? allows the user to add new random seeds during the fall or winter. USE-GREENHOUSE? when on a section of the world will be designated as the greenhouse when SETUP is pressed.

Running through the seasons:

On SETUP, a number of seeds (set by INITIAL-SEEDS) are randomly distributed about a garden. These seeds carry three genes for each trait they express. One pair of genes is for the expression of plant height. The next pair of genes is for the expression of flower color. The last pair of genes is for leaf pattern.

When the user presses GO and then clicks on the NEXT SEASON button, the seeds begin to advance through different stages of plant growth. The five seasons used in the model are shown in the SEASON-NAME monitor: early spring, late spring, summer, fall, and winter.

In each season the user can do different things with the plants.

In early spring, the seeds germinate and begin the process of forming a new plant. In this season, the user can select any of the fields of plants and clear all the seeds out of that field.

In late spring, the plants grow large enough to see and the user can click and drag the plants to new locations (transplanting them).

In summer, the plants are fully grown and their expressed traits are now visible. Here again the user can select any of the fields of plants and clear all the seeds out of that field.

In the fall the plants are ready to cross-fertilize or self-fertilize. Plants have both female and male plant structures. When you enter fall you will be asked if you want to pollinate with bees (randomly). You can answer YES and all the plants will be cross-pollinate. If you answer NO you can cross-pollinate using the mouse and you can later have the remaining plants cross-pollinate by pressing the POLLINATE WITH BEES button. To pollinate using the mouse click on a plant, hold the mouse button down and drag to another plant. Once a plant is fertilized, its flower closes up and a seed appears. It may no longer be fertilized by pollen, but it may continue to offer its pollen for the fertilization of other plants. Plants in the greenhouse (the upper right green quadrant of the world) are only permitted to cross-fertilize their pollen to plants outside the greenhouse. Greenhouse plants can not be fertilized, unless they are moved outside the greenhouse.

In the winter, the user can move the seeds that resulted from pollination to new locations by clicking and holding the mouse button down when the mouse cursor is positioned over a seed. The seed may be dragged to an open patch, but may not be placed on a patch where a seed already is located. Once the mouse button is released, the seed is dropped in the open patch under it. If the user turns the ADD-WILD-SEEDS? switch on, then the user may also click on open patches to add new wild seeds to the garden plot. These have a white box around them to help distinguish them from seeds that were created through a previous fertilization event on in the world.

In the early spring, the cycle of plant growth starts all over again from the seeds remaining in the garden

THINGS TO NOTICE

What happens when you cross pollinate two pink plants? Are the results always the same?

What must be true about the two parents for the offspring of them to always end up with a white flowered plant?

When you cross pollinate a tall plant with a tall plant, are all the offspring tall? Are most? What percentage or fraction of the offspring is tall?

Is there any fertilization plan you can find that will guarantee that you end up with all tall plants?

In the wild, what percentage or fraction of the plants are short and white?

THINGS TO TRY

Try to self-pollinate many of the plants to see what outcome those give. Continue self pollinating the plants until they breed true - which is to say, they consistently give the same characteristics in the next generation.

Move the plants and seeds into different areas of the screen to conduct different experiments in those areas. Label your plants to describe the parent's characteristics.

EXTENDING THE MODEL

Plants could drop multiple seeds (e.g. four or five) like in a pea pod of a pea plant.

Mendel used pea plants to conduct similar experiments. In his peas, flower color was not co-dominant, it was dominant vs. recessive for white vs. violet.

Mendel also discovered other traits that follow these types of relationships:

The inflated vs. wrinkled seeds. The color of the seed (green vs. yellow). Inflated vs. wrinkled seed pod. The color of the seed pod (green vs. yellow) The distribution of the flowers along the stem.

NETLOGO FEATURES

An output area is used to give instructions to the user.

The model makes heavy use of the MOUSE-* and USER-* primitives to allow the user to interact with the model.

CREDITS AND REFERENCES

This model is a part of the BEAGLE curriculum (http://ccl.northwestern.edu/simevolution/beagle.shtml)

Other references to Gregor Mendel's 1865 paper "Versuche ueber Pflanzen-Hybriden" and a revised version of the English translation by C.T. Druery and William Bateson, "Experiments in Plant Hybridization", can be found at http://www.mendelweb.org/Mendel.html

HOW TO CITE

If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

  • Novak, M. and Wilensky, U. (2007). NetLogo Plant Hybridization model. http://ccl.northwestern.edu/netlogo/models/PlantHybridization. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
  • Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.

COPYRIGHT AND LICENSE

Copyright 2007 Uri Wilensky.

CC BY-NC-SA 3.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

Comments and Questions

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

Click to Run Model

globals [
  greenhouse
  plant-shape-1
  plant-shape-2
  flower-shape-1
  flower-shape-2
  grabbed-turtle
]


breed [plants plant]
breed [seeds seed]

turtles-own [
  color-genotype
  height-genotype
  leaf-genotype
]

;;
;; Setup Procedures
;;

to setup
  clear-all
  set-default-shape seeds "seed"
  set greenhouse green - 2
  set plant-shape-1 "plant-tall"
  set plant-shape-2 "plant-short"

  set grabbed-turtle nobody

  setup-fields

  ask n-of initial-seeds patches [ add-one-wild-seed ]

  output-print "First press GO, Then click on different "
  output-print "locations on screen below to plant wild seeds."
  output-print "You can move seeds by clicking and dragging them"
  output-print "You can label seeds by enabling LABEL-SEEDS-AND-PLANTS? and clicking on the seed to label"
  output-print "When done planting, press NEXT SEASON."
  reset-ticks
end 

to setup-fields
  ask patches [ set pcolor black ]
  ifelse use-greenhouse?
  [
    ask patches with [pxcor >= 6 and pycor >= 6] [ set pcolor greenhouse ]
    ask patch 11 6 [ set plabel "greenhouse plants" ]
  ]
  [ ask patch 11 6 [ set plabel "" ] ]
end 


;;
;; Runtime Procedures
;;

to go
  run (word "do-" season-procedure)
end 

to start-early-spring
  ask seeds
  [
    set shape "seed-sprouted"
    hatch-plants 1
    [
      set color phenotype-flower-color color-genotype
      set shape (word (phenotype-plant-height height-genotype) phenotype-leaf leaf-genotype)
      set size 0.2
    ]
  ]
end 

to do-early-spring
  listen-select-field
  display
end 

to start-late-spring
  repeat 40 [
    ask plants [ grow-plants ]
    display
  ]
  ask seeds [ die ]
end 

to do-late-spring
  move-turtles plants patch mouse-xcor mouse-ycor
  display
end 

to start-summer
  ask plants [ set size 1 ]
end 

to do-summer
  listen-select-field
  display
end 

to start-fall
  if user-yes-or-no? (word "Do you want to pollinate with bees?\n"
                           "(yes=randomly) (no=select which ones with mouse)")
  [ pollinate-with-bees ]
end 

to do-fall
  listen-cross-fertilize-plants
  display
end 

to start-winter
  clear-drawing
  ask plants with [not in-greenhouse?] [ die ]
end 

to do-winter
  let p patch mouse-xcor mouse-ycor
  ifelse not any? seeds-on p and grabbed-turtle = nobody
  [ if add-wild-seeds? and mouse-inside?
    [ add-wild-seeds p ] ]
  [ move-turtles seeds p ]
  display
end 

;;
;; Plant and Field Procedures
;;

to clear-field
  ask patches with [pcolor = blue]
  [
    ask plants-here [ die ]
    ask seeds-here [ die ]
  ]
  setup-fields
end 

to add-wild-seeds [p]
  if not [in-greenhouse?] of p and not any? seeds-on p
  [
    ifelse mouse-down?
    [ ask patch mouse-xcor mouse-ycor [ add-one-wild-seed ] ]
    [ ask seeds [ set size 1 ] ]
  ]
end 

to grow-plants
  if size < 1
  [ set size size + 1 / 50 ]
end 

to pollinate-with-bees
  ask plants with [not in-greenhouse? and not any? in-link-neighbors]
  [
     let pollinator one-of plants
     pollinate pollinator
  ]
end 

to-report in-greenhouse?
  report pcolor = greenhouse
end 

;;
;; Mouse Procedures
;;

to listen-cross-fertilize-plants
  ifelse mouse-down?
  [
    if grabbed-turtle = nobody
    [ set grabbed-turtle one-of plants-on patch mouse-xcor mouse-ycor ]
  ]
  [
    if grabbed-turtle != nobody
    [
      let pollinated one-of (plants-on patch mouse-xcor mouse-ycor) with [not in-greenhouse? and not any? in-link-neighbors]
       if pollinated != nobody
      [ ask pollinated  [ if not any? seeds-here [pollinate grabbed-turtle ] ] ]
      set grabbed-turtle nobody
    ]
  ]
end 

to listen-select-field
  if mouse-down?
  [
    setup-fields
    ask patch mouse-xcor mouse-ycor
    [
      set pcolor blue
      ask neighbors [ set pcolor blue ]
    ]
  ]
end 

to move-turtles [b p]
  ifelse mouse-down? and mouse-inside?
  [
    ifelse label-seeds-and-plants?
    [
      ask (turtles-on p) with [breed = b]
      [ set label user-input (word "Label for " self ":") ]
    ]
    [
      ifelse grabbed-turtle = nobody
      [ set grabbed-turtle one-of (turtles-on p) with [breed = b] ]
      [ if not any? seeds-on p [ ask grabbed-turtle [ move-to p ] ] ]
    ]
    display
  ]
  [ set grabbed-turtle nobody ]
end 


;;
;; Seed initialization procedures
;;

to pollinate [my-pollen]
  set shape (word shape "-fertilized")

  hatch-seeds 1
  [
    set color-genotype (word one-of-alleles [color-genotype] of my-pollen
                             one-of-alleles color-genotype)

    set height-genotype (word one-of-alleles [height-genotype] of my-pollen
                              one-of-alleles height-genotype)

    if random 100 < chance-mutation
    [ set height-genotype add-mutation-height height-genotype ]
    if random 100 < chance-mutation
    [ set color-genotype add-mutation-color color-genotype ]
  ]
  if show-fertilization-network?
  [
    ifelse my-pollen != self
    [ create-link-from my-pollen ]
    [
      hatch 1
      [

        set color gray  + 2
        set ycor ycor - 0.3
        pd

        set heading 90
        repeat 360
        [ fd (1 / 180) lt 1 ]
        die
      ]
    ]
  ]
end 

to add-one-wild-seed
  sprout-seeds 1
  [
    set shape "seed-wild"
    set color-genotype assign-random-color-genotype
    set height-genotype assign-random-height-genotype
    set leaf-genotype assign-random-leaf-genotype
  ]
end 

;;
;; Genotype reporters
;;

to-report assign-random-color-genotype
  report one-of ["WW" "RR" "WR" "RW"]
end 

to-report assign-random-height-genotype
  report one-of ["TT" "tt" "Tt" "tT"]
end 

to-report assign-random-leaf-genotype
  report one-of ["CC" "cc" "Cc" "cC"]
end 

to-report add-mutation-color [genotype]
  report replace-item random 2 genotype one-of ["R" "W"]
end 

to-report add-mutation-height [genotype]
  report replace-item random 2 genotype one-of ["T" "t"]
end 

to-report add-mutation-leaf [genotype]
  report replace-item random 2 genotype one-of ["C" "c"]
end 

to-report phenotype-flower-color [genotype]
  ifelse member? "R" genotype
  [
    ifelse member? "W" genotype
    [ report pink ]
    [ report red ]
  ]
  [ report white ]
end 

to-report phenotype-plant-height [genotype]
  if genotype = "tt" [ report plant-shape-2]
  report plant-shape-1
end 

to-report phenotype-leaf [genotype]
  if genotype = "cc" [report "-varigated"]
  report ""
end 

to-report one-of-alleles [genotype]
  report item random 2 genotype
end 

;;
;; Instruction-related reporters
;;

to next-season
  setup-fields
  tick
  print-instructions
  run (word "start-" season-procedure)
end 

to print-instructions
  clear-output
  output-print (word "It is now " season-name ".")
  output-print instructions
  output-print "Or you may press NEXT SEASON.\n"
end 

to-report instructions
  report item season
  (list (word "The plants have died and dropped their newly formed seeds.\n"
              "You may move the seeds to new locations or plant new wild\n"
              "seeds with using the mouse")
        "The seeds are germinating.\nYou may select a field of seeds to clear if you wish."
        "The plants are growing.\nYou may transplant the plants using the mouse."
        "You may select a field of plants to clear\nusing the mouse and the CLEAR SELECTED button."
        (word "The plants are ready for fertilization.\n"
              "If you did not pollinate with bees you can pollinate using the mouse.\n"
              "Click on the pollinator, hold the mouse button down and drag to the plant to pollinate\n"
              "When you are done pollinating you may press POLLINATE-WITH-BEES,\n"
              "which will randomly pollinate the remaining plants\n"
              "(note that plants that are not pollinated will not come back next year) or pre NEXT-SEASON") )
end 

to-report season-name
  report item season [ "winter" "early spring" "late spring" "summer" "fall"]
end 

to-report season-procedure
  report item season [ "winter" "early-spring" "late-spring" "summer" "fall"]
end 

to-report season
  report ticks mod 5
end 

to-report year
  report floor (ticks / 5)
end 


; Copyright 2007 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky over 9 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky almost 10 years ago Updated version tag Download this version
Uri Wilensky almost 10 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 10 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky over 12 years ago Model from NetLogo distribution Download this version
Uri Wilensky over 12 years ago Plant Hybridization Download this version

Attached files

File Type Description Last updated
Plant Hybridization.png preview Preview for 'Plant Hybridization' over 9 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.