[Bioc-devel] show method for CompressedVRangesList-class
Gabe Becker
becker.gabe at gene.com
Wed Feb 25 17:52:50 CET 2015
Why does splitting a VRanges give a GRangesList with VRanges objects as
elements? Seems like it should return a VRangesList.
> spl = split(vr, sampleNames(vr))
> class(spl)
[1] "GRangesList"
attr(,"package")
[1] "GenomicRanges"
> class(spl[[1]])
[1] "VRanges"
attr(,"package")
[1] "VariantAnnotation"
~G
On Wed, Feb 25, 2015 at 8:39 AM, Michael Lawrence <lawrence.michael at gene.com
> wrote:
> Construction will take longer; the savings are in the accessing of the
> elements. But this seems like too much longer, so I will look into it.
>
> On Wed, Feb 25, 2015 at 8:12 AM, Robert Castelo <robert.castelo at upf.edu>
> wrote:
>
> > my current reason to prefer a CompressedVRangesList object over a
> > SimpleVRangesList object is that i find one order of magnitude difference
> > in creation time in each of these classes of objects:
> >
> > library(VariantAnnotation)
> >
> > fl <- system.file("extdata", "CEUtrio.vcf.bgz",
> > package="VariantFiltering")
> >
> > vcf <- readVcf(fl, genome="hg19")
> > vr <- as(vcf, "VRanges")
> > length(vr)
> > [1] 15000
> >
> > ## create a VRangesList object
> > system.time(vrl <- do.call("VRangesList", split(vr, sampleNames(vr))))
> > user system elapsed
> > 0.247 0.004 0.252
> >
> > ## create a CompressedVRangesList object
> > system.time(cvrl <- new("CompressedVRangesList", split(vr,
> > sampleNames(vr))))
> > user system elapsed
> > 0.019 0.000 0.019
> >
> > 0.252/0.019
> > [1] 13.26316
> >
> > with a larger vcf differences increase:
> >
> > [... load vcf, coerce to VRanges ...]
> > length(vr)
> > [1] 25916
> >
> > system.time(vrl <- do.call("VRangesList", split(vr, sampleNames(vr))))
> > user system elapsed
> > 2.672 0.000 2.676
> >
> > system.time(cvrl <- new("CompressedVRangesList", split(vr,
> > sampleNames(vr))))
> > user system elapsed
> > 0.014 0.000 0.014
> >
> > 2.676 / 0.014
> > [1] 191.1429
> >
> >
> > so maybe i'm using the wrong way to construct a VRangesList object, but
> > according to our last conversation about this, there was no obvious
> default
> > fast way to do it, starting from a VRanges object:
> >
> > https://stat.ethz.ch/pipermail/bioc-devel/2015-January/006905.html
> >
> > it would be great if there's a fast way to do this kind of construction.
> >
> > thanks,
> >
> > robert.
> >
> > On 02/25/2015 04:42 PM, Michael Lawrence wrote:
> >
> >> If you're storing data on a relatively small number of individuals (say,
> >> hundreds), you should use SimpleVRangesList, not CompressedVRangesList.
> >>
> >> On Wed, Feb 25, 2015 at 7:10 AM, Robert Castelo <robert.castelo at upf.edu
> >> <mailto:robert.castelo at upf.edu>> wrote:
> >>
> >> i see you point, the logic i was thinking about is to use a list of
> >> VRanges objects to hold separately the variants of multiple
> >> individuals, with one VRanges object per individual.
> >>
> >> if i type the name of such a list object on the R shell, having the
> >> GRangesList show method, i feel i do not see much information
> >> because the screen just scrolls up tens or hundreds of lines
> >> specifiying variants per individual. however, the concise appearance
> >> of something like a VRangesList:
> >>
> >> > vrl
> >> VRangesList of length 10
> >> names(32): S1 S2 S3 S4 ... S7 S8 S9 S10
> >>
> >> at least suggests the user that the object holding the variants has
> >> information for 10 samples and belongs to the class 'VRangesList'.
> >>
> >> i thought this made general sense but i'm fine if you feel this
> >> interpretation does not warrant such a change.
> >>
> >> cheers,
> >>
> >> robert.
> >>
> >> On 02/25/2015 01:25 AM, Michael Lawrence wrote:
> >>
> >> Why not have the SimpleVRangesList be shown like
> >> CompressedVRangesList,
> >> for consistency with GRangesList? In other words, the opposite
> >> of what
> >> you propose. A strong argument could also be made that a
> >> SimpleGenomicRangesList should be shown like a GRangesList.
> >> Unless there
> >> is some aversion to the more verbose output....
> >>
> >> On Tue, Feb 24, 2015 at 2:36 PM, Robert Castelo
> >> <robert.castelo at upf.edu <mailto:robert.castelo at upf.edu>
> >> <mailto:robert.castelo at upf.edu
> >>
> >> <mailto:robert.castelo at upf.edu>__>> wrote:
> >>
> >> so, yes, but IMO rather than inheriting the show method
> from
> >> a
> >> GRangesList, i think that the show method for
> >> CompressedVRangesList
> >> objects should be inherited from a VRangesList object.
> >> right now
> >> this is the situation:
> >>
> >> library(VariantAnnotation)
> >>
> >> example(VRangesList)
> >> vrl
> >> VRangesList of length 2
> >> names(2): sampleA sampleB
> >>
> >> cvrl <- new("CompressedVRangesList", split(vr,
> >> sampleNames(vr)))
> >> cvrl
> >> CompressedVRangesList object of length 2:
> >> $a
> >> VRanges object with 1 range and 1 metadata column:
> >> seqnames ranges strand ref
> alt
> >> totalDepth refDepth altDepth
> >> <Rle> <IRanges> <Rle> <character> <characterOrRle>
> <integerOrRle>
> >> <integerOrRle> <integerOrRle>
> >> [1] chr1 [1, 5] + T
> >> C 12 5 7
> >> sampleNames softFilterMatrix | tumorSpecific
> >> <factorOrRle> <matrix> | <logical>
> >> [1] a TRUE | FALSE
> >>
> >> $b
> >> VRanges object with 1 range and 1 metadata column:
> >> seqnames ranges strand ref alt totalDepth refDepth
> >> altDepth
> >> sampleNames softFilterMatrix |
> >> [1] chr2 [10, 20] + A T 17 10
> >> 6 b FALSE |
> >> tumorSpecific
> >> [1] TRUE
> >>
> >> -------
> >> seqinfo: 2 sequences from an unspecified genome; no
> >> seqlengths
> >>
> >> would it be possible to have the VRangesList show method
> for
> >> CompressedVRangesList objects?
> >>
> >> robert.
> >>
> >>
> >>
> >> On 2/24/15 7:24 PM, Michael Lawrence wrote:
> >>
> >> I think you might be missing an import. It should
> >> inherit the
> >> method for GRangesList.
> >>
> >> On Tue, Feb 24, 2015 at 9:53 AM, Robert Castelo
> >> <robert.castelo at upf.edu <mailto:robert.castelo at upf.edu>
> >> <mailto:robert.castelo at upf.edu
> >> <mailto:robert.castelo at upf.edu>__>> wrote:
> >>
> >> hi,
> >>
> >> i'm using the CompressedVRangesList class in
> >> VariantFiltering
> >> to hold variants and their annotations across
> >> multiple samples
> >> and found that there was no show method for this
> >> class (unless
> >> i'm missing the right import here) so i made one
> >> within
> >> VariantFiltering by copying&pasting from other
> >> similar classes:
> >>
> >> setMethod("show",
> >> signature(object="__CompressedVRangesList"),
> >> function(object) {
> >> lo <- length(object)
> >> cat(classNameForDisplay(__object), " of
> >> length ",
> >> lo, "\n",
> >> sep = "")
> >> if (!is.null(names(object)))
> >> cat(BiocGenerics:::__
> >> labeledLine("names",
> >> names(object)))
> >> })
> >>
> >> i guess, however, that the right home for this
> would
> >> be
> >> VariantAnnotation. let me know if you consider
> >> adding it there
> >> (or somewhere else) and i'll remove it from
> >> VariantFiltering.
> >>
> >> thanks,
> >>
> >> robert.
> >>
> >> _________________________________________________
> >> Bioc-devel at r-project.org <mailto:Bioc-devel at r-project.org>
> >> <mailto:Bioc-devel at r-project.__org
> >> <mailto:Bioc-devel at r-project.org>>
> >> mailing list
> >> https://stat.ethz.ch/mailman/__listinfo/bioc-devel
> >> <https://stat.ethz.ch/mailman/listinfo/bioc-devel>
> >>
> >>
> >>
> >>
> >>
> >> --
> >> Robert Castelo, PhD
> >> Associate Professor
> >> Dept. of Experimental and Health Sciences
> >> Universitat Pompeu Fabra (UPF)
> >> Barcelona Biomedical Research Park (PRBB)
> >> Dr Aiguader 88
> >> E-08003 Barcelona, Spain
> >> telf: +34.933.160.514 <tel:%2B34.933.160.514>
> >> fax: +34.933.160.550 <tel:%2B34.933.160.550>
> >>
> >>
> >>
> > --
> > Robert Castelo, PhD
> > Associate Professor
> > Dept. of Experimental and Health Sciences
> > Universitat Pompeu Fabra (UPF)
> > Barcelona Biomedical Research Park (PRBB)
> > Dr Aiguader 88
> > E-08003 Barcelona, Spain
> > telf: +34.933.160.514
> > fax: +34.933.160.550
> >
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>
--
Gabriel Becker, Ph.D
Computational Biologist
Genentech Research
[[alternative HTML version deleted]]
More information about the Bioc-devel
mailing list