RangedData-methods {rtracklayer}R Documentation

Data on a Genome

Description

The rtracklayer package adds convenience methods on top of RangedData and GenomicRanges to manipulate data on genomic ranges. For RangedData the spaces are now called chromosomes (but could still refer to some other type of sequence). Similarly the universe refers to the genome.

Accessors

In the code snippets below, x is a RangedData or GenomicRanges object.

chrom(x), chrom(x) <- value: Gets or sets the chromosome names for x. The length of value should equal the length of x. This is an alias for names(x).

seqinfo(x), seqinfo(x) <- value: Gets or sets the sequence information as a Seqinfo object. This is just a wrapper on top of seqinfo for ranges(x).

score(x): Gets the “score” column from the element metadata of a GenomicRanges or GRangesList. Many track formats have a score column, so this is often used during export. The IRanges package defines a method for RangedData. The ANY fallback for this method simply returns NULL.

Constructor

GenomicData(ranges, ..., strand = NULL, chrom = NULL, genome = NULL, asRangedData = TRUE): If asRangedData is TRUE, constructs a RangedData instance with the given ranges and variables in ... (see the RangedData constructor). If asRangedData is FALSE, constructs a GRanges instance with the given ranges and variables in ....

If non-NULL, the strand argument specifies the strand of each range. It should be a character vector or factor of length equal to that of ranges. All values should be either -, +, * or NA. (The NA code for strand is only acceptable when asRangedData is TRUE.) To get the levels for strand, call levels(strand()).

chrom argument is analogous to space in the RangedData and seqnames in GRanges constructors.

The genome argument should be a scalar string and is treated as the RangedData universe. See the examples.

If ranges is not a Ranges object, this function calls as(ranges, "RangedData") and returns the result if successful. As a special case, the “chrom” column in a data.frame-like object is renamed to “space”, for convenience. Thus, one could pass a data.frame with columns “start”, “end” and, optionally, “chrom”.

Author(s)

Michael Lawrence and Patrick Aboyoun

Examples

  range1 <- IRanges::IRanges(start=c(1,2,3), end=c(5,2,8))

  ## just ranges ##
  ## RangedData instance
  rd <- GenomicData(range1)
  ## GRanges instance
  gr <- GenomicData(range1, asRangedData = FALSE)

  ## with a genome (universe) ##
  ## RangedData instance
  rd <- GenomicData(range1, genome = "hg18")
  genome(rd) ## "hg18"
  ## GRanges instance
  gr <- GenomicData(range1, genome = "hg18", asRangedData = FALSE)
  genome(gr) ## "hg18"

  ## with some data ##
  filter <- c(1L, 0L, 1L)
  score <- c(10L, 2L, NA)
  strand <- factor(c("+", NA, "-"), levels = levels(strand()))
  ## RangedData instance
  rd <- GenomicData(range1, score, genome = "hg18")
  rd[["score"]]
  strand(rd) ## all NA
  rd <- GenomicData(range1, score, filt = filter, strand = strand)
  rd[["filt"]]
  strand(rd) ## equal to 'strand'
  ## GRanges instance
  gr <- GenomicData(range1, score, genome = "hg18", asRangedData = FALSE)
  values(gr)[["score"]]
  strand(gr) ## all '*'
  gr <- GenomicData(range1, score, filt = filter, strand = strand,
                    asRangedData = FALSE)
  values(gr)[["filt"]]
  strand(gr) ## equal to 'strand'

  ## multiple chromosomes ##
  range2 <- IRanges::IRanges(start=c(15,45,20,1), end=c(15,100,80,5))
  ranges <- c(range1, range2)
  score <- c(score, c(0L, 3L, NA, 22L)) 
  chrom <- paste("chr", rep(c(1,2), c(length(range1), length(range2))), sep="")
  ## RangedData instance
  rd <- GenomicData(ranges, score, chrom = chrom, genome = "hg18")
  chrom(rd) # equal to 'chrom'
  rd[["score"]] # unlists over the chromosomes
  score(rd)
  rd[1][["score"]] # equal to score[1:3]
  ## GRanges instance
  gr <- GenomicData(ranges, score, chrom = chrom, genome = "hg18",
                    asRangedData = FALSE)
  chrom(gr) # equal to 'chrom'
  values(gr)[["score"]]
  values(gr[chrom(gr) == "chr1"])[["score"]]

  ## coercion from data.frame ##
  df <- as.data.frame(rd)
  GenomicData(df)
  GenomicData(df, asRangedData = FALSE)

[Package rtracklayer version 1.14.1 Index]