Как использовать as.DNAbin {ape} с последовательностями ДНК, хранящимися во фрейме данных?

У меня есть фреймворк с названиями локусов в одном столбце и последовательностями ДНК в другом. Я пытаюсь использовать as.DNAbin{ape} или что-то подобное для создания объекта ДНКбин.

Вот несколько примеров данных:

х <- структура (с ( "55548", "43297", "35309", "34468", "AATTCAATGCTCGGGAAGCAAGGAAAGCTGGGGACCAACTTCTCTTGGAGACATGAGCTTAGTGCAGTTAGATCGGAAGAGCA", "AATTCCTAAAACACCAATCAAGTTGGTGTTGCTAATTTCAACACCAACTTGTTGATCTTCACGTTCACAACCGTCTTCACGTT", "AATTCACCACCACCACTAGCATACCATCCACCTCCATCACCACCACCGGTTAAGATCGGAAGAGCACACTCTGAACTCCAGTC", "AATTCTATTGGTCATCACAATGGTGGTCCGTGGCTCACGTGCGTTCCTTGTGCAGGTCAACAGGTCAAGTTAAGATCGGAAGA"), .dim = с (4L, 2L))

Если я попробую y <- as.DNA(x) R создаст своего рода объект DNAbin с 4 последовательностями ДНК (4 строки в примере) длиной 2 (два столбца, я полагаю), меток не будет, и, конечно, базовая композиция тоже не работает. .

Документация не очень ясна, но, поиграв с данными примера woodmouse пакета, я думаю, что мне нужно создать матрицу с каждой базой в качестве столбца, а затем использовать as.DNAbin. Т.е. в приведенном выше примере матрица 4 x 84 (1 столбец для имени локуса и 83 для последовательностей?). Есть какие-нибудь советы, как это сделать? Или какая-нибудь идея получше?

Спасибо


person A.Mstt    schedule 14.01.2014    source источник


Ответы (1)


Первый параметр 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 
person redmode    schedule 14.01.2014
comment
Большое спасибо, это работает. Небольшое редактирование (настолько маленькое, что не позволяет мне это сделать: во вступительном параграфе должно быть написано as.DNAbin, а не as.DNA - person A.Mstt; 14.01.2014