如何用R读取多个FASTA文件?

时间:2012-02-17 12:51:01

标签: r fasta

我有以下问题:我有10个不同的FASTA文件,每个文件中有数千个序列。我想从每个fasta文件中读取所有序列,然后(使用paste)创建一个包含所有序列的大文件。

我的问题如下:如何在同一时间从不同的文件中读取?

我试过了:

a<-list.files()

然后

for (x in a) { temp<-read.table(x) seq<-summary(temp) print (seq)

但它无法正常工作。我也尝试了命令read.fasta,但它给了我一个奇怪的输出(不是所有序列)

非常感谢你的帮助,非常感谢!

的Fabio

PS。一周前我开始和R一起工作......所以,请耐心,即使这是一个愚蠢的问题!

1 个答案:

答案 0 :(得分:2)

Bioconductor有许多用于处理DNA序列的包。使用

安装ShortRead包
source("http://bioconductor.org/biocLite.R")
biocLite("ShortRead")

加载库并查阅readFasta的帮助页面

library(ShortRead)
?readFasta

找出与您想要读入的fasta文件匹配的模式(如list.files),并将与模式匹配的所有fasta文件读入单个对象

patt <- "fasta$"
fasta <- readFasta("/my/directory/containing/fasta/files", patt)

然后写出对象

writeFasta(fasta, "my_destination.fasta")

但实际上R不是连接文件的正确工具;可能你想做更多有趣的事情,其中​​一些可能会在ShortRead,Biostrings和GenomicRanges的插图中描述

browseVignettes("ShortRead")
browseVignettes("Biostrings")
browseVignettes("GenomicRanges")

Bioconductor mailing list是获得Bioconductor包支持的最佳位置。