NAME

SYNOPSIS

use Bio::Gonzales::Seq::Util qw(
    pairwise_identity_l
    pairwise_identity_s
    pairwise_identity_gaps_l
    pairwise_identity_gaps_s
    pairwise_identities
    map_seqids
    seqid_mapper
    overlaps
    cluster_overlapping_ranges
);

DESCRIPTION

SUBROUTINES

$map = map_seqids($seqs, $pattern)

Maps all sequence ids of $seqs in situ. If $pattern is not given, s%9d is taken as default.

$clustered_ranges = cluster_overlapping_ranges(\@ranges)

This function takes some ranges and clusters them by overlap.

@ranges = (
    [ $start, $stop, $some, $custom, $elements ],
    [ ... ],
    ...
);

$clustered_ranges = [
    # first cluster
    [
        [ $start, $stop, $some, $custom, $elements ],
        ...
    ],
    # next cluster
    [
        [ $start, $stop, $some, $custom, $elements ],
        ...
    ],
    ...
];
$map = map_seqids(\@seqs!, $pattern)

Wrapper around seqid_mapper(), maps the ids of @seqs and returns the map. This function works directly on the sequences.

$mapper = seqid_mapper(\%idmap)

Create a mapper that maps given sequences to new ids generated by the argument given. A hash as argument will be used as mapping base, taking the key as old and the value as new id. In case the sequence id is non-existent in the hash, an artificial id following the pattern unknown_$i with $i running from 0 onwards will be generated..

$mapper = seqid_mapper(\&handler)

Create a mapper that maps given sequences to new ids generated by successive calls to the handler. The handler will get the existing/original id as argument and shall return a new id. A simple mapper would be:

my $i = 1;
my $mapper = seqid_mapper(sub { sprintf "id%d", $i++ });
or
my $mapper = seqid_mapper(sub { my $id = shift; $id =~ s/pep/cds/; return $id});

my ($old_id, $new_id) = $mapper->($sequence_object);

The sequence object WILL BE ALTERED IN SITU.

$mapper = seqid_mapper($pattern)

Use pattern as basis for sequence id mapping, "%s" or "%d" must be included ONLY ONCE and will be substituted by a couter, running from 0 to INF.

$mapper = seqid_mapper()

Same as $mapper = seqid_mapper("s%9d")

overlaps([$a_begin, $a_end], [$b_begin, $b_end])

Returns true if a overlaps with b, false otherwise.

SEE ALSO

AUTHOR

jw bargsten, <joachim.bargsten at wur.nl>