Multiple allele inheritance and incomplete dominance.nlogo
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?
- Select one of five cases
- Click on the Start/reset button to confirm.
- Click on the Press and choose 2 beetles button.
- Choose two ladybug beetles in the simulation window.
- Click on the cross! button to conduct a test cross.
- Examine offspring phenotypes in the simulation window and the progeny section.
- 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.
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
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.
This model does not have any ancestors.
This model does not have any descendants.