2

我有一个数据框,其中一列是基因座名称,另一列是 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 创建一种具有 4 个 DNA 序列(示例的 4 行)长度为 2(我假设为两列)的 DNAbin 对象,则没有标签,当然碱基组合也不起作用。

文档不是很清楚,但是在玩过包的woodmouse示例数据之后,我认为我需要做的是创建一个矩阵,每个基数为一列,然后使用as.DNAbin. 即在上面的示例中,一个 4 x 84 矩阵(1 列用于基因座名称,83 用于序列?)。关于如何做到这一点的任何建议?还是有更好的主意?

谢谢

4

1 回答 1

2

的第一个参数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 
于 2014-01-14T15:03:20.320 回答