[BioC] flip strand information in GappedAlignments or GRangesList Object

Hervé Pagès hpages at fhcrc.org
Sat Mar 31 00:28:25 CEST 2012


Hi Michael,

On 03/30/2012 02:56 PM, Michael Lawrence wrote:
> One note about propagating metadata, I sometimes use relist to form a
> list out of an arbitrary flat structure that should have the same
> structure as an existing list. In this use, I am not sure it would make
> sense to carry over the metadata. Maybe as an option?

I don't see much difference with the names of the skeleton, which are
carried over. More generally speaking I think we should try to treat
names and elementMetdata more consistently.

H.

>
> Michael
>
> On Fri, Mar 30, 2012 at 11:57 AM, Hervé Pagès <hpages at fhcrc.org
> <mailto:hpages at fhcrc.org>> wrote:
>
>     Hi Stefanie,
>
>
>     On 03/30/2012 07:09 AM, Michael Lawrence wrote:
>
>         On Fri, Mar 30, 2012 at 5:54 AM, Steve Lianoglou<
>         mailinglist.honeypot at gmail.com
>         <mailto:mailinglist.honeypot at gmail.com>__>  wrote:
>
>             Hi,
>
>             On Fri, Mar 30, 2012 at 8:42 AM, Kathi
>             Zarnack<zarnack at ebi.ac.uk <mailto:zarnack at ebi.ac.uk>>  wrote:
>
>                 Hi,
>                 I think you have to add vector() to strand(ga), since
>                 the strand
>
>             information
>
>                 comes as Rle which does not work in the ifelse() test
>                 directly. At least
>                 this is my experience with GRanges objects.
>
>
>             It's true that sometimes you get bitten by Rle's popping up
>             where you
>             didn't expect them when you try and index things and need to
>             do some
>             as.vector() mojo here and there, but in this case it should
>             actually
>             work (depending on your version of R/bioc, I guess).
>
>             In my case (running R-2.15 RC), the Rle "surprise" doesn't
>             catch you
>             here, but it's still a good idea to keep in mind.
>
>
>         Thanks, Steve. ifelse() has worked on Rle for a very long time.
>         Btw, this
>         issue usually comes up when trying to extract from an ordinary
>         vector with
>         [. Since we can't / don't want to define methods on base
>         generics for base
>         data structures, we need to define new generics. In the case of
>         [, one can
>         use seqselect() as an alternative.
>
>         Thanks for pointing that out!
>
>
>     And in case you wonder how to do this on a GRangesList object, the
>     idiom is:
>
>       (1) Unlist:
>
>             unlisted <- unlist(grl, use.names=FALSE)
>
>       (2) Applies Steve's ifelse() code to 'unlisted' (GRanges object).
>
>       (3) Relist:
>
>             grl2 <- relist(unlisted, grl)
>
>     The "unlist/transform/relist" idiom is a very efficient/convenient way
>     to transform CompressedList objects in general (not only GRangesList
>     objects, which are only a particular case of CompressedList objects).
>     However, it does NOT work for any transformation performed in (2),
>     but only for a transformation where:
>         (a) the input/output have the same class
>         (b) and they have the same length (and the i-th element in the
>             output corresponds to the i-th element in the input, e.g. rev()
>             does not satisfy this).
>
>     Note that relist() looses the original elementMetadata() but you can
>     always propagate it "by hand":
>
>       elementMetadata(grl2) <- elementMetadata(grl)
>
>     Maybe we should modify the "relist" methods to do this automatically,
>     after all it propagates the names so why not the elementMetadata...
>
>     Cheers,
>     H.
>
>
>             -steve
>
>                 Best regards,
>                 Kathi
>
>
>                 On 30/03/12 13:37, Steve Lianoglou wrote:
>
>
>                     Hi,
>
>                     On Fri, Mar 30, 2012 at 6:04 AM,
>                     Stefanie<stefanie.tauber at __univie.ac.at
>                     <mailto:stefanie.tauber at univie.ac.at>>
>                       wrote:
>
>
>                         Dear list,
>
>                         having a GappedAlignments or GRangesList object
>                         at hand,
>                         what is the quickest way to flip strand signs?
>
>                         So for each entry, I want to flip "-" to "+" and
>                         vice versa.
>
>
>                     Let's assume that your GappedAlignments object is
>                     called `ga`, I think
>                     this should work, no?
>
>                     R>   strand(ga)<- ifelse(strand(ga) == '+', '-', '+')
>
>                     To the devs:
>
>                     For some reason, `example(GappedAlignments)` is
>                     throwing the following
>                     error on me, so I can't actually test at the moment:
>
>                     Error in elementLengths(rglist(x)) :
>                        error in evaluating the argument 'x' in selecting
>                     a method for
>                     function 'elementLengths': Error in .Call(.NAME,
>                     ..., PACKAGE =
>                     PACKAGE) :
>                        Incorrect number of arguments (6), expecting 4 for
>                     'cigar_to_list_of_IRanges_by___alignment'
>
>                     sessionInfo() pasted below.
>
>                     HTH,
>
>                     -steve
>
>                     R version 2.15.0 RC (2012-03-24 r58823)
>                     Platform: x86_64-apple-darwin9.8.0/x86___64 (64-bit)
>
>                     locale:
>                     [1]
>                     en_US.UTF-8/en_US.UTF-8/en_US.__UTF-8/C/en_US.UTF-8/en_US.UTF-__8
>
>                     attached base packages:
>                     [1] stats     graphics  grDevices utils     datasets
>                       methods   base
>
>                     other attached packages:
>                     [1] Rsamtools_1.7.41     Biostrings_2.23.6
>                       GenomicRanges_1.7.40
>                     [4] IRanges_1.13.34      BiocGenerics_0.1.14
>
>
>                 --
>                 Dr. Kathi Zarnack
>                 Luscombe Group
>                 European Bioinformatics Institute
>                 Wellcome Trust Genome Campus
>                 Hinxton, Cambridge
>                 CB10 1SD, UK
>                 tel +44 1223 494 526 <tel:%2B44%201223%20494%20526>
>
>
>
>
>             --
>             Steve Lianoglou
>             Graduate Student: Computational Systems Biology
>               | Memorial Sloan-Kettering Cancer Center
>               | Weill Medical College of Cornell University
>             Contact Info: http://cbio.mskcc.org/~lianos/__contact
>             <http://cbio.mskcc.org/%7Elianos/contact>
>
>             _________________________________________________
>             Bioconductor mailing list
>             Bioconductor at r-project.org <mailto:Bioconductor at r-project.org>
>             https://stat.ethz.ch/mailman/__listinfo/bioconductor
>             <https://stat.ethz.ch/mailman/listinfo/bioconductor>
>             Search the archives:
>             http://news.gmane.org/gmane.__science.biology.informatics.__conductor
>             <http://news.gmane.org/gmane.science.biology.informatics.conductor>
>
>
>                 [[alternative HTML version deleted]]
>
>
>         _________________________________________________
>         Bioconductor mailing list
>         Bioconductor at r-project.org <mailto:Bioconductor at r-project.org>
>         https://stat.ethz.ch/mailman/__listinfo/bioconductor
>         <https://stat.ethz.ch/mailman/listinfo/bioconductor>
>         Search the archives:
>         http://news.gmane.org/gmane.__science.biology.informatics.__conductor
>         <http://news.gmane.org/gmane.science.biology.informatics.conductor>
>
>
>
>     --
>     Hervé Pagès
>
>     Program in Computational Biology
>     Division of Public Health Sciences
>     Fred Hutchinson Cancer Research Center
>     1100 Fairview Ave. N, M1-B514
>     P.O. Box 19024
>     Seattle, WA 98109-1024
>
>     E-mail: hpages at fhcrc.org <mailto:hpages at fhcrc.org>
>     Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>     Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>
>


-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the Bioconductor mailing list