IRanges-class            package:IRanges            R Documentation

_I_R_a_n_g_e_s _a_n_d _N_o_r_m_a_l_I_R_a_n_g_e_s _o_b_j_e_c_t_s

_D_e_s_c_r_i_p_t_i_o_n:

     The IRanges class is a simple implementation of the Ranges
     container where 2 integer vectors of the same length are used to
     store the start and width values. See the Ranges virtual class for
     a formal definition of Ranges objects and for their methods (all
     of them should work for IRanges objects).

     A NormalIRanges object is just an IRanges object that is
     guaranteed to be "normal". See the Normality section in the man
     page for Ranges objects for the definition and properties of
     "normal" Ranges objects.

_C_o_n_s_t_r_u_c_t_o_r:


      'IRanges(start=NULL, end=NULL, width=NULL)': Return the IRanges
          object containing the ranges specified by 'start', 'end' and
          'width'. Exactly two of the 'start', 'end' and 'width'
          arguments must be specified as integer vectors (with no
          'NA's) and the other argument must be 'NULL'. If 'start' and
          'end' are specified, then they must be vectors of the same
          length. If 'start' and 'width' (or 'end' and 'width') are
          specified, then the length of 'width' must be <= to the
          length of 'start' and, if it is <, then 'width' is expanded
          cyclically to the length of 'start'.


_M_e_t_h_o_d_s _f_o_r _N_o_r_m_a_l_I_R_a_n_g_e_s _o_b_j_e_c_t_s:


      'max(x)': The maximum value in the finite set of integers
          represented by 'x'.

      'min(x)': The minimum value in the finite set of integers
          represented by 'x'.


_A_u_t_h_o_r(_s):

     H. Pages

_S_e_e _A_l_s_o:

     Ranges-class, IRanges-utils, IRanges-setops

_E_x_a_m_p_l_e_s:

       ## Using an IRanges object for storing a big set of ranges is more
       ## efficient than using a standard R data frame:
       N <- 2000000L  # nb of ranges
       W <- 180L      # width of each range
       start <- 1L
       end <- 50000000L
       set.seed(777)
       range_starts <- sort(sample(end-W+1L, N))
       range_widths <- rep.int(W, N)
       ## Instantiation is faster
       system.time(x <- IRanges(start=range_starts, width=range_widths))
       system.time(y <- data.frame(start=range_starts, width=range_widths))
       ## Subsetting is faster
       system.time(x16 <- x[c(TRUE, rep.int(FALSE, 15))])
       system.time(y16 <- y[c(TRUE, rep.int(FALSE, 15)), ])
       ## Internal representation is more compact
       object.size(x16)
       object.size(y16)

