迭代FASTA条目并重命名重复项

zac*_*ach 3 r bioinformatics fasta

我有一个包含大量条目的FASTA文件.尽管所有DNA序列都不同,但一些FASTA名称是相同的.如果有一个名称的多个副本,我想附加一个数字,以便它们成为唯一的名称.例如:

>NAME
ATTTTTGGGGGGTGTGTG
>NAME
ATTTTTTTTCGCGCGC
>NAME
AAACCCTTTGTG
Run Code Online (Sandbox Code Playgroud)

会成为:

>NAME_1
ATTTTTGGGGGGTGTGTG
>NAME_2
ATTTTTTTTCGCGCGC
>NAME_3
AAACCCTTTGTG
Run Code Online (Sandbox Code Playgroud)

谢谢.

更新.因为我计划在R中使用它,所以我将fasta序列导入R并将其作为数据帧df.然后我可以根据需要使用以下行重命名:

library(plyr)
ddply(df, Name_Column, transform, Column = paste(Name_Column,seq_along(Name_Column), sep=""))
Run Code Online (Sandbox Code Playgroud)

代码灵感来自这篇文章

Pie*_*rre 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
Run Code Online (Sandbox Code Playgroud)

另见Biostar:http://biostar.stackexchange.com


Mar*_*gan 5

BioconductorBiostrings套件具有

library(Biostrings)
fa = read.DNAStringSet(...)
Run Code Online (Sandbox Code Playgroud)

然后

names(fa) = make.unique(names(fa))
write.XStringSet(fa, ...)
Run Code Online (Sandbox Code Playgroud)

或其他有用的操作。