2015-02-24 2 views
0

У меня есть файл FASTA, и я прочитал файл FASTA с помощью «read.delim» в R. Соответствующий data.frame выглядит следующим образом:Нарезка data.frame в 2 колонки

>tm_sd_1256_2_1 
MJAKDHRZTASDJASJDKASJDURUJDFLSDJFSDIFJKSDFKSJDFLJSDLFD 
ASDJASDJ 
>tm_sd_5672_1_2 
AIZZTQBCSKLKDSHDADBCMSJHKQUWIRJHJJKKDLJSGDHASGDZGDHGHAGSDZASDASDVASGASDHGCAHGS 
SADASDA[sample.fasta file][1] 
>tm_sd_543_1_2 
MUZTREQWERNBVXCYMNMVHZTOPOPOEURDASDOPOQWEUZQUIZRZIRIEIWUEWASDHASHDAHSDHAKHHSDHASHDJASHDAHUWIEUROWUOERUOWEUROOWWWW 
>tm_sd_212_0_2 
MTZTPSPASDASZDATSZGZASDZATSDASDARSDASDASDASDASDZTASZDTAXAYXFASTDRASRZWUEWERZWERZ 

Я хотел бы разделите этот data.frame на два столбца. Один столбец для имен последовательности и другого столбца для соответствующих последовательностей.

Я создал data.frame и сохранил имена последовательностей в одном столбце, но когда я попытался сохранить соответствующие последовательности в другом столбце, он бросил мне сообщение о том, что замена имеет 55 строк, а данные имеют 436 строк.

Следующий код, который я попробовал, и он дал мне ошибку следующим образом:

new_DF=NULL 
new_DF$names=as.data.frame(names(fasta_seq)) 
new_DF$sequences=as.data.frame(fasta_seq) 

Как я могу добиться этого с помощью R. любезно наставит меня.

+0

Могли бы вы предоставить воспроизводимый пример и весь код, который вы претендуете? Я действительно не понимаю, что именно я должен вам помочь. Обратите внимание, что data.frame состоит из векторов, а не дополнительных data.frames. – nikaltipar

ответ

0

Попробуйте

lines <- readLines('deena.fasta') 
indx <- grepl('>', lines) 
Sequence <- tapply(seq_along(indx),cumsum(indx), FUN=function(x) 
      paste(lines[tail(x,-1)], collapse="")) 
d1 <- data.frame(names=lines[indx], Sequence, stringsAsFactors=FALSE) 
head(d1,2) 
#   names 
#1 >tm_sd_1256_2_1 
#2 >tm_sd_5672_1_2 
                      #       Sequence 
# 1            MJAKDHRZTASDJASJDKASJDURUJDFLSDJFSDIFJKSDFKSJDFLJSDLFDASDJASDJ 
# 2 AIZZTQBCSKLKDSHDADBCMSJHKQUWIRJHJJKKDLJSGDHASGDZGDHGHAGSDZASDASDVASGASDHGCAHGSSADASDA[sample.fasta file][1] 
Смежные вопросы