and 1 contributors

# NAME

Bio::Search::Tiling::MapTileUtils - utilities for manipulating closed intervals for an HSP tiling algorithm

# SYNOPSIS

Not used directly.

# DESCRIPTION

Not used directly.

# NOTE

An "interval" in this module is defined as an arrayref `[$a0, $a1]`

, where `$a0, $a1`

are scalar numbers satisfying `$a0 <= $a1`

.

# AUTHOR

Mark A. Jensen - maj -at- fortinbras -dot- us

# APPENDIX

## interval_tiling

```
Title : interval_tiling()
Usage : @tiling = interval_tiling( \@array_of_intervals )
Function: Find minimal set of intervals covering the input set
Returns : array of arrayrefs of the form
( [$interval => [ @indices_of_collapsed_input_intervals ]], ...)
Args : arrayref of intervals
```

## decompose_interval

```
Title : decompose_interval
Usage : @decomposition = decompose_interval( \@overlappers )
Function: Calculate the disjoint decomposition of a set of
overlapping intervals, each annotated with a list of
covering intervals
Returns : array of arrayrefs of the form
( [[@interval] => [@indices_of_coverers]], ... )
Args : arrayref of intervals (arrayrefs like [$a0, $a1], with
Note : Each returned interval is associated with a list of indices of the
original intervals that cover that decomposition component
(scalar size of this list could be called the 'coverage coefficient')
Note : Coverage: each component of the decomp is completely contained
in the input intervals that overlap it, by construction.
Caveat : This routine expects the members of @overlappers to overlap,
but doesn't check this.
```

## are_disjoint

```
Title : are_disjoint
Usage : are_disjoint( [$a0, $a1], [$b0, $b1] )
Function: Determine if two intervals are disjoint
Returns : True if the intervals are disjoint, false if they overlap
Args : array of two intervals
```

## min_covering_interval

```
Title : min_covering_interval
Usage : $interval = min_covering_interval( [$a0,$a1],[$b0,$b1] )
Function: Determine the minimal covering interval for two intervals
Returns : an interval
Args : two intervals
```

## get_intervals_from_hsps

```
Title : get_intervals_from_hsps
Usage : @intervals = get_intervals_from_hsps($type, @hsp_objects)
Function: Return array of intervals of the form [ $start, $end ],
from an array of hsp objects
Returns : an array of intervals
Args : scalar $type, array of HSPI objects; where $type is one of 'hit',
'subject', 'query'
```

## _allowable_filters

```
Title : _allowable_filters
Usage : _allowable_filters($Bio_Search_Hit_HitI, $type)
Function: Return the HSP filters (strand, frame) allowed,
based on the reported algorithm
Returns : String encoding allowable filters:
s = strand, f = frame
Empty string if no filters allowed
undef if algorithm unrecognized
Args : A Bio::Search::Hit::HitI object,
scalar $type, one of 'hit', 'subject', 'query';
default is 'query'
```

## _set_attributes

```
Title : _set_attributes
Usage : $tiling->_set_attributes()
Function: Sets attributes for invocant
that depend on algorithm name
Returns : True on success
Args : none
Note : setting based on the configuration table
%alg_lookup
```

## containing_hsps()

```
Title : containing_hsps
Usage : @hsps = containing_hsps($interval, @hsps_to_search)
Function: Return a list of hsps whose coordinates completely contain the
given $interval
Returns : Array of HSP objects
Args : $interval : [$int1, $int2],
array of HSP objects
```

## covering_groups()

```
Title : covering_groups
Usage :
Function: divide a list of **ordered,disjoint** intervals (as from a
coverage map) into a set of disjoint covering groups
Returns : array of arrayrefs, each arrayref a covering set of
intervals
Args : array of intervals
```

## matches_MT

```
Title : matches_MT
Usage : $hsp->matches($type, $action, $start, $end)
Purpose : Get the total number of identical or conserved matches
in the query or sbjct sequence for the given HSP. Optionally can
report data within a defined interval along the seq.
Returns : scalar int
Args :
Comments : Relies on seq_str('match') to get the string of alignment symbols
between the query and sbjct lines which are used for determining
the number of identical and conservative matches.
Note : Modeled on Bio::Search::HSP::HSPI::matches
```

## get_SeqFeatures

```
Title : get_SeqFeatures
Usage :
Function: Get the feature objects held by this feature holder.
Features which are not top-level are subfeatures of one or
more of the returned feature objects, which means that you
must traverse the subfeature arrays of each top-level
feature object in order to traverse all features associated
with this sequence.
Top-level features can be obtained by tag, specified in
the argument.
Use get_all_SeqFeatures() if you want the feature tree
flattened into one single array.
Example :
Returns : an array of Bio::SeqFeatureI implementing objects
Args : [optional] scalar string (feature tag)
```

## feature_count

```
Title : feature_count
Usage : $seq->feature_count()
Function: Return the number of SeqFeatures attached to a sequence
Returns : integer representing the number of SeqFeatures
Args : None
```

## add_SeqFeature

```
Title : add_SeqFeature
Usage : $seq->add_SeqFeature($feat);
$seq->add_SeqFeature(@feat);
Function: Adds the given feature object (or each of an array of feature
objects to the feature array of this
sequence. The object passed is required to implement the
Bio::SeqFeatureI interface.
Returns : 1 on success
Args : A Bio::SeqFeatureI implementing object, or an array of such objects.
```

## remove_SeqFeatures

```
Title : remove_SeqFeatures
Usage : $seq->remove_SeqFeatures();
Function: Flushes all attached SeqFeatureI objects.
To remove individual feature objects, delete those from the returned
array and re-add the rest.
Example :
Returns : The array of Bio::SeqFeatureI objects removed from this seq.
Args : None
```