提取从BSgenome库导入的结构中包含的所有数据

时间:2018-06-13 10:49:05

标签: r data-structures bioinformatics bioconductor

我从BSgenome库中提取了感兴趣的特定数据,但我无法从其结构中导出数据。

这是代码

library(BSgenome.Hsapiens.UCSC.hg38)

genome = BSgenome.Hsapiens.UCSC.hg38
chr1 = genome$chr1
p1 = "ATC"
chrom1 = matchPattern(p1, chr1) 

我想保存 chrom1 的数据,我试过通过 write.table 但不能正常工作。

如果我打印c hrom1[1:10],它会给我以下结果

     start   end width    
 [1] 10546 10548     3 [ATC]    
 [2] 11146 11148     3 [ATC]    
 [3] 11161 11163     3 [ATC]    
 [4] 11577 11579     3 [ATC]   
 [5] 11598 11600     3 [ATC]    
 [6] 11847 11849     3 [ATC]    
 [7] 12002 12004     3 [ATC]    
 [8] 12119 12121     3 [ATC]    
 [9] 12202 12204     3 [ATC]    
[10] 12247 12249     3 [ATC]

同样聪明

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

转换为 data.frame

as.data.frame(chrom1@ranges)
#    start   end width
# 1  10546 10548     3
# 2  11146 11148     3
# 3  11161 11163     3
# ...

正如@MartinMorgan在评论中所指出的,我们可以使用 methods :: as()函数避免直接插槽访问:

as.data.frame(as(chrom1, "IRanges"))

答案 1 :(得分:1)

您可以分别致电startendwidth

df <- data.frame(start = start(chrom1), end = end(chrom1), width = width(chrom1))
#  start   end width
#1 10546 10548     3
#2 11146 11148     3
#3 11161 11163     3
#4 11577 11579     3
#5 11598 11600     3
#6 11847 11849     3

我不确定这是否适用于所有XStringsViews个类,但您可以尝试使用以下命令添加ATC列:

df <- data.frame(start = start(chrom1), end = end(chrom1), width = width(chrom1), p1=BSgenome::as.data.frame(chrom1)[,1])
#  start   end width  p1
#1 10546 10548     3 ATC
#2 11146 11148     3 ATC
#3 11161 11163     3 ATC
# ...