I am doing a very simple simulation using hardy-weinberg (for all you genetics junkies) and I am having a terrible time plotting out the frequencies of allele (0,1) frequencies and finally genotypes (0,1,2) frequencies over the course of a 100 generations. I am stuck trying to figure out R's matrices.
N = 30 # Size population in each line
lineN = 100 # Number of family lines
Genes0 = array(NA, dim=c(lineN, 2*N))
# Randomly form genotypes by sample function / 30:70 probabilites
# In sample x=c(0:1) represents a and A (30:70) alleles of a gene
for (i in 1:lineN) {
Genes0[i, ] = sample(x=c(0:1), size=10, replace=T, prob=c(0.3,0.7))
}
generationN = 100
ParentGenes = Genes0
for (g in 1:generationN) {
ChildGenes = array(NA, dim=c(lineN, 2*N))
for (i in 1:lineN) {
ChildGenes[i, ] = sample(ParentGenes[i, ], replace=T)
}
}
ParentGenes = ChildGenes
table(ChildGenes)/(lineN*2*N) # Allele frequencies
#Convert allele to genotypes: AA <=> 2; Aa / aA <=> 1; aa <=> 0.
Genotypes = array(NA, dim=c(lineN, N))
for (j in 1:N) {
Genotypes[, j] = ChildGenes[, 2*j-1] + ChildGenes[, 2*j]
}
table(Genotypes)/(lineN*N) # Genotype frequencies.