这是一个非常基本的问题......我敢肯定它写在这里的某个地方......我正在尝试创建一个新变量,告诉我三人组中是否存在孟德尔违反(遗传学数据)
例如(对于那些不了解遗传学的人):对于一个家庭(每行一个),我将父亲、母亲和孩子的基因型表示为 A/G、G/A、G/G(作为单独的变量)。我想创建一个新的 0/1 或 False/True 变量,告诉我 Child 的等位基因 1 是否在母亲基因型的等位基因或父亲基因型的任一等位基因中可见。等位基因 2 也是如此。
我尝试在 R 中按如下方式使用正则表达式:
vcf_GT$MVLR <- regexpr(c(sapply(strsplit(as.character(vcf_GT[,10]),"/"),function(x) x[1])),
(sapply(strsplit(as.character(vcf_GT[,10]),"/"),function(x) x[2])),
(c(c(sapply(strsplit(as.character(vcf_GT[,9]),"/"),function(x) x[1])),
(sapply(strsplit(as.character(vcf_GT[,9]),"/"),function(x) x[2])),
c(sapply(strsplit(as.character(vcf_GT[,8]),"/"),function(x) x[1])),
(sapply(strsplit(as.character(vcf_GT[,8]),"/"),function(x) x[2]))))) > 0
第 10 列代表孩子的基因型,第 9 列和第 8 列分别代表母亲和父亲的基因型。这很乏味,我可能在这里的某个地方忘记了括号。
必须有一种更简单的方法来与父母检查孩子的基因型。
提前致谢!
PS如果我没有意义 - 我会尝试添加更多细节。
编辑:虽然我的代码实际上是一大行,但我已根据要求添加了返回值,因此更易于阅读(尽管如此,无论如何都很难:))