comparison variant_effect_predictor/Bio/Tools/Prediction/Gene.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1f6dce3d34e0
1 # $Id: Gene.pm,v 1.8 2002/10/22 07:38:48 lapp Exp $
2 #
3 # BioPerl module for Bio::Tools::Prediction::Gene
4 #
5 # Cared for by Hilmar Lapp <hlapp@gmx.net>
6 #
7 # Copyright Hilmar Lapp
8 #
9 # You may distribute this module under the same terms as perl itself
10
11 # POD documentation - main docs before the code
12
13 =head1 NAME
14
15 Bio::Tools::Prediction::Gene - a predicted gene structure feature
16
17 =head1 SYNOPSIS
18
19 See documentation of methods.
20
21 =head1 DESCRIPTION
22
23 A feature representing a predicted gene structure. This class actually
24 inherits off Bio::SeqFeature::Gene::Transcript and therefore has all that
25 functionality, plus a few methods supporting predicted sequence features,
26 like a predicted CDS and a predicted translation.
27
28 Exons held by an instance of this class will usually be instances of
29 Bio::Tools::Prediction::Exon, although they do not have to be. Refer to the
30 documentation of the class that produced the instance.
31
32 Normally, you will not want to create an instance of this class yourself.
33 Instead, classes representing the results of gene structure prediction
34 programs will do that.
35
36 =head1 FEEDBACK
37
38 =head2 Mailing Lists
39
40 User feedback is an integral part of the evolution of this and other
41 Bioperl modules. Send your comments and suggestions preferably to one
42 of the Bioperl mailing lists. Your participation is much appreciated.
43
44 bioperl-l@bioperl.org - General discussion
45 http://bio.perl.org/MailList.html - About the mailing lists
46
47 =head2 Reporting Bugs
48
49 Report bugs to the Bioperl bug tracking system to help us keep track
50 the bugs and their resolution. Bug reports can be submitted via email
51 or the web:
52
53 bioperl-bugs@bio.perl.org
54 http://bugzilla.bioperl.org/
55
56 =head1 AUTHOR - Hilmar Lapp
57
58 Email hlapp@gmx.net or hilmar.lapp@pharma.novartis.com
59
60 Describe contact details here
61
62 =head1 APPENDIX
63
64 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
65
66 =cut
67
68
69 # Let the code begin...
70
71
72 package Bio::Tools::Prediction::Gene;
73 use vars qw(@ISA);
74 use strict;
75
76 use Bio::SeqFeature::Gene::Transcript;
77
78
79 @ISA = qw(Bio::SeqFeature::Gene::Transcript);
80
81 sub new {
82 my($class,@args) = @_;
83
84 my $self = $class->SUPER::new(@args);
85
86 my ($primary) = $self->_rearrange([qw(PRIMARY)],@args);
87
88 $primary = 'predicted_gene' unless $primary;
89 $self->primary_tag($primary);
90 return $self;
91 }
92
93
94 =head2 predicted_cds
95
96 Title : predicted_cds
97 Usage : $predicted_cds_dna = $gene->predicted_cds();
98 $gene->predicted_cds($predicted_cds_dna);
99 Function: Get/Set the CDS (coding sequence) as predicted by a program.
100
101 This method is independent of an attached_seq. There is no
102 guarantee whatsoever that the returned CDS has anything to do
103 (e.g., matches) with the sequence covered by the exons as annotated
104 through this object.
105
106 Example :
107 Returns : A Bio::PrimarySeqI implementing object holding the DNA sequence
108 defined as coding by a prediction of a program.
109 Args : On set, a Bio::PrimarySeqI implementing object holding the DNA
110 sequence defined as coding by a prediction of a program.
111
112 =cut
113
114 sub predicted_cds {
115 my ($self, $cds) = @_;
116
117 if(defined($cds)) {
118 $self->{'_predicted_cds'} = $cds;
119 }
120 return $self->{'_predicted_cds'};
121 }
122
123 =head2 predicted_protein
124
125 Title : predicted_protein
126 Usage : $predicted_protein_seq = $gene->predicted_protein();
127 $gene->predicted_protein($predicted_protein_seq);
128 Function: Get/Set the protein translation as predicted by a program.
129
130 This method is independent of an attached_seq. There is no
131 guarantee whatsoever that the returned translation has anything to
132 do with the sequence covered by the exons as annotated
133 through this object, or the sequence returned by predicted_cds(),
134 although it should usually be just the standard translation.
135
136 Example :
137 Returns : A Bio::PrimarySeqI implementing object holding the protein
138 translation as predicted by a program.
139 Args : On set, a Bio::PrimarySeqI implementing object holding the protein
140 translation as predicted by a program.
141
142 =cut
143
144 sub predicted_protein {
145 my ($self, $aa) = @_;
146
147 if(defined($aa)) {
148 $self->{'_predicted_aa'} = $aa;
149 }
150 return $self->{'_predicted_aa'};
151 }
152
153 #
154 # Everything else is just inherited from SeqFeature::GeneStructure.
155 #
156
157 1;