我有一个数据框,其中一列包含基因座名称,另一列包含 DNA 序列。我正在尝试使用 as.DNAbin{ape}
或类似的方法来创建 DNAbin 对象。
这里是一些示例数据:
x <- structure(c("55548", "43297", "35309", "34468", "AATTCAATGCTCGGGAAGCAAGGAAAGCTGGGGACCAACTTCTCTTGGAGACATGAGCTTAGTGCAGTTAGATCGGAAGAGCA", "AATTCCTAAAACACCAATCAAGTTGGTGTTGCTAATTTCAACACCAACTTGTTGATCTTCACGTTCACAACCGTCTTCACGTT", "AATTCACCACCACCACTAGCATACCATCCACCTCCATCACCACCACCGGTTAAGATCGGAAGAGCACACTCTGAACTCCAGTC", "AATTCTATTGGTCATCACAATGGTGGTCCGTGGCTCACGTGCGTTCCTTGTGCAGGTCAACAGGTCAAGTTAAGATCGGAAGA"), .Dim = c(4L, 2L))
如果我尝试y <- as.DNA(x)
R 创建了一种 DNAbin 对象,其中有 4 个 DNA 序列(示例中的 4 行),长度为 2(我假设是两列),没有标签,当然碱基组合也不起作用。
文档不是很清楚,但是在使用了包的 woodmouse 示例数据之后,我认为我需要做的是创建一个矩阵,其中每个碱基作为一列,然后使用 as.DNAbin
。 IE。在上面的例子中,一个 4 x 84 矩阵(1 列用于位点名称,83 列用于序列?)。关于如何做到这一点有什么建议吗?或者有更好的主意吗?
谢谢
最佳答案
as.DNAbin
的第一个参数应该是包含 DNA 序列的矩阵或列表,或者“对齐”类的对象。所以,你的想法是对的。
鉴于x
是原始帖子的结构,下面的代码准备矩阵y
:
y <- t(sapply(strsplit(x[,2],""), tolower))
rownames(y) <- x[,1]
然后as.DNAbin(y)
显示:
4 DNA sequences in binary format stored in a matrix.
All sequences of same length: 83
Labels: 55548 43297 35309 34468
Base composition:
a c g t
0.289 0.262 0.205 0.244
关于r - 如何将 as.DNAbin{ape} 与存储在数据框中的 DNA 序列一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21113626/