Bounds of a Numeric Vector

Usage

bounds(nums, dup.inds=FALSE, pre.sort=TRUE)

Arguments

nums
a numeric vector.
dup.inds
logical, if TRUE the bounds of consecutive duplicated elements are returned.
pre.sort
logical, if TRUE the input vector is ordered prior to bounds determination.

Description

Find the ‘bounds’ (i.e. start, end and length) of consecutive numbers within a larger set of numbers in a given vector.

Details

This is a simple utility function useful for summarizing the contents of a numeric vector. For example: find the start position, end position and lengths of secondary structure elements given a vector of residue numbers obtained from a DSSP secondary structure prediction.

By setting ‘dup.inds’ to TRUE then the indices of the first (start) and last (end) duplicated elements of the vector are returned. For example: find the indices of atoms belonging to a particular residue given a vector of residue numbers (see below).

Value

Returns a three column matrix listing starts, ends and lengths.

References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.

Examples

test <- c(seq(1,5,1),8,seq(10,15,1)) bounds(test)
start end length 1 1 5 5 2 8 8 1 3 10 15 6
test <- rep(c(1,2,4), times=c(2,3,4)) bounds(test, dup.ind=TRUE)
start end length [1,] 1 1 2 2 [2,] 2 3 5 3 [3,] 3 6 9 4

Author

Barry Grant