Skip to content
Snippets Groups Projects
Commit af1fe1ae authored by Andreas Kusalananda Kähäri's avatar Andreas Kusalananda Kähäri
Browse files

Add subclass of StableIdGenerator::EnsemblGeneric to do Aedes aegypti

stable ID incrementation and verification.
parent c11c7e73
No related branches found
No related tags found
No related merge requests found
package Bio::EnsEMBL::IdMapping::StableIdGenerator::AedesAegypti;
# Package that implements incrementing and verification of Aedes aegypti
# stable IDs as used by the VectorBase project.
use strict;
use warnings;
use base qw(Bio::EnsEMBL::IdMapping::StableIdGenerator::EnsemblGeneric);
sub increment_stable_id {
# This method will increment a stable ID. For Aedes aegypti, it will
# pick out the numerical part of the stable ID (no matter what type of
# stable ID it is) and increment it by one. It will then replace the
# numerical part by the incremented value and return the new stable
# ID. The parsing of the stable ID is very naive.
my ( $self, $stable_id ) = @_;
if ( !$self->is_valid($stable_id) ) {
throw("Unknown or missing stable ID: $stable_id.");
}
$stable_id =~ /^(\D*)(\d+)(\D*)/;
my $number_as_string = "$2";
my $number = $2 + 1;
$stable_id = sprintf( "%s"
. sprintf( "%%0%dd", length($number_as_string)
)
. "%s",
$1, $number, $3 );
return $stable_id;
}
sub is_valid {
# A stable ID is a valid Aedes aegypti stable ID if it begins with the
# character string "AAEL".
my ( $self, $stable_id ) = @_;
if ( !( defined($stable_id) && $stable_id =~ /^AAEL/ ) ) { return 0 }
return 1;
}
1;
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment