2015-03-18 43 views
0

我有一個FASTA文件(FAS2),其具有約1000 FASTA序列,這裏是FASTA序列的夫婦例如:隨機序列FASTA序列和變化序列名

>gi|108863165-BAdV-2 
ATGGCTACTCCTTCGATGATGCCGCAGTGGTCTTACATGCACATCGCCGGGCAGGATGCCTCCGA 
>gi|108863163-BAdV-1 
ATGGCGACGCCGTCGATGATGCCCCAGTGGTCGTACATGCACATCGCCGGGCAGGATGCCTCAGA 

我擡頭網上看到很多教程使用readDNAStringSet來讀取fasta文件。所以我用這個註釋來閱讀我的文件:

fas3 <- readDNAStringSet(fas2, "fasta") 

它創建一個類似結構的data.frame(但不是data.frame)查看FASTA文件。我的問題是R中是否有任何功能我可以從fas3中隨機抽取500個fasta序列?另外,如果我想重命名特定的fasta名稱,例如(gi | 108863165-BAdV-2到BAdV-2),我該怎麼做?提前致謝!!

回答

1

fas3遵循「載體狀」接口,而不是一個data.frame,所以你可以通過從的長度產生500個數字採樣序列對象,並利用這些來子集

fas3.subset = fas3[sample(length(fas3), 500)] 

使用訪問names()<-更新的名稱,例如,

names(fas3) = sub("gi|108863165-", "", names(fas3) 

這是在幫助頁面上?DNAStringSet所示。有關Bioconductor軟件包的更多信息,請參閱Bioconductor support site以獲取更多合適的論壇。

+0

謝謝!它幫助了很多。 – kelvinfrog 2015-03-19 00:52:22

1

如果你不介意使用命令行 - 如果你知道你的FASTA標頭和序列是對線 - 你可以使用sample採樣對線。

例如,樣品500組的序列無需更換:

$ sample --lines-per-offset=2 --sample-size=500 fas2.fa > fas2.sample.fa 

運行sample --help更多選項。

你可以使用sed替代名稱:

$ sed 's/gi|108863165-BAdV-2/BAdV-2/' fas2.fa > fas2.modified.fa