【问题标题】:How to split and write to a file for S4 object in R如何在 R 中拆分和写入 S4 对象的文件
【发布时间】:2011-11-11 14:46:39
【问题描述】:

我有一个 S4 类的对象,如下所示:

> gadem
   Object of class 'gadem' 
   This object has the following slots: 
   motifs,pwm,consensus,align,name,seq,chr,start,end,strand,seqID,pos,pval,fastaHeader
> 加德姆[[1]] “主题”类的对象 插槽“pwm”: 1 2 3 4 5 6 7 8 9 10 11 0.3404 0 0.0000 0.6375 0.2723 0.3173 0 0.0002 0.3126 0 0.4969 C 0.4281 0 0.8708 0.1474 0.0767 0.1122 0 0.0000 0.0981 1 0.2558 G 0.1414 0 0.0000 0.0361 0.4153 0.5088 0 0.1134 0.0532 0 0.0000 T 0.0901 1 0.1292 0.1790 0.2357 0.0617 1 0.8864 0.5361 0 0.2473 插槽“共识”: [1]“mTCAnrTTwCm” 插槽“对齐列表”: [[1]] “对齐”类的对象 插槽“序列”: [1] “CTCAGGTTTCA” 插槽“chr”: [1] “chr12” 插槽“开始”: [1] 29470324 插槽“结束”: [1] 29470423 插槽“链”: [1] "+" 插槽“seqID”: [1] 5239 插槽“位置”: [1] 67 插槽“pval”: [1] 1.862121e-09 插槽“fastaHeader”: [1] 5239 [[2]] “对齐”类的对象 插槽“序列”: [1] “CTCAGGTTTCA” 插槽“chr”: [1] "chr18" 插槽“开始”: [1] 4862453 插槽“结束”: [1] 4862571 插槽“链”: [1] "+" 插槽“seqID”: [1] 12645 插槽“位置”: [1] 68 插槽“pval”: [1] 1.862121e-09 插槽“fastaHeader”: [1] 12645

从这个对象,我想生成一个包含 Slot Seq 列的文件 |插槽字符 |插槽开始 |槽尾 |槽钢 |插槽 seqID |插槽位置 |插槽 pval |槽 fastaHeader.

如何从上面的 S4 对象生成和编写这样的 .txt 文件?

【问题讨论】:

标签: r s4


【解决方案1】:

具有这些插槽的 gadem-object 中的项目位于 alignList 插槽中。 rGADEM 包中描述的提取器功能似乎并不多,所以@Martin Morgans cmets 是正确的,但在这里并不完全有帮助。我没有从showMethods( classes="gadem") 那里得到太多帮助。如果你想在 'gadem' 的 alignList 槽中显示第一个 align-class 对象,你可以输入:

gadem[[1]]@alignList[[1]]

您可以通过以下方式获取此类对象的数量:

length(gadem[[1]]@alignList)

如果您想将它们保存到二进制 R 文件中,以便以后可以load-ed,您可以使用类似:

algns <- gadem[[1]]@alignList
save(algns, file="testgadem.rdta")

使用文章“发现和分析 DNA 序列基序:rGADEM 包”中的示例。通过 Arnaud Droit 和 Raphael Gottardo,可以使用此循环将 alignList 项提取到常规数据框中:

dfrm <- data.frame( Seq=rep(NA, 54), chr=NA, start =NA, end =NA, strand=NA, 
                    seqID=NA, pos=NA, pval =NA, fastaHeader=NA)  

for (i in 1:54) {  dfrm[i, "Seq"] <- gadem[[1]]@alignList[[i]]@seq
               dfrm[i, "chr"] <- gadem[[1]]@alignList[[i]]@chr
              dfrm[i, "start"] <- gadem[[1]]@alignList[[i]]@start
              dfrm[i, "end"] <- gadem[[1]]@alignList[[i]]@end
              dfrm[i, "start"] <- gadem[[1]]@alignList[[i]]@start
              dfrm[i, "strand"] <- gadem[[1]]@alignList[[i]]@strand
              dfrm[i, "seqID"] <- gadem[[1]]@alignList[[i]]@seqID
              dfrm[i, "pos"] <- gadem[[1]]@alignList[[i]]@pos
              dfrm[i, "pval"] <- gadem[[1]]@alignList[[i]]@pval
              dfrm[i, "fastaHeader"] <- gadem[[1]]@alignList[[i]]@fastaHeader}
 str(dfrm)
#--------------------
'data.frame':   54 obs. of  9 variables:
 $ Seq        : chr  "CTGTGTCAACAG" "CTGTGTAAACAC" "CTGAGTCAACAC" "GTGAGTCAACAG" ...
 $ chr        : chr  "chr1" "chr1" "chr1" "chr1" ...
 $ start      : int  202320096 21451068 22547577 117197889 188010599 36725231 144254018 35024860 35024860 43552181 ...
 $ end        : int  202320297 21451269 22547778 117198090 188010800 36725432 144254219 35025061 35025061 43552382 ...
 $ strand     : chr  "+" "-" "-" "-" ...
 $ seqID      : int  23 26 9 8 45 15 30 50 50 38 ...
 $ pos        : int  93 98 121 82 183 160 142 21 117 104 ...
 $ pval       : num  2.48e-07 4.44e-07 5.68e-07 6.85e-07 1.31e-06 ...
 $ fastaHeader: int  23 26 9 8 45 15 30 50 50 38 ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多