2

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

受这篇文章启发的代码

4

2 回答 2

5

BioconductorBiostrings包具有

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

然后

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

或其他有用的操作。

于 2011-10-20T13:35:20.913 回答
4

您可以使用以下 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

于 2011-10-19T05:24:58.550 回答