2

1 つの列に遺伝子座名があり、もう 1 つの列に 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 が長さ 2 (2 つの列だと思います) の 4 つの DNA シーケンス (例の 4 行) を持つ一種の DNAbin オブジェクトを作成しようとすると、ラベルはなく、もちろん塩基組成も機能しません。

ドキュメントはあまり明確ではありませんが、パッケージの woodmouse サンプル データで遊んだ後、各ベースを列として行列を作成し、 を使用する必要があると思いますas.DNAbin。つまり、上記の例では 4 x 84 の行列 (遺伝子座名に 1 列、配列に 83 列?)。これを行う方法に関するアドバイスはありますか?または、より良いアイデアはありますか?

ありがとう

4

1 に答える 1

2

の最初のパラメータは、行列または DNA 配列を含むリスト、またはクラス "alignment" のオブジェクトでas.DNAbinなければなりません。だから、あなたの考えは正しいです。

元の投稿の構造が与えられ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 に答える