(************** Content-type: application/mathematica ************** Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 20606, 646]*) (*NotebookOutlinePosition[ 21286, 669]*) (* CellTagsIndexPosition[ 21242, 665]*) (*WindowFrame->Normal*) Notebook[{ Cell["\<\ MendelCreature Genetics Neutral Gender Breeding Example\ \>", "Subtitle", TextAlignment->Center], Cell[TextData[{ "\tThis notebook is an annotated walkthrough of the ", StyleBox["MendelCreature ", FontSlant->"Italic"], "genetics package, using the MendelPeas package to explore methods for \ determining dominance, trait linkage and allele frequency. Note that in \ regards to chromosomal details, MendelPeas are fictional examples, although \ they do share the traits studied by Mendel. " }], "Text", FontSize->14], Cell[TextData[{ StyleBox["Getting started\n", "Section"], "\tTo begin, we set the appropriate package directory and import the \ MendelPeas.m package" }], "Text", FontSize->14], Cell[BoxData[{ \(\(SetDirectory["\"];\)\), "\n", \(<< MendelPeas.m\)}], "Input"], Cell["\tType explains a bit about the genome we have just loaded", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(TYPE\)], "Input"], Cell[BoxData[ \("Plant genome (sexless) with self-fertilization."\)], "Output"] }, Open ]], Cell[TextData[{ "\tInstead of making an original and new population, we can load one from \ memory, so it will be the same for the walkthrough (", StyleBox["PeaPatch = MakePop[5000]", "Input"], " generates a new, random population)." }], "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(<< MendelPeasEg.mx\), "\[IndentingNewLine]", \(Length[PeaPatch]\), "\[IndentingNewLine]", \(\(Sample\ = \ Take[PeaPatch, 10];\)\), "\[IndentingNewLine]", \(ShowPop[Sample]\)}], "Input"], Cell[BoxData[ \(5000\)], "Output"], Cell[BoxData[ TagBox[GridBox[{ {"\<\"Neutral Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral \ Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral \ Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral \ Gender\"\>", "\<\"Neutral Gender\"\>"}, {"\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled \ Seeds\"\>", "\<\"Smooth Seeds\"\>", "\<\"Smooth Seeds\"\>", "\<\"Smooth Seeds\ \"\>", "\<\"Smooth Seeds\"\>", "\<\"Smooth Seeds\"\>", "\<\"Smooth \ Seeds\"\>", "\<\"Smooth Seeds\"\>"}, {"\<\"Yellow Seeds\"\>", "\<\"Yellow Seeds\"\>", "\<\"Green Seeds\"\ \>", "\<\"Yellow Seeds\"\>", "\<\"Yellow Seeds\"\>", "\<\"Green Seeds\"\>", "\ \<\"Yellow Seeds\"\>", "\<\"Green Seeds\"\>", "\<\"Green Seeds\"\>", \ "\<\"Green Seeds\"\>"}, {"\<\"Dwarf Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall Stems\"\>", \ "\<\"Dwarf Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall \ Stems\"\>", "\<\"Dwarf Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall \ Stems\"\>"}, {"\<\"Inflated Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated \ Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated \ Pods\"\>", "\<\"Constricted Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated \ Pods\"\>", "\<\"Inflated Pods\"\>"}, {"\<\"Yellow Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow \ Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow \ Pods\"\>", "\<\"Green Pods\"\>", "\<\"Green Pods\"\>", "\<\"Yellow Pods\"\>", \ "\<\"Yellow Pods\"\>"}, {"\<\"White Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White \ Flowers\"\>", "\<\"Purple Flowers\"\>", "\<\"White Flowers\"\>", "\<\"Purple \ Flowers\"\>", "\<\"Purple Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White \ Flowers\"\>", "\<\"White Flowers\"\>"}, {"\<\"Axial Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial \ Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial \ Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial \ Flowers\"\>", "\<\"Axial Flowers\"\>"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], Function[ BoxForm`e$, TableForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[TextData[{ StyleBox["Determining Dominance", "Section"], "\n\tSelect all individuals from the large population with what appear to \ be all dominant traits, and choose one of them. " }], "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(\(DomGuess\ = \ FindTraitMatches[ PeaPatch, {"\", "\", "\", "\", \ "\", "\", \ "\"}, And];\)\), "\[IndentingNewLine]", \(\(OneDom\ = \ DomGuess[\([1]\)];\)\), "\[IndentingNewLine]", \(ShowOne[OneDom]\)}], "Input"], Cell[BoxData[ InterpretationBox[GridBox[{ {"\<\"Neutral Gender\"\>"}, {"\<\"Smooth Seeds\"\>"}, {"\<\"Yellow Seeds\"\>"}, {"\<\"Tall Stems\"\>"}, {"\<\"Inflated Pods\"\>"}, {"\<\"Yellow Pods\"\>"}, {"\<\"White Flowers\"\>"}, {"\<\"Axial Flowers\"\>"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], TableForm[ {"Neutral Gender", "Smooth Seeds", "Yellow Seeds", "Tall Stems", "Inflated Pods", "Yellow Pods", "White Flowers", "Axial Flowers"}]]], "Output"] }, Open ]], Cell["\<\ \tDo the same for recessive traits, although we don't know what is \ opposite 'axial'. Might need to do only some of the traits if this \ individual doen't exist!\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(\(RecGuess\ = \ FindTraitMatches[ PeaPatch, {"\", "\", "\", "\", \ "\", "\"}, And];\)\), "\[IndentingNewLine]", \(\(OneRec\ = \ RecGuess[\([1]\)];\)\), "\[IndentingNewLine]", \(ShowOne[OneRec]\)}], "Input"], Cell[BoxData[ InterpretationBox[GridBox[{ {"\<\"Neutral Gender\"\>"}, {"\<\"Wrinkled Seeds\"\>"}, {"\<\"Green Seeds\"\>"}, {"\<\"Dwarf Stems\"\>"}, {"\<\"Constricted Pods\"\>"}, {"\<\"Green Pods\"\>"}, {"\<\"Purple Flowers\"\>"}, {"\<\"Axial Flowers\"\>"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], TableForm[ {"Neutral Gender", "Wrinkled Seeds", "Green Seeds", "Dwarf Stems", "Constricted Pods", "Green Pods", "Purple Flowers", "Axial Flowers"}]]], "Output"] }, Open ]], Cell["\<\ \tCross suspected dominant with itself. 100 % means OneDom is \ homozygous (but not necessarily dominant!), near 75% means OneDom is \ heterozygous dominant.\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(\(DomG1\ = \ Breed[OneDom, OneDom, 100];\)\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DomG1, "\"]\)}], "Input"], Cell[BoxData[ \({73, 100, 73\/100}\)], "Output"], Cell[BoxData[ \({74, 100, 37\/50}\)], "Output"], Cell[BoxData[ \({73, 100, 73\/100}\)], "Output"], Cell[BoxData[ \({81, 100, 81\/100}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"] }, Open ]], Cell["\<\ \tConfirmed Dominant: Smooth Seeds, Yellow Seeds, Tall Stems, \ Inflated Pods\t \tUnknown Homozygous: Green Pods, White Flowers, Axial Flowers \tSame test for suspected recessive. 100 % means OneRec is homozygous, near \ 75% means OneRec is actually heterozygous dominant!\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(\(RecG1\ = \ Breed[OneRec, OneRec, 100];\)\), "\[IndentingNewLine]", \(CountTrait[RecG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[RecG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[RecG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[RecG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[RecG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[RecG1, "\"]\)}], "Input"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({75, 100, 3\/4}\)], "Output"], Cell[BoxData[ \({100, 100, 1}\)], "Output"] }, Open ]], Cell["\<\ \tLooks like Green Pods are actually dominant to Yellow Pods! \tNow breed OneDom to OneRec and compare double homozygous traits (in this \ case Purple Flowers to White Flowers\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(\(DoReG1 = Breed[OneDom, OneRec, 100];\)\), "\[IndentingNewLine]", \(CountTrait[DoReG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DoReG1, "\"]\)}], "Input"], Cell[BoxData[ \({100, 100, 1}\)], "Output"], Cell[BoxData[ \({0, 100, 0}\)], "Output"] }, Open ]], Cell[TextData[{ "\tPurple Flowers are apparently dominant!\n", StyleBox["Allele frequency \n\t", "Section"], "Look at number of recessive individuals in general population. Note that \ recessive Yellow Pods and White Flowers are each actually in the majority." }], "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(wscount = CountTrait[PeaPatch, "\"]\)], "Input"], Cell[BoxData[ \({1244, 5000, 311\/1250}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(gscount\ = CountTrait[PeaPatch, "\"]\)], "Input"], Cell[BoxData[ \({2424, 5000, 303\/625}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(dscount\ = CountTrait[PeaPatch, "\"]\)], "Input"], Cell[BoxData[ \({1796, 5000, 449\/1250}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cpcount\ = CountTrait[PeaPatch, "\"]\)], "Input"], Cell[BoxData[ \({764, 5000, 191\/1250}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ypcount = CountTrait[PeaPatch, "\"]\)], "Input"], Cell[BoxData[ \({4079, 5000, 4079\/5000}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(wfcount = CountTrait[PeaPatch, "\"]\)], "Input"], Cell[BoxData[ \({2898, 5000, 1449\/2500}\)], "Output"] }, Open ]], Cell["\<\ \tHardy-Weinberg says 'frequency of recessive allele' * 'frequency \ of recessive allele' = fraction of homozygous recessives. For Wrinkled \ Seeds\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(q\ = N[\ \@wscount[\([3]\)]]\)], "Input"], Cell[BoxData[ \(0.49879855653359706`\)], "Output"] }, Open ]], Cell["\<\ \tSo 49.9% (~ 50%) of \"Seed texture\" alleles in population are \ Wrinkled recessive. \tFor Yellow Pods\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(q\ = N[\ \@ypcount[\([3]\)]]\)], "Input"], Cell[BoxData[ \(0.903216474606171`\)], "Output"] }, Open ]], Cell[TextData[{ "\tAbout 90% of \"Pod color\" alleles are Yellow recessive, which means \ that nature likely selects for Yellow Pods, despite the gene being recessive \ to Green Pods.\n", StyleBox["Finding an infrequent trait", "Section"], "\n\tBreed samples with themselves, looking for an Axial Flowers \ homozygote. " }], "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(Test1 = Breed[Sample[\([1]\)], Sample[\([1]\)], 100]; CountTrait[Test1, "\"]\)], "Input"], Cell[BoxData[ \({100, 100, 1}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Test2 = Breed[Sample[\([2]\)], Sample[\([2]\)], 100]; CountTrait[Test2, "\"]\)], "Input"], Cell[BoxData[ \({74, 100, 37\/50}\)], "Output"] }, Open ]], Cell["\<\ \tTake a sample. Approx.1 out 4 should be the 'other' \ phenotype.\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(\(FlowerSample\ = \ Take[Test2, 10];\)\), "\[IndentingNewLine]", \(ShowPop[FlowerSample]\)}], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"\<\"Neutral Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral \ Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral \ Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral Gender\"\>", "\<\"Neutral \ Gender\"\>", "\<\"Neutral Gender\"\>"}, {"\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled \ Seeds\"\>", "\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled \ Seeds\"\>", "\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled Seeds\"\>", "\<\"Wrinkled \ Seeds\"\>", "\<\"Wrinkled Seeds\"\>"}, {"\<\"Green Seeds\"\>", "\<\"Green Seeds\"\>", "\<\"Green \ Seeds\"\>", "\<\"Yellow Seeds\"\>", "\<\"Yellow Seeds\"\>", "\<\"Yellow Seeds\ \"\>", "\<\"Yellow Seeds\"\>", "\<\"Yellow Seeds\"\>", "\<\"Yellow \ Seeds\"\>", "\<\"Yellow Seeds\"\>"}, {"\<\"Tall Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall Stems\"\>", \ "\<\"Dwarf Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall \ Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall Stems\"\>", "\<\"Tall \ Stems\"\>"}, {"\<\"Inflated Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated \ Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated \ Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated Pods\"\>", "\<\"Inflated \ Pods\"\>", "\<\"Inflated Pods\"\>"}, {"\<\"Yellow Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow \ Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow \ Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow Pods\"\>", "\<\"Yellow \ Pods\"\>", "\<\"Yellow Pods\"\>"}, {"\<\"White Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White \ Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White \ Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White Flowers\"\>", "\<\"White \ Flowers\"\>", "\<\"White Flowers\"\>"}, {"\<\"Terminal Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial \ Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial Flowers\"\>", "\<\"Axial \ Flowers\"\>", "\<\"Terminal Flowers\"\>", "\<\"Terminal Flowers\"\>", \ "\<\"Terminal Flowers\"\>", "\<\"Axial Flowers\"\>"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], Function[ BoxForm`e$, TableForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell["\<\ \tMissing trait is Terminal Flowers, which are apparently very \ rare.\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(CountTrait[PeaPatch, {"\"}]\)], "Input"], Cell[BoxData[ \({0, 5000, 0}\)], "Output"] }, Open ]], Cell[TextData[{ StyleBox["Determining linkages\n", "Section"], "\tOneDom is known heterozygous for Smooth Seeds, Yellow Seeds, Tall Stems \ and Inflated Pods. OneRec is known homozygous recessive for the matching \ traits. DoRegG1 should be 50% recessive, 50% heterozygous." }], "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(CountTrait[DoReG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DoReG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DoReG1, "\"]\), "\[IndentingNewLine]", \(CountTrait[DoReG1, "\"]\)}], "Input"], Cell[BoxData[ \({41, 100, 41\/100}\)], "Output"], Cell[BoxData[ \({46, 100, 23\/50}\)], "Output"], Cell[BoxData[ \({52, 100, 13\/25}\)], "Output"], Cell[BoxData[ \({59, 100, 59\/100}\)], "Output"] }, Open ]], Cell["\<\ \tIf traits are independent, then (fraction of population with \ first trait) * (fraction of population with second trait) = (fraction of \ population with both traits), so we should expect approximately .50*.50 = .25 \ match for independent trait pairs.\ \>", "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(CountTraitMatch[DoReG1, {"\", "\"}, And]\), "\[IndentingNewLine]", \(CountTraitMatch[DoReG1, {"\", "\"}, And]\), "\[IndentingNewLine]", \(CountTraitMatch[DoReG1, {"\", "\"}, And]\), "\[IndentingNewLine]", \(CountTraitMatch[DoReG1, {"\", "\"}, And]\), "\[IndentingNewLine]", \(CountTraitMatch[DoReG1, {"\", "\"}, And]\), "\[IndentingNewLine]", \(CountTraitMatch[DoReG1, {"\", "\"}, And]\)}], "Input"], Cell[BoxData[ \({18, 100, 9\/50}\)], "Output"], Cell[BoxData[ \({26, 100, 13\/50}\)], "Output"], Cell[BoxData[ \({0, 100, 0}\)], "Output"], Cell[BoxData[ \({23, 100, 23\/100}\)], "Output"], Cell[BoxData[ \({28, 100, 7\/25}\)], "Output"], Cell[BoxData[ \({26, 100, 13\/50}\)], "Output"] }, Open ]], Cell["\<\ \tFor all combinations but one there appears to be a distribution \ near 25%, which is very likely independent. However, there is not an \ independent distribution of Smooth Seeds and Inflated Pods, as none of the \ offspring have both traits! About half are Smooth Seed/Constricted Pod, and \ the other half Wrinkled Seed/Inflated Pod, meaning they received a linked \ Wrinkled/Constricted from the recessive parent (the only possibility) and \ either a linked Wrinkled/Inflated or linked Smooth/Constricted from the \ heterozygous parent!\t So seed texture and pod condition are linked!\ \>", \ "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[ \(CountTraitMatch[DoReG1, {"\", "\"}, And]\)], "Input"], Cell[BoxData[ \({53, 100, 53\/100}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(CountTraitMatch[DoReG1, {"\", "\"}, And]\)], "Input"], Cell[BoxData[ \({47, 100, 47\/100}\)], "Output"] }, Open ]], Cell[TextData[{ StyleBox["The End\n", "Section"], "\tThe statement below was used to save the original patch in the file you \ initially loaded." }], "Text", FontSize->14], Cell[BoxData[ \(\(DumpSave["\", {PeaPatch}];\)\)], "Input"], Cell[TextData[{ "\t", StyleBox["This notebook created by Dr. Garrett R. Love for the Shodor \ Education Foundation. Copyright 2002", "SmallText"] }], "Text", FontSize->14] }, FrontEndVersion->"4.1 for Microsoft Windows", ScreenRectangle->{{0, 800}, {0, 527}}, WindowSize->{576, 525}, WindowMargins->{{Automatic, 91}, {Automatic, 11}}, StyleDefinitions -> "Classroom.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1705, 50, 108, 4, 66, "Subtitle"], Cell[1816, 56, 429, 9, 90, "Text"], Cell[2248, 67, 182, 5, 89, "Text"], Cell[2433, 74, 148, 3, 133, "Input"], Cell[2584, 79, 90, 1, 30, "Text"], Cell[CellGroupData[{ Cell[2699, 84, 37, 1, 55, "Input"], Cell[2739, 87, 83, 1, 79, "Output"] }, Open ]], Cell[2837, 91, 267, 6, 71, "Text"], Cell[CellGroupData[{ Cell[3129, 101, 222, 4, 133, "Input"], Cell[3354, 107, 38, 1, 54, "Output"], Cell[3395, 110, 2331, 40, 207, "Output"] }, Open ]], Cell[5741, 153, 219, 5, 89, "Text"], Cell[CellGroupData[{ Cell[5985, 162, 372, 7, 211, "Input"], Cell[6360, 171, 646, 17, 205, "Output"] }, Open ]], Cell[7021, 191, 203, 5, 50, "Text"], Cell[CellGroupData[{ Cell[7249, 200, 365, 7, 185, "Input"], Cell[7617, 209, 656, 17, 205, "Output"] }, Open ]], Cell[8288, 229, 198, 5, 50, "Text"], Cell[CellGroupData[{ Cell[8511, 238, 575, 8, 237, "Input"], Cell[9089, 248, 52, 1, 69, "Output"], Cell[9144, 251, 51, 1, 69, "Output"], Cell[9198, 254, 52, 1, 69, "Output"], Cell[9253, 257, 52, 1, 69, "Output"], Cell[9308, 260, 47, 1, 54, "Output"], Cell[9358, 263, 47, 1, 54, "Output"], Cell[9408, 266, 47, 1, 54, "Output"] }, Open ]], Cell[9470, 270, 313, 7, 114, "Text"], Cell[CellGroupData[{ Cell[9808, 281, 508, 7, 211, "Input"], Cell[10319, 290, 47, 1, 54, "Output"], Cell[10369, 293, 47, 1, 54, "Output"], Cell[10419, 296, 47, 1, 54, "Output"], Cell[10469, 299, 47, 1, 54, "Output"], Cell[10519, 302, 49, 1, 69, "Output"], Cell[10571, 305, 47, 1, 54, "Output"] }, Open ]], Cell[10633, 309, 216, 5, 82, "Text"], Cell[CellGroupData[{ Cell[10874, 318, 222, 3, 107, "Input"], Cell[11099, 323, 47, 1, 54, "Output"], Cell[11149, 326, 45, 1, 54, "Output"] }, Open ]], Cell[11209, 330, 295, 6, 128, "Text"], Cell[CellGroupData[{ Cell[11529, 340, 85, 1, 81, "Input"], Cell[11617, 343, 57, 1, 69, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11711, 349, 84, 1, 81, "Input"], Cell[11798, 352, 56, 1, 69, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11891, 358, 84, 1, 81, "Input"], Cell[11978, 361, 57, 1, 69, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12072, 367, 89, 1, 81, "Input"], Cell[12164, 370, 56, 1, 69, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12257, 376, 82, 1, 81, "Input"], Cell[12342, 379, 58, 1, 69, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12437, 385, 84, 1, 81, "Input"], Cell[12524, 388, 58, 1, 69, "Output"] }, Open ]], Cell[12597, 392, 187, 5, 50, "Text"], Cell[CellGroupData[{ Cell[12809, 401, 62, 1, 62, "Input"], Cell[12874, 404, 54, 1, 54, "Output"] }, Open ]], Cell[12943, 408, 144, 5, 62, "Text"], Cell[CellGroupData[{ Cell[13112, 417, 62, 1, 62, "Input"], Cell[13177, 420, 52, 1, 54, "Output"] }, Open ]], Cell[13244, 424, 354, 8, 121, "Text"], Cell[CellGroupData[{ Cell[13623, 436, 130, 2, 81, "Input"], Cell[13756, 440, 47, 1, 54, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[13840, 446, 130, 2, 81, "Input"], Cell[13973, 450, 51, 1, 69, "Output"] }, Open ]], Cell[14039, 454, 106, 4, 30, "Text"], Cell[CellGroupData[{ Cell[14170, 462, 129, 2, 81, "Input"], Cell[14302, 466, 2353, 40, 205, "Output"] }, Open ]], Cell[16670, 509, 110, 4, 30, "Text"], Cell[CellGroupData[{ Cell[16805, 517, 79, 1, 55, "Input"], Cell[16887, 520, 46, 1, 54, "Output"] }, Open ]], Cell[16948, 524, 306, 6, 109, "Text"], Cell[CellGroupData[{ Cell[17279, 534, 288, 4, 133, "Input"], Cell[17570, 540, 52, 1, 69, "Output"], Cell[17625, 543, 51, 1, 69, "Output"], Cell[17679, 546, 51, 1, 69, "Output"], Cell[17733, 549, 52, 1, 69, "Output"] }, Open ]], Cell[17800, 553, 294, 6, 70, "Text"], Cell[CellGroupData[{ Cell[18119, 563, 664, 12, 341, "Input"], Cell[18786, 577, 50, 1, 69, "Output"], Cell[18839, 580, 51, 1, 69, "Output"], Cell[18893, 583, 45, 1, 54, "Output"], Cell[18941, 586, 52, 1, 69, "Output"], Cell[18996, 589, 50, 1, 69, "Output"], Cell[19049, 592, 51, 1, 69, "Output"] }, Open ]], Cell[19115, 596, 632, 11, 150, "Text"], Cell[CellGroupData[{ Cell[19772, 611, 114, 2, 107, "Input"], Cell[19889, 615, 52, 1, 69, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[19978, 621, 113, 2, 107, "Input"], Cell[20094, 625, 52, 1, 69, "Output"] }, Open ]], Cell[20161, 629, 177, 5, 89, "Text"], Cell[20341, 636, 81, 1, 55, "Input"], Cell[20425, 639, 177, 5, 30, "Text"] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)