使用R代码:
library(pegas)
nucl <- as.DNAbin(c("a", "c", "g", "t"))
seq.gen <- function() {
res <- sample(nucl, size = length.seqs, replace = TRUE, prob = rep(0.25, 4))
}
res <- matrix(rep(seq.gen(), num.seqs), byrow = TRUE, nrow = num.seqs)
class(res) <- "DNAbin"
让我们说上面的代码生成了以下两个个体(Ind 1和Ind 2),每个个体都共享DNA序列AGGCTA(长度= 6)。
Ind 1 AGGCTA
Ind 2 AGGCTA
我现在想以某种概率(例如alpha)将一些Gs和一些Cs更改为Ts,并以其他某种概率将某些As更改为Cs,As Ts,Gs更改为Cs和将Gs更改为Ts(例如,beta),这样Ind 1和Ind 2就会有不同的序列,并且在长度上的某些位置对于两个人都是相同的。
是否有一个很好的,干净的方法可以对sample()执行此操作?