[BioC] reodering a GRanges object by its metadata
Martin Morgan
mtmorgan at fhcrc.org
Thu Feb 13 19:14:27 CET 2014
On 02/13/2014 07:02 AM, d r wrote:
> Hi there
>
> I am looking for a way to reorder a GRanges object using its metadata.
> Here is a sample of my GRanges object:
>
> GRanges with 1122060 ranges and 4 metadata columns:
> seqnames ranges strand |
> ID TSS
> <Rle> <IRanges> <Rle> |
> <character> <integer>
> [1] chr1 [66993729, 66993928] + |
> chr1:66998729-66999824 chr1:66999824-66999824 + 1
> [2] chr1 [66993929, 66994128] + |
> chr1:66998729-66999824 chr1:66999824-66999824 + 1
> [3] chr1 [66994129, 66994328] + |
> chr1:66998729-66999824 chr1:66999824-66999824 + 1
> [4] chr1 [66994329, 66994528] + |
> chr1:66998729-66999824 chr1:66999824-66999824 + 1
> [5] chr1 [66994529, 66994728] + |
> chr1:66998729-66999824 chr1:66999824-66999824 + 1
> ... ... ... ... ...
> ... ...
> [1122056] chr22 [51226318, 51226517] + |
> chr22:51221773-51222156 chr22:51222156-51222156 + 29143
> [1122057] chr22 [51226518, 51226717] + |
> chr22:51221773-51222156 chr22:51222156-51222156 + 29143
> [1122058] chr22 [51226718, 51226917] + |
> chr22:51221773-51222156 chr22:51222156-51222156 + 29143
> [1122059] chr22 [51226918, 51227117] + |
> chr22:51221773-51222156 chr22:51222156-51222156 + 29143
> [1122060] chr22 [51227118, 51227317] + |
> chr22:51221773-51222156 chr22:51222156-51222156 + 29143
>
> I want to order it so the ranges will be sorted first by the ID
> metadata,then by start (ranges with the same value for this metadata
> are all subsets of a larger range, so they are on the same
> chromosome).
>
> I have implemented that coercing the GRanges into a data frame,
> ordering its row and then coercing back to GRanges:
>
> grdf<-as.data.frame(CPGIs)
> grdf<-grdf[order(grdf$ID,grdf$start),]
> CPGIs<-GRanges(seqnames=grdf$seqnames, ranges=IRanges(grdf$start,
> grdf$end),strand=grdf$strand, ID=grdf$ID, TSS=grdf$TSS,
> HGNC_symbol=grdf$HGNC_symbol, refseq_symbol=grdf$refseq_symbol)
I think you're looking for
o = order(CPGIs$ID, start(CBGIs))
CBGIs[o]
?
Martin
>
>
> Which works, but is somewhat cumbersome. Is there a way to reorder the
> Granges object without resorting to a data frame?
>
> Thanks in advance
>
> Dolev Rahat
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at r-project.org
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
>
--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M1 B861
Phone: (206) 667-2793
More information about the Bioconductor
mailing list