我使用seqinr包读取某个带有一些基因的fasta文件。现在每个基因都有一些属性给我一个这样的一行:
> getAnnot(g[1])
">Translation:ENSANGP00000020176 Database:core Gene:ENSANGG00000017687 Clone:AAAB01008888 Contig:AAAB01008888_84 Chr:2R Basepair:42989807 Status:known"
我希望结果为Gene:ENSANGG00000017687
由于 这是我的代码
##rm(list=ls())
library(seqinr)
g<-seqinr::read.fasta('frthomas.fasta')
g2<-getAnnot(g[1:500])
答案 0 :(得分:1)
您也可以在此处使用regexec
。例如,如果您的字符串存储在a
sapply(regmatches(a, regexec("Gene:(\\w+)\\b",a)), `[`, 2)
[1] "ENSANGG00000017687"
这里我们采用列表中的第二个元素来获取基因值。如果您还想要“Gene:”部分,请将2更改为1。
答案 1 :(得分:0)
在我们使用strsplit
> string <-
">Translation:ENSANGP00000020176 Database:core Gene:ENSANGG00000017687 Clone:AAAB01008888 Contig:AAAB01008888_84 Chr:2R Basepair:42989807 Status:known"
> unlist(strsplit(string, " "))[3]
# [1] "Gene:ENSANGG00000017687"