Description Usage Arguments Examples
Add an allele the members of a population. It is possible to add dominant and recessive alleles to each member of a population based on Hardy-Weinberg proportions.
Moreover, it add that specific allele was added to the population in the form a geneSite
object.
1 | AddAllele(population, selectionAllele, alleleFreq)
|
population |
An object of type |
selectionAllele |
An object of type |
alleleFreq |
The frequency of the dominant allele in the population. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (population, selectionAllele, alleleFreq)
{
alleleList = c(population@alleles, selectionAllele)
indList = population@members
nIndivid = length(indList)
freq = GenotypeProportions(alleleFreq)
alleleA = Allele(location = selectionAllele@location, type = toupper(selectionAllele@type))
allelea = Allele(location = selectionAllele@location, type = tolower(selectionAllele@type))
indPerPop = round(c(nIndivid * freq$fAA, nIndivid * freq$fAa,
nIndivid * freq$faa))
if (sum(indPerPop) != nIndivid) {
warning("Not possible to plug an allele with these frequencies.\n Rounding up the aa genotype individuals.")
indPerPop[3] = nIndivid - (indPerPop[1] + indPerPop[2])
}
genot = rep(c("AA", "Aa", "aa"), times = indPerPop)
genot = sample(genot)
for (i in 1:nIndivid) {
if (genot[i] == "AA") {
indList[[i]]@chromosome1@alleles = c(indList[[i]]@chromosome1@alleles,
alleleA)
indList[[i]]@chromosome2@alleles = c(indList[[i]]@chromosome2@alleles,
alleleA)
}
else if (genot[i] == "Aa") {
indList[[i]]@chromosome1@alleles = c(indList[[i]]@chromosome1@alleles,
alleleA)
indList[[i]]@chromosome2@alleles = c(indList[[i]]@chromosome2@alleles,
allelea)
}
else if (genot[i] == "aa") {
indList[[i]]@chromosome1@alleles = c(indList[[i]]@chromosome1@alleles,
allelea)
indList[[i]]@chromosome2@alleles = c(indList[[i]]@chromosome2@alleles,
allelea)
}
else {
return("There is an unrecognized genotype")
}
}
output = Population(members = indList, alleles = unlist(alleleList))
validObject(output)
return(output)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.