FAST
view release on metacpan or search on metacpan
lib/FAST/Bio/SearchIO/exonerate.pm view on Meta::CPAN
my ($nm,$desc) = ($1,$2);
chomp($desc) if defined $desc;
$self->start_element({'Name' => 'Hit'});
$self->element({'Name' => 'Hit_id',
'Data' => $nm});
$self->element({'Name' => 'Hit_desc',
'Data' => $desc});
$self->{'_seencigar'} = 0;
$self->{'_vulgar'} = 0;
} elsif( s/^vulgar:\s+(\S+)\s+ # query sequence id
(\d+)\s+(\d+)\s+([\-\+\.])\s+ # query start-end-strand
(\S+)\s+ # target sequence id
(\d+)\s+(\d+)\s+([\-\+])\s+ # target start-end-strand
(\d+)\s+ # score
//ox ) {
next if( $self->cigar || $self->{'_seencigar'});
$self->{'_vulgar'}++;
#
# Note from Ewan. This is ugly - copy and paste from
# cigar line parsing. Should unify somehow...
#
if( ! $self->within_element('result') ) {
$self->start_element({'Name' => 'ExonerateOutput'});
lib/FAST/Bio/SearchIO/exonerate.pm view on Meta::CPAN
# end of hit
$self->element({'Name' => 'Hit_score',
'Data' => $score});
# issued end...
$self->end_element({'Name' => 'Hit'});
$self->end_element({'Name' => 'ExonerateOutput'});
return $self->end_document();
} elsif( s/^cigar:\s+(\S+)\s+ # query sequence id
(\d+)\s+(\d+)\s+([\-\+])\s+ # query start-end-strand
(\S+)\s+ # target sequence id
(\d+)\s+(\d+)\s+([\-\+])\s+ # target start-end-strand
(\d+)\s+ # score
//ox ) {
next if( $self->vulgar || $self->{'_seenvulgar'});
$self->{'_cigar'}++;
if( ! $self->within_element('result') ) {
$self->start_element({'Name' => 'ExonerateOutput'});
$self->element({'Name' => 'ExonerateOutput_query-def',
'Data' => $1 });
}
lib/FAST/Bio/SimpleAlign.pm view on Meta::CPAN
for ($i=0; $i < @{$self->{'_start_end_lists'}->{$id}}; $i++) {
if (${$self->{'_start_end_lists'}->{$id}}[$i] eq $seq) {
$found = 1;
last;
}
}
if ($found) {
splice @{$self->{'_start_end_lists'}->{$id}}, $i, 1;
}
else {
$self->throw("Could not find the sequence to remoce from the start-end list");
}
}
else {
$self->throw("There is no seq list for the name $id");
}
# we need to shift order hash
my %rev_order = reverse %{$self->{'_order'}};
my $no = $rev_order{$name};
my $num_sequences = $self->num_sequences;
for (; $no < $num_sequences; $no++) {
( run in 0.235 second using v1.01-cache-2.11-cpan-4d50c553e7e )