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

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. |

## 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.

## Author

Barry Grant

## Examples

#> start end length
#> 1 1 5 5
#> 2 8 8 1
#> 3 10 15 6

#> start end length
#> [1,] 1 1 2 2
#> [2,] 2 3 5 3
#> [3,] 3 6 9 4