2 # BioPerl module for Bio::Tools::Sim4::Exon
4 # Please direct questions and support issues to <bioperl-l@bioperl.org>
6 # Cared for by Ewan Birney <birney-at-sanger.ac.uk>
7 # and Hilmar Lapp <hlapp-at-gmx.net>
9 # Copyright Ewan Birney, Hilmar Lapp
11 # You may distribute this module under the same terms as perl itself
13 # POD documentation - main docs before the code
17 Bio::Tools::Sim4::Exon - A single exon determined by an alignment
21 # See Bio::Tools::Sim4::Results for a description of the context.
23 # an instance of this class is-a Bio::SeqFeature::SimilarityPair
25 # coordinates of the exon (recommended way):
26 print "exon from ", $exon->start(),
27 " to ", $exon->end(), "\n";
29 # the same (feature1() inherited from Bio::SeqFeature::FeaturePair)
30 print "exon from ", $exon->feature1()->start(),
31 " to ", $exon->feature1()->end(), "\n";
32 # also the same (query() inherited from Bio::SeqFeature::SimilarityPair):
33 print "exon from ", $exon->query()->start(),
34 " to ", $exon->query()->end(), "\n";
36 # coordinates on the matching EST (recommended way):
37 print "matches on EST from ", $exon->est_hit()->start(),
38 " to ", $exon->est_hit()->end(), "\n";
40 # the same (feature2() inherited from Bio::SeqFeature::FeaturePair)
41 print "matches on EST from ", $exon->feature2()->start(),
42 " to ", $exon->feature2()->end(), "\n";
43 # also the same (subject() inherited from Bio::SeqFeature::SimilarityPair):
44 print "exon from ", $exon->subject()->start(),
45 " to ", $exon->subject()->end(), "\n";
49 This class inherits from Bio::SeqFeature::SimilarityPair and represents an
50 exon on a genomic sequence determined by similarity, that is, by aligning an
51 EST sequence (using Sim4 in this case). Consequently, the notion of query and
52 subject is always from the perspective of the genomic sequence: query refers
53 to the genomic seq, subject to the aligned EST hit. Because of this,
54 $exon-E<gt>start(), $exon-E<gt>end() etc will always return what you expect.
56 To get the coordinates on the matching EST, refer to the properties of the
57 feature returned by L<est_hit>().
63 User feedback is an integral part of the evolution of this
64 and other Bioperl modules. Send your comments and suggestions preferably
65 to one of the Bioperl mailing lists.
66 Your participation is much appreciated.
68 bioperl-l@bioperl.org - General discussion
69 http://bioperl.org/wiki/Mailing_lists - About the mailing lists
73 Please direct usage questions or support issues to the mailing list:
75 I<bioperl-l@bioperl.org>
77 rather than to the module maintainer directly. Many experienced and
78 reponsive experts will be able look at the problem and quickly
79 address it. Please include a thorough description of the problem
80 with code and data examples if at all possible.
84 Report bugs to the Bioperl bug tracking system to help us keep track
85 the bugs and their resolution. Bug reports can be submitted via the
88 https://github.com/bioperl/bioperl-live/issues
90 =head1 AUTHOR - Ewan Birney, Hilmar Lapp
92 Ewan Birney E<lt>birney-at-sanger.ac.ukE<gt>
93 Hilmar Lapp E<lt>hlapp-at-gmx.netE<gt> or E<lt>hilmar.lapp-at-pharma.novartis.comE<gt>.
97 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
102 # Let the code begin...
105 package Bio
::Tools
::Sim4
::Exon
;
109 use base
qw(Bio::SeqFeature::SimilarityPair);
112 my ($class,@args) = @_;
114 my $self = $class->SUPER::new
(@args);
116 my ($prim, $prim_tag, $source, $source_tag) =
117 $self->_rearrange([qw(PRIMARY
123 $self->primary_tag('exon') unless $prim || $prim_tag;
124 $self->source_tag('Sim4') unless $source || $source_tag;
125 $self->strand(0) unless defined($self->strand());
132 Title : percentage_id
133 Usage : $obj->percentage_id($newval)
134 Function: This is a synonym for 100 * $obj->est_hit()->frac_identical().
135 Returns : value of percentage_id
136 Args : newvalue (optional)
142 my ($self, @args) = @_;
149 $frac /= 100.0 if defined($frac);
151 if($self->query()->can('frac_identical')) {
153 $self->query()->frac_identical($frac);
155 $val = 100.0 * $self->query()->frac_identical();
158 if($self->est_hit()->can('frac_identical')) {
160 $self->est_hit()->frac_identical($frac);
162 # this intentiously overwrites previous $val
163 $val = 100.0 * $self->est_hit()->frac_identical();
169 $self->{'percentage_id'} = $val;
171 $val = $self->{'percentage_id'};
180 Usage : $est_feature = $obj->est_hit();
181 Function: Returns the EST hit pointing to (i.e., aligned to by Sim4) this
182 exon (i.e., genomic region). At present, merely a synonym for
184 Returns : An Bio::SeqFeatureI implementing object.
192 return $self->feature2(@_);