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
;
110 use base
qw(Bio::SeqFeature::SimilarityPair);
113 my ($class,@args) = @_;
115 my $self = $class->SUPER::new
(@args);
117 my ($prim, $prim_tag, $source, $source_tag) =
118 $self->_rearrange([qw(PRIMARY
124 $self->primary_tag('exon') unless $prim || $prim_tag;
125 $self->source_tag('Sim4') unless $source || $source_tag;
126 $self->strand(0) unless defined($self->strand());
133 Title : percentage_id
134 Usage : $obj->percentage_id($newval)
135 Function: This is a synonym for 100 * $obj->est_hit()->frac_identical().
136 Returns : value of percentage_id
137 Args : newvalue (optional)
143 my ($self, @args) = @_;
150 $frac /= 100.0 if defined($frac);
152 if($self->query()->can('frac_identical')) {
154 $self->query()->frac_identical($frac);
156 $val = 100.0 * $self->query()->frac_identical();
159 if($self->est_hit()->can('frac_identical')) {
161 $self->est_hit()->frac_identical($frac);
163 # this intentiously overwrites previous $val
164 $val = 100.0 * $self->est_hit()->frac_identical();
170 $self->{'percentage_id'} = $val;
172 $val = $self->{'percentage_id'};
181 Usage : $est_feature = $obj->est_hit();
182 Function: Returns the EST hit pointing to (i.e., aligned to by Sim4) this
183 exon (i.e., genomic region). At present, merely a synonym for
185 Returns : An Bio::SeqFeatureI implementing object.
193 return $self->feature2(@_);