我有以下问题:我有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一起工作......所以,请耐心,即使这是一个愚蠢的问题!
答案 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包支持的最佳位置。