перебирать записи FASTA и переименовывать дубликаты - PullRequest
3 голосов
/ 19 октября 2011

У меня есть файл FASTA с большим количеством записей.Хотя все последовательности ДНК различны, некоторые из названий FASTA идентичны.Если существует несколько копий имени, я хотел бы добавить число, чтобы они стали уникальными именами.Например:

>NAME
ATTTTTGGGGGGTGTGTG
>NAME
ATTTTTTTTCGCGCGC
>NAME
AAACCCTTTGTG

станет:

>NAME_1
ATTTTTGGGGGGTGTGTG
>NAME_2
ATTTTTTTTCGCGCGC
>NAME_3
AAACCCTTTGTG

спасибо.

обновление.Так как я все равно планировал использовать это в R, я импортировал последовательность фаста в R и получил ее в виде фрейма данных, df.Затем я могу затем переименовать по желанию, используя следующую строку:

library(plyr)
ddply(df, Name_Column, transform, Column = paste(Name_Column,seq_along(Name_Column), sep=""))

код, вдохновленный этим post

Ответы [ 2 ]

5 голосов
/ 19 октября 2011

Вы можете использовать следующую команду AWK:

$ echo -e ">A\nNNNN\n>A\nNNNNNNN" |\
awk '/^>/ { printf("%s_%s\n",$0,i++);next;} { print $0;}'

>A_0
NNNN
>A_1
NNNNNNN

См. Также Биостар: http://biostar.stackexchange.com

4 голосов
/ 20 октября 2011

Biostrings пакет Биокондуктор имеет

library(Biostrings)
fa = read.DNAStringSet(...)

Тогда

names(fa) = make.unique(names(fa))
write.XStringSet(fa, ...)

или другие полезные манипуляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...