Learn R Programming

HilbertVis (version 1.30.0)

makeWiggleVector: generate a "wiggle vector" from start/end/value data

Description

Given intervals in the form of a "start" and an "end" vectors and corresponding values, generate a "wiggle vector" of a given length that contains the specified values in the vector elements indicated by the intervals.

Usage

makeWiggleVector(start, end, value, chrlength )

Arguments

start
The start coordinates of the intervals. As usual in R, these are 1-based.
end
The end coordinates of the intervals. As usual, the end points are included.
value
The values to be put in the wiggle vector. Where intervals overlap, the values are added.
chrlength
The desired length of the returned vector.

Value

A vector as described above.

See Also

For a value vector containing only ones, this function acts similar as the pileup function in the ShortRead package.

Examples

Run this code
   intervalStarts <- c(3,10,17,22)
   intervalEnds <- c(7,13,20,26)
   values <- c(2, 1.5, .3, 4)
   chrlength <- 30
   wig <- makeWiggleVector( intervalStarts, intervalEnds, values, chrlength )
   # The same effect can be achieved with the following R code, which, however
   # is much slower:
   wig2 <- numeric(chrlength)
   for( i in 1:length(values) )
      wig2[ intervalStarts[i]:intervalEnds[i] ] <- 
         wig2[ intervalStarts[i]:intervalEnds[i] ] + values[i]
   # Let's check that we got the same:
   all( wig == wig2 )      

Run the code above in your browser using DataLab