using System; using L=Science.Biology.PopulationGenetics; namespace ScienceTest.BiologyTest.PopulationGeneticsTest { /// /// Two genes are located in chromosome1 and chromosome2, /// respectively. /// public class EyeColor { private string result; public string Result { get{return result;} } public EyeColor() { } public void Compute() { L.Chromosome[] Ac = new L.Chromosome[22]; L.Gene g0 = new L.Gene(); // give gene Brown-blue g0.NumberOfAllele = 2; g0.ChromosomeNumber = 1; g0.StartBase = 1200; g0.EndBase = 1530; g0.FindMutation(); g0.From = 1; g0.To = 0; g0.ModifiedValue = 0.0004; g0.SetMutation(); Ac[0] = new L.Chromosome(g0); L.Gene g1 = new L.Gene(); // give gene Green-blue g1.NumberOfAllele = 2; g1.ChromosomeNumber = 2; g1.StartBase = 111530; g1.EndBase = 111860; g1.FindMutation(); g1.From = 1; g1.To = 0; g1.ModifiedValue = 0.0004; g1.SetMutation(); Ac[1] = new L.Chromosome(g1); Ac[2] = new L.Chromosome(); Ac[3] = new L.Chromosome(); Ac[4] = new L.Chromosome(); Ac[5] = new L.Chromosome(); Ac[6] = new L.Chromosome(); Ac[7] = new L.Chromosome(); Ac[8] = new L.Chromosome(); Ac[9] = new L.Chromosome(); Ac[10] = new L.Chromosome(); Ac[11] = new L.Chromosome(); Ac[12] = new L.Chromosome(); Ac[13] = new L.Chromosome(); Ac[14] = new L.Chromosome(); Ac[15] = new L.Chromosome(); Ac[16] = new L.Chromosome(); Ac[17] = new L.Chromosome(); Ac[18] = new L.Chromosome(); Ac[19] = new L.Chromosome(); Ac[20] = new L.Chromosome(); Ac[21] = new L.Chromosome(); L.Chromosome X = new L.Chromosome(); L.Chromosome Y = new L.Chromosome(); L.Mitochondria mito = new L.Mitochondria(); L.SocialGene[] sg = new L.SocialGene[1]; sg[0] = new L.SocialGene(); sg[0].NumberOfAllele = 1; L.ChromosomePair[] Cp = new L.ChromosomePair[22]; for(int i = 0; i < 22; i++) Cp[i] = new L.ChromosomePair(Ac[i]); L.ChromosomePair XX = new L.ChromosomePair(X); L.GenotypeFemale fg = new L.GenotypeFemale(Cp,XX,mito,sg); L.GenotypeMale mg = new L.GenotypeMale(Cp,X,Y,mito,sg); L.PhenotypeFemale fph = new L.PhenotypeFemale(fg); L.PhenotypeMale mph = new L.PhenotypeMale(mg); fph.MapFrom = 0; fph.MapTo = 0; fph.SetMap(); fph.MapFrom = 1; fph.MapTo = 0; fph.SetMap(); fph.MapFrom = 2; fph.MapTo = 0; fph.SetMap(); fph.MapFrom = 3; fph.MapTo = 0; fph.SetMap(); fph.MapFrom = 4; fph.MapTo = 0; fph.SetMap(); fph.MapFrom = 5; fph.MapTo = 0; fph.SetMap(); fph.MapFrom = 6; fph.MapTo = 1; fph.SetMap(); fph.MapFrom = 7; fph.MapTo = 1; fph.SetMap(); fph.MapFrom = 8; fph.MapTo = 2; fph.SetMap(); mph.MapFrom = 0; mph.MapTo = 0; mph.SetMap(); mph.MapFrom = 1; mph.MapTo = 0; mph.SetMap(); mph.MapFrom = 2; mph.MapTo = 0; mph.SetMap(); mph.MapFrom = 3; mph.MapTo = 0; mph.SetMap(); mph.MapFrom = 4; mph.MapTo = 0; mph.SetMap(); mph.MapFrom = 5; mph.MapTo = 0; mph.SetMap(); mph.MapFrom = 6; mph.MapTo = 1; mph.SetMap(); mph.MapFrom = 7; mph.MapTo = 1; mph.SetMap(); mph.MapFrom = 8; mph.MapTo = 2; mph.SetMap(); L.Mating mating = new L.Mating(); mating.ObjectiveMating(fph,mph); mating.ModifiedValue = -1.0; mating.WhichFemale = 0; mating.WhichMale = 0; mating.SetBreedParameter(); mating.ModifiedValue = -1.0; mating.WhichFemale = 1; mating.WhichMale = 1; mating.SetBreedParameter(); mating.ModifiedValue = -1.0; mating.WhichFemale = 2; mating.WhichMale = 2; mating.SetBreedParameter(); // non-random mating L.Mutation mut = new L.Mutation(fg,mg); L.Reproduction reprod = new L.Reproduction(fg,mg); L.Selection select = new L.Selection(fg,mg); L.PopulationEquation eq = new L.PopulationEquation(mating,mut,reprod, select); // non-random mating eq.HowManyTimes = 50000; eq.Compute(); foreach(double k in eq.AdultFemalePopulation) result += Convert.ToString(k)+"\r\n"; result += "------\r\n"; foreach(double k in eq.AdultMalePopulation) result += Convert.ToString(k)+"\r\n"; result += eq.InfantMortality(); for(int k = 0; k < 9; k++) { for(int i = 0; i < 9; i++) { double kk = eq.MatingFactor[k,i]; result += Convert.ToString(kk)+"\t"; } result += "\r\n"; } } } }