我从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]
同样聪明
任何人都可以帮助我吗?
答案 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)
您可以分别致电start
,end
和width
。
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
# ...