从R中获取FASTA annots的信息

时间:2014-10-04 12:30:24

标签: r sequence bioinformatics fasta

我有一个大型的FASTA文件,我需要为一个类进行分析。

我在How to search and isolate attributes of FASTA formatted text in R问题中找到了帮助。但是,我仍然无法操纵数据 使用函数getAnnots(),我得到了一个" annots"采用以下格式:

>annots
[[i]]
[1] ">SourceAccessionCode | StrainName | type / subtupe | OtherInfo | "

我想将此列表格式更改为数据框,其中列表中的每个元素(每个元素在一个单独的行上)被拆分为四列(每个列包含上述示例中的信息)。

我尝试了strsplit()函数与sapply()for循环的不同组合,但无济于事。
即使使用它自己的strsplit()也会得到令人不满意的结果

  

strsplit(GISAnnots [[i]],split =" |")       [[一世]]        [1]"> sourceAccessionCode" " |" " StrainName" " |"
       [5]"类型" " /" "子类型" " |"
       [9]" MoreInfo" " |"

使用for循环会得到以下结果

> info <- for (i in 1:length(GISAnnots))
+   strsplit(GISAnnots[[i]], split = " | ")
> info
NULL  

我道歉我没有具体的例子,因为我无法想出一个展示作品的例子,由于版权限制,我不能用我自己的数据作为例子。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这里有一些数据

elt = ">SourceAccessionCode | StrainName | type / subtupe | OtherInfo | "
lst = list(elt, elt))

可能第一个问题是这是一个列表,但您希望它不被列出。对于不太大的数据,一个巧妙的技巧是假装文本输入到read.delim()或类似的

> read.delim(text=unlist(lst), sep="|", header=FALSE, strip.white=TRUE)
                    V1         V2             V3        V4 V5
1 >SourceAccessionCode StrainName type / subtupe OtherInfo NA
2 >SourceAccessionCode StrainName type / subtupe OtherInfo NA

可能会添加stringsAsFactors=FALSEBiostrings包还有readDNAStringSet()用于处理fasta文件,其中fasta序列的名称将使用names(readDNAStringSet('your.fasta'))

检索