Multiple allele inheritance and incomplete dominance.nlogo

Multiple allele inheritance and incomplete dominance.nlogo preview image

1 collaborator

Screen_shot_2018-02-02_at_12.53.50_pm lin xiang (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.2.2 • Viewed 108 times • Downloaded 9 times • Run 0 times
Download the 'Multiple allele inheritance and incomplete dominance.nlogo' 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 is based on the study from Houston (1979) in the inheritance of the color pattern of Coelophora inaequalis, commonly known as ladybug beetles, which reveals a dominance order among four alleles and incomplete dominance (referred to as codominance by Houston in the original publication) involved in three of the alleles.

How to use?

  1. Select one of five cases
  2. Click on the Start/reset button to confirm.
  3. Click on the Press and choose 2 beetles button.
  4. Choose two ladybug beetles in the simulation window.
  5. Click on the cross! button to conduct a test cross.
  6. Examine offspring phenotypes in the simulation window and the progeny section.
  7. Use Sort beetles button to sort out beetles.

How it works?

Researchers have found that the color pattern of Coelophora inaequalis is a multiallelic trait (Houston, 1979). Existing work suggests six forms of color patterns in an Australian ladybug beetle species are determined by four alleles: Cs, Cn, Cv, and Cb. A dominance order was identified among these four alleles to determine four forms. In addition, two pairs of these alleles are found to show incomplete dominance and result in the other two phenotypes.

In this simulation, gametes containing one of four alleles are first generated and randomly fuse to form beetles, which can be either homozygotes or heterozygotes. Users need to figure out the dominance order and dominance mechanisms through test crosses.

When users choose two beetles for a test cross, the gametes from one beetle randomly fuse with the gametes of the other beetle to form offspring. 45~60 offspring beetles may be produced in each generation.

CREDITS

This model was made by Dr. Lin Xiang at the University of Kentucky in 2018 and revised in 2023. If you mention or use this model in a publication, we ask that you include the citations below:

Xiang, L. (2018). Multiple allele inheritance and incomplete dominance in Ladybug Beetles. Department of STEM Education, University of Kentucky, Lexington, KY.

CC BY-NC-SA 4.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/.

References

Houston, K. J. (1979). Mosaic dominance in the inheritance of the colour patterns of Coelophora inaequalis (F.)(Coleoptera: Coccinellidae). Australian Journal of Entomology, 18(1), 45-51.

Comments and Questions

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

Click to Run Model

globals [x y num-bugs allele-num p1 p2 p-type half-population-size b-x b-y beetle-ID
  list-1
  list-2
  list-3
  list-4
  list-5
  list-6
  ]
turtles-own [genotype phenotype gender]

breed [sperms sperm]
breed [eggs egg]
Breed [bugs bug]
breed [crosses cross]

to parents
  set p1 [phenotype] of bugs with [xcor = max-pxcor - 0.5 and ycor = (max-pycor / 2 ) - 1.5]
  set p2 [phenotype] of bugs with [xcor = max-pxcor - 0.5 and ycor = (max-pycor / 2 ) + 1.5]
  set p-type word p1 " "
  set p-type word p-type "X"
  set p-type word p-type " "
  set p-type word p-type p2
end 

to start-gamates
  set half-population-size 18 + random 5                   ;set population size 45~60

if Cases = "Case 1" [                                  ; 9-spotted X black Cs > Cb (complete dominance)
  create-sperms 2 * half-population-size [
  set genotype item random 3 ["Cs" "Cb" "Cb" "Cv" "Cn"]     ;produce sperms either "Cs" or "Cb", there are more Cb
  gamete-trait]

  create-eggs 2 * half-population-size [
  set genotype item random 3 ["Cs" "Cb" "Cb" "Cv" "Cn"]     ;produce eggs either "Cs" or "Cb", there are more Cb
  gamete-trait]
]

if Cases = "Case 3" [                                  ;Cv and Cn codominace   elongated stripe, normal, and broken stripe (heterzygotes)
  create-sperms 2 * half-population-size [
  set genotype item random 2 ["Cv" "Cn" "Cb" "Cs"]     ;produce sperms either "Cv" or "Cn"
  gamete-trait]

  create-eggs 2 * half-population-size [
  set genotype item random 2 ["Cv" "Cn" "Cb" "Cs"]     ;produce eggs either "Cv" or "Cn"
  gamete-trait]
]

if Cases = "Case 2" [                                  ; 9-spotted, normal, and black Cs > Cn > Cb (complete dominance)
  create-sperms 2 * half-population-size [
  set genotype item random 3 ["Cs" "Cn" "Cb" "Cv"]     ;produce sperms of "Cs" "Cn" or "Cb"
  gamete-trait]

  create-eggs 2 * half-population-size [
  set genotype item random 3 ["Cs" "Cn" "Cb" "Cv"]     ;produce eggs of "Cs" "Cn" or "Cb"
  gamete-trait]
]

if Cases = "Case 4" [                                  ; all six forms of ladybug beetles Cs > Cn > Cb; Cv > Cb (complete dominance and codominance CvCn, CsCv)
  create-sperms 2 * half-population-size [
  set genotype item random 4 ["Cs" "Cn" "Cb" "Cv"]     ;produce sperms of "Cs" "Cn" "Cv" or "Cb"
  gamete-trait]

  create-eggs 2 * half-population-size [
  set genotype item random 4 ["Cs" "Cn" "Cb" "Cv"]     ;produce eggs of "Cs" "Cn" "Cv" or "Cb"
  gamete-trait]
]


if Cases = "Case 5" [                                  ;9-spotted, elongated stripe, 5-spotted (heterzygotes) and black; Complete dominance Cs > Cb and Cv > Cb; Cv and Cs codominace
  create-sperms 2 * half-population-size [
  set genotype item random 3 ["Cs" "Cv" "Cb" "Cn"]     ;produce sperms of "Cs" "Cv" or "Cb"
  gamete-trait]

  create-eggs 2 * half-population-size [
  set genotype item random 3 ["Cs" "Cv" "Cb" "Cn"]     ;produce eggs of "Cs" "Cv" or "Cb"
  gamete-trait]
]
end 

to gamete-trait               ;set gamete characteristics
    set shape "dot"
    if genotype = "Cb" [set color 0]
    if genotype = "Cn" [set color red]
    if genotype = "Cv" [set color sky]
    if genotype = "Cs" [set color 8]
    set size 0.1
    setxy random (max-pxcor - 1) random (max-pycor + 1)
end 

to set-tray        ;set background grid and cross area
  ask patches [ifelse pxcor < max-pxcor - 1
    [set pcolor 52 + random-float 0.25]
    [set pcolor 89 + random-float 0.25]
  ]

  create-crosses 3
    ask cross 0 [
    set shape "x"
    setxy max-pxcor - 0.5  max-pycor / 2
    set size 0.5
    set color 35]

     ask cross 1 [
    set shape "male"
    set heading 45
    setxy max-pxcor + 0.25 (max-pycor / 2) + 2
    set size 0.75
    set color 0]

     ask cross 2 [
    set shape "female"
    setxy max-pxcor + 0.25 (max-pycor / 2) - 2
    set size 0.75
    set color 0]
end 

to set-position
  setxy  random (max-pxcor - 1) random (max-pycor + 1)
  if any? other bugs-here
  [set-position]
end 

to fertilize
  ask sperms [ let mate one-of eggs
    if mate != nobody [
      hatch-bugs 1 [
        set size 0.75
        set heading 0
        set-position
        set genotype word genotype [genotype] of mate
        set-phenotype
      ]
      ask mate [die]]
    die
  ]


  ask bugs with [pxcor >= max-pxcor] [die]  ;make sure no beetles in the cross area
end 

to set-phenotype

  ;rearrange and unify genotype expression

  if genotype = "CnCs" [set genotype "CsCn"]
  if genotype = "CbCs" [set genotype "CsCb"]
  if genotype = "CvCs" [set genotype "CsCv"]
  if genotype = "CnCv" [set genotype "CvCn"]
  if genotype = "CbCn" [set genotype "CnCb"]
  if genotype = "CbCv" [set genotype "CvCb"]

  ;Define phenotype

  if genotype = "CsCs" or genotype = "CsCn" or genotype = "CsCb" [set shape "ladybug-9 spotted" set color rgb 255 140 0 set phenotype "9-spotted"]
  if genotype = "CnCn" or genotype = "CnCb" [set shape "ladybug-normal" set color rgb 255 75 0 set phenotype "normal"]
  if genotype = "CvCv" or genotype = "CvCb" [set shape "ladybug-elongated stripe" set color rgb 255 130 0 set phenotype "elongated-stripe"]
  if genotype = "CbCb" [set shape "ladybug-black" set color rgb 255 140 0 set phenotype "black"]
  if genotype = "CvCn" [set shape "ladybug-broken strip" set color rgb 255 130 0 set phenotype "broken-stripe"]
  if genotype = "CsCv" [set shape "ladybug-5 spotted" set color rgb 255 140 0 set phenotype "5-spotted"]
end 


;==================

to setup
  ca
 set-tray
 start-gamates
 fertilize

reset-ticks
end 

to mating
  ifelse count bugs with [pxcor >= max-pxcor - 1] = 2     ;ensure there are two parent beetles
  [ parents
    gametogenesis
    fertilize
    output-results]
  [user-message "Please choose 2 beetles first!"]
end 

;=================

to pick         ;choose two beetles for test cross
 clear-output
  if mouse-inside? [
    if mouse-down? [
      set x round mouse-xcor set y round mouse-ycor
      ask turtles with [pxcor = x and pycor = y]
       [(ifelse
          count bugs with [pxcor >= (max-pxcor - 1)] = 0
           [set size 1.25 setxy (max-pxcor - 0.5) ((max-pycor / 2 ) + 1.5) set gender "dad"]
          count bugs with [pxcor >= (max-pxcor - 1)] = 1
           [set size 1.25 setxy (max-pxcor - 0.5) ((max-pycor / 2 ) - 1.5) set gender "mom"])]
    ]]


  if count bugs with [pxcor >= (max-pxcor - 1)] = 2     ;Remove all other beetles once two parent beetles are chosen
  [ask bugs with [pxcor < max-pxcor - 1] [die]
   ask eggs [die]
   ask sperms [die]
   stop   ;must stop here to show parent phenotypes
  ]
end 

to gametogenesis

 ; reset-allele-num
  set half-population-size 25 + random 5

  ask bugs with [gender = "mom"] [
     (ifelse
       genotype = "CsCs" [
          hatch-eggs 2 * half-population-size [gamete-trait set genotype "Cs"]]

       genotype = "CsCn" [
          hatch-eggs half-population-size [gamete-trait set genotype "Cs"]
          hatch-eggs half-population-size [gamete-trait set genotype "Cn"]]

       genotype = "CsCb" [
          hatch-eggs half-population-size [gamete-trait set genotype "Cs"]
          hatch-eggs half-population-size [gamete-trait set genotype "Cb"]]

       genotype = "CnCn" [
          hatch-eggs 2 * half-population-size [gamete-trait set genotype "Cn"]]

       genotype = "CnCb" [
          hatch-eggs half-population-size [gamete-trait set genotype "Cn"]
          hatch-eggs half-population-size [gamete-trait set genotype "Cb"]]

       genotype = "CbCb" [
          hatch-eggs 2 * half-population-size [gamete-trait set genotype "Cb"]]

       genotype = "CvCv" [
          hatch-eggs 2 * half-population-size [gamete-trait set genotype "Cv"]]

       genotype = "CvCb" [
          hatch-eggs half-population-size [gamete-trait set genotype "Cv"]
          hatch-eggs half-population-size [gamete-trait set genotype "Cb"]]

       genotype = "CvCn" [
          hatch-eggs half-population-size [gamete-trait set genotype "Cv"]
          hatch-eggs half-population-size [gamete-trait set genotype "Cn"]]

        genotype = "CsCv" [
          hatch-eggs half-population-size [gamete-trait set genotype "Cv"]
          hatch-eggs half-population-size [gamete-trait set genotype "Cs"]])
  ]

    ask bugs with [gender = "dad"] [
     (ifelse
      genotype = "CsCs" [
          hatch-sperms 2 * half-population-size [gamete-trait set genotype "Cs"] ]

       genotype = "CsCn" [
          hatch-sperms half-population-size [gamete-trait set genotype "Cs"]
          hatch-sperms half-population-size [gamete-trait set genotype "Cn"] ]

       genotype = "CsCb" [
          hatch-sperms half-population-size [gamete-trait set genotype "Cs"]
          hatch-sperms half-population-size [gamete-trait set genotype "Cb"] ]

       genotype = "CnCn" [
          hatch-sperms 2 * half-population-size [gamete-trait set genotype "Cn"] ]

       genotype = "CnCb" [
          hatch-sperms half-population-size [gamete-trait set genotype "Cn"]
          hatch-sperms half-population-size [gamete-trait set genotype "Cb"] ]

       genotype = "CbCb" [
          hatch-sperms 2 * half-population-size [gamete-trait set genotype "Cb"] ]

       genotype = "CvCv" [
          hatch-sperms 2 * half-population-size [gamete-trait set genotype "Cv"] ]

       genotype = "CvCb" [
          hatch-sperms half-population-size [gamete-trait set genotype "Cv"]
          hatch-sperms half-population-size [gamete-trait set genotype "Cb"] ]

       genotype = "CvCn" [
          hatch-sperms half-population-size [gamete-trait set genotype "Cv"]
          hatch-sperms half-population-size [gamete-trait set genotype "Cn"] ]

       genotype = "CsCv" [
          hatch-sperms half-population-size [gamete-trait set genotype "Cv"]
          hatch-sperms half-population-size [gamete-trait set genotype "Cs"] ])
  ]
end 

to output-results   ;display parent phenotypes
  output-type p-type
end 

to set-lists
  if any? bugs with [xcor <= 9] [

        set list-1 [who] of bugs with [phenotype = "9-spotted" and xcor < max-pxcor - 1]
        set list-2 [who] of bugs with [phenotype = "black" and xcor < max-pxcor - 1]
        set list-3 [who] of bugs with [phenotype = "broken-stripe" and xcor < max-pxcor - 1]
        set list-4 [who] of bugs with [phenotype = "normal" and xcor < max-pxcor - 1]
        set list-5 [who] of bugs with [phenotype = "elongated-stripe" and xcor < max-pxcor - 1]
        set list-6 [who] of bugs with [phenotype = "5-spotted" and xcor < max-pxcor - 1]

        set list-1 sentence list-1 list-2
        set list-1 sentence list-1 list-3

        set list-4 sentence list-4 list-5
        set list-4 sentence list-4 list-6

        set list-1 sentence list-1 list-4

        sorting ]
end 

to sorting

   set b-x 0
        set b-y max-pycor
        set beetle-ID 0

        repeat length list-1
        [ask bugs with [who = item beetle-ID list-1] [setxy b-x b-y]
          ifelse b-y > 0 [set b-y b-y - 1][set b-y max-pycor set b-x b-x + 1]
          set beetle-ID beetle-ID + 1 ]
end 

There are 2 versions of this model.

Uploaded by When Description Download
lin xiang over 1 year ago fix typos Download this version
lin xiang over 1 year ago Initial upload Download this version

Attached files

File Type Description Last updated
Multiple allele inheritance and incomplete dominance.nlogo.png preview Preview for 'Multiple allele inheritance and incomplete dominance.nlogo' over 1 year ago, by lin xiang Download

This model does not have any ancestors.

This model does not have any descendants.