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

时间:2011-10-19 01:16:44

标签: r bioinformatics fasta

我有一个包含大量条目的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

启发的代码

2 个答案:

答案 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)

BiostringsBioconductor个包

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

然后

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

或其他有用的操作。