Search code examples
rr-s4bioconductor

In R, how do I set an S4 class based on another object's class


I need to create an object of type ShortReadQ from Bioconductor's ShortRead library.

ShortReadQ 'signature(sread = "DNAStringSet", quality =
          "QualityScore", id = "BStringSet")'

The quality slot needs to be an object inheriting from QualityScore, of which I can easily determine from another ShortReadQ object that I wish to emulate.

> class(quality(anotherObject))
[1] "SFastqQuality"
attr(,"package")
[1] "ShortRead"

What is the best way to use that information ("SFastqQuality") in the contructor argument?

newObject<-ShortReadQ(sread=...,
             quality=SFastqQuality(...), 
             id=...)

Solution

  • thanks for your responses. they lead me to a solution that works

    newObject<-ShortReadQ(sread=...,
                 quality=new(Class=class(quality(anotherObject)),theFirstParameter=...), 
                 id=...)