The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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>