Raw content of Bio::EnsEMBL::Analysis::Tools::GeneBuildUtils::EvidenceUtils
package Bio::EnsEMBL::Analysis::Tools::GeneBuildUtils::EvidenceUtils;
use strict;
use warnings;
use Exporter;
use Bio::EnsEMBL::Utils::Exception qw(verbose throw warning
stack_trace_dump);
use Bio::EnsEMBL::Analysis::Tools::GeneBuildUtils qw(coord_string id);
use Bio::EnsEMBL::DnaDnaAlignFeature;
use Bio::EnsEMBL::DnaPepAlignFeature;
use Bio::EnsEMBL::FeaturePair;
use vars qw (@ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = qw (print_Evidence clone_Evidence Evidence_info create_feature
create_feature_from_gapped_pieces);
sub print_Evidence{
my ($feature, $indent) = @_;
print Evidence_info($feature, $indent)."\n";
}
sub Evidence_info{
my ($feature, $indent) = @_;
my $coord_string = coord_string($feature);
my $id = id($feature);
my $tag;
if($feature->isa('Bio::EnsEMBL::DnaDnaAlignFeature')){
$tag = "DNA EVIDENCE";
}elsif($feature->isa('Bio::EnsEMBL::DnaPepAlignFeature')){
$tag = "PROTEIN EVIDENCE";
}else{
throw("ExidenceUtils:print_Evidence Don't know what to do ">
"with a ".$feature);
}
my $score = $feature->score || ".";
my $percent_id = $feature->percent_id || ".";
my $p_value = $feature->p_value || ".";
$indent = '' if(!$indent);
return $indent.$tag.": ".$coord_string." ".$score." ".
$feature->hseqname." ".$feature->hstart." ".
$feature->hend." ".$feature->hstrand." ".
$percent_id." ".$p_value." ".
$feature->cigar_string;
}
sub clone_Evidence{
my ($feature) = @_;
my $feature_string;
if($feature->isa('Bio::EnsEMBL::DnaDnaAlignFeature')){
$feature_string = 'Bio::EnsEMBL::DnaDnaAlignFeature';
}elsif($feature->isa('Bio::EnsEMBL::DnaPepAlignFeature')){
$feature_string = 'Bio::EnsEMBL::DnaPepAlignFeature';
}else{
throw("ExidenceUtils:clone_Evidence Don't know what to do ".
"with a ".$feature);
}
my $newfeature = create_feature($feature_string,
$feature->start,
$feature->end,
$feature->strand,
$feature->hstart,
$feature->hend,
$feature->hstrand,
$feature->percent_id,
$feature->p_value,
$feature->score,
$feature->hseqname,
$feature->cigar_string,
$feature->analysis,
$feature->external_db_id,
$feature->hcoverage,
$feature->slice);
$newfeature->dbID($feature->dbID);
return $newfeature;
}
sub create_feature{
my ($feature_string, $start, $end, $strand, $hstart, $hend,
$hstrand, $percent_id, $p_value, $score, $hseqname,
$cigar_string, $analysis, $external_db_id, $hcoverage, $slice) = @_;
my $feature = $feature_string->
new(
-start => $start,
-end => $end,
-strand => $strand,
-hstart => $hstart,
-hend => $hend,
-hstrand => $hstrand,
-percent_id => $percent_id,
-score => $score,
-p_value => $p_value,
-hseqname => $hseqname,
-analysis => $analysis,
-external_db_id => $external_db_id,
-hcoverage => $hcoverage,
-cigar_string => $cigar_string,
);
$feature->slice($slice);
$feature->hseqname($hseqname);
return $feature;
}
sub create_feature_from_gapped_pieces{
my ($feature_string, $pieces, $score, $percent_id, $p_value, $slice, $hseqname,
$analysis, $external_db_id, $hcoverage) = @_;
my $feature = $feature_string->new(
-features => $pieces,
-percent_id => $percent_id,
-score => $score,
-p_value => $p_value,
-hseqname => $hseqname,
-analysis => $analysis,
-external_db_id => $external_db_id,
-hcoverage => $hcoverage,
);
$feature->slice($slice);
$feature->hseqname($hseqname);
$feature->analysis($analysis);
return $feature;
}
#Decided against wrapping the get gene/transcript by evidence
#methods as don't really need to the scripts themselves can do that
#themselves!
1;