[Bioc-devel] show method for CompressedVRangesList-class

Michael Lawrence lawrence.michael at gene.com
Wed Feb 25 18:59:07 CET 2015


Yea, I know, just need to get around to that one. Technically, it works,
but it's obviously not ideal.

On Wed, Feb 25, 2015 at 8:52 AM, Gabe Becker <becker.gabe at gene.com> wrote:

> 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