我有一个包含大量条目的FASTA文件。尽管所有DNA序列都不同,但一些FASTA名称是相同的。如果有一个名称的多个副本,我想附加一个数字,以便它们成为唯一的名称。例如:
>NAME
ATTTTTGGGGGGTGTGTG
>NAME
ATTTTTTTTCGCGCGC
>NAME
AAACCCTTTGTG
会变成:
>NAME_1
ATTTTTGGGGGGTGTGTG
>NAME_2
ATTTTTTTTCGCGCGC
>NAME_3
AAACCCTTTGTG
感谢。
更新。因为我计划在R中使用它,所以我将fasta序列导入R并将其作为数据帧df。然后,我可以根据需要使用以下行重命名:
library(plyr)
ddply(df, Name_Column, transform, Column = paste(Name_Column,seq_along(Name_Column), sep=""))
受此post
启发的代码答案 0 :(得分:5)
您可以使用以下AWK命令:
$ echo -e ">A\nNNNN\n>A\nNNNNNNN" |\
awk '/^>/ { printf("%s_%s\n",$0,i++);next;} { print $0;}'
>A_0
NNNN
>A_1
NNNNNNN
另见Biostar:http://biostar.stackexchange.com
答案 1 :(得分:4)
library(Biostrings)
fa = read.DNAStringSet(...)
然后
names(fa) = make.unique(names(fa))
write.XStringSet(fa, ...)
或其他有用的操作。