annotate variant_effect_predictor/Bio/Cluster/UniGene.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: UniGene.pm,v 1.23.2.2 2003/09/15 01:52:03 andrew Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::Cluster::UniGene.pm
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Andrew Macgregor <andrew@anatomy.otago.ac.nz>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Andrew Macgregor, Jo-Ann Stanton, David Green
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 # Molecular Embryology Group, Anatomy & Structural Biology, University of Otago
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 # http://meg.otago.ac.nz/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 # You may distribute this module under the same terms as perl itself
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 # _history
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14 # April 17, 2002 - Initial implementation by Andrew Macgregor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 # POD documentation - main docs before the code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 Bio::Cluster::UniGene - UniGene object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 use Bio::Cluster::UniGene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 use Bio::ClusterIO;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 $stream = Bio::ClusterIO->new('-file' => "Hs.data",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 '-format' => "unigene");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 # note: we quote -format to keep older perl's from complaining.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 while ( my $in = $stream->next_cluster() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31 print $in->unigene_id() . "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 while ( my $sequence = $in->next_seq() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 print $sequence->accession_number() . "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39 This UniGene object implements the L<Bio::Cluster::UniGeneI> interface
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 for the representation if UniGene clusters in Bioperl. It is returned
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41 by the L<Bio::ClusterIO> parser for unigene format and contains all
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 the data associated with one UniGene record.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 This class implements several interfaces and hence can be used
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45 wherever instances of such interfaces are expected. In particular, the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 interfaces are L<Bio::ClusterI> as the base interface for all cluster
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 representations, and in addition L<Bio::IdentifiableI> and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 L<Bio::DescribableI>.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 The following lists the UniGene specific methods that are available
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 (see below for details). Be aware next_XXX iterators take a snapshot
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52 of the array property when they are first called, and this snapshot is
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 not reset until the iterator is exhausted. Hence, once called you need
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54 to exhaust the iterator to see any changes that have been made to the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 property in the meantime. You will usually want to use the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 non-iterator equivalents and loop over the elements yourself.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58 new() - standard new call
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 unigene_id() - set/get unigene_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 title() - set/get title (description)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 gene() - set/get gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 cytoband() - set/get cytoband
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 mgi() - set/get mgi
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 locuslink() - set/get locuslink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 gnm_terminus() - set/get gnm_terminus
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 scount() - set/get scount
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76 express() - set/get express, currently takes/returns a reference to an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 array of expressed tissues
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79 next_express() - returns the next tissue expression from the expressed
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 tissue array
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82 chromosome() - set/get chromosome, currently takes/returns a reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 to an array of chromosome lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 next_chromosome() - returns the next chromosome line from the array of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86 chromosome lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88 sts() - set/get sts, currently takes/returns a reference to an array
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 of sts lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 next_sts() - returns the next sts line from the array of sts lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 txmap() - set/get txmap, currently takes/returns a reference to an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 array of txmap lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 next_txmap() - returns the next txmap line from the array of txmap
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97 lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99 protsim() - set/get protsim, currently takes/returns a reference to an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 array of protsim lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 next_protsim() - returns the next protsim line from the array of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 protsim lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 sequences() - set/get sequence, currently takes/returns a reference to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 an array of references to seq info
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 next_seq() - returns a Seq object that currently only contains an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109 accession number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112 =head1 Implemented Interfaces
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 This class implementes the following interfaces.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 =over 4
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 =item Bio::Cluster::UniGeneI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 This includes implementing Bio::ClusterI.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122 =item Bio::IdentifiableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124 =item Bio::DescribableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 =item Bio::AnnotatableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 =item Bio::Factory::SequenceStreamI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130 =back
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 Bioperl modules. Send your comments and suggestions preferably to one
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 of the Bioperl mailing lists. Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142 http://bio.perl.org/MailList.html - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 the bugs and their resolution. Bug reports can be submitted via email
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150 bioperl-bugs@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 =head1 AUTHOR - Andrew Macgregor
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 Email andrew@anatomy.otago.ac.nz
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 =head1 CONTRIBUTORS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 Hilmar Lapp, hlapp at gmx.net
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164 The rest of the documentation details each of the object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165 methods. Internal methods are usually preceded with a "_".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 package Bio::Cluster::UniGene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 use Bio::IdentifiableI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 use Bio::DescribableI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 use Bio::AnnotatableI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 use Bio::Annotation::Collection;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 use Bio::Annotation::DBLink;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 use Bio::Annotation::SimpleValue;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 use Bio::Species;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 use Bio::Factory::SequenceStreamI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 use Bio::Seq::SeqFactory;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 use Bio::Cluster::UniGeneI;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 @ISA = qw(Bio::Root::Root Bio::Cluster::UniGeneI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 Bio::IdentifiableI Bio::DescribableI Bio::AnnotatableI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 Bio::Factory::SequenceStreamI);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 my %species_map = (
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 'Aga' => "Anopheles gambiae",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195 'At' => "Arabidopsis thaliana",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 'Bt' => "Bos taurus",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 'Cel' => "Caenorhabditis elegans",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 'Cin' => "Ciona intestinalis",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 'Cre' => "Chlamydomonas reinhardtii",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 'Ddi' => "Dictyostelium discoideum",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 'Dr' => "Danio rerio",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 'Dm' => "Drosophila melanogaster",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 'Gga' => "Gallus gallus",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 'Gma' => "Glycine max",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 'Hs' => "Homo sapiens",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 'Hv' => "Hordeum vulgare",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 'Les' => "Lycopersicon esculentum",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 'Mtr' => "Medicago truncatula",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 'Mm' => "Mus musculus",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210 'Os' => "Oryza sativa",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 'Ola' => "Oryzias latipes",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 'Rn' => "Rattus norvegicus",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 'Str' => "Silurana tropicalis",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 'Sbi' => "Sorghum bicolor",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 'Ssc' => "Sus scrofa",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 'Ta' => "Triticum aestivum",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 'Xl' => "Xenopus laevis",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 'Zm' => "Zea mays",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 Title : new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 Usage : used by ClusterIO
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 Returns : a new Bio::Cluster::Unigene object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 sub new {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 # standard new call..
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 my($caller,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 my $self = $caller->SUPER::new(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 my ($ugid,$desc,$mems,$size,$species,$dispid,$id,$ns,$auth,$v,$seqfact) =
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 $self->_rearrange([qw(UNIGENE_ID
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 MEMBERS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239 SIZE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 SPECIES
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241 DISPLAY_ID
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 OBJECT_ID
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 NAMESPACE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 AUTHORITY
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 VERSION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 SEQFACTORY
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 )], @args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 $self->{'_alphabet'} = 'dna';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 $self->unigene_id($ugid) if $ugid;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252 $self->description($desc) if $desc;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 $self->sequences($mems) if $mems;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 $self->size($size) if defined($size);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 $self->display_id($dispid) if $dispid; # overwrites ugid
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 $self->object_id($id) if $id; # overwrites dispid
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257 $self->namespace($ns || 'UniGene');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258 $self->authority($auth || 'NCBI');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 $self->version($v) if defined($v);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
260 if( ! defined $seqfact ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
261 $seqfact = new Bio::Seq::SeqFactory
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
262 (-verbose => $self->verbose(),
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
263 -type => 'Bio::Seq::RichSeq');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
264 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
265 $self->sequence_factory($seqfact);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
266 if( (! $species) && (defined $self->unigene_id() &&
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
267 $self->unigene_id() =~ /^([A-Za-z]+)\.[0-9]/)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
268 # try set a default one depending on the ID
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
269 $species = $species_map{$1};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
270 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
271 $self->species($species);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
272 return $self;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
273 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
274
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
275
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
276 =head1 L<Bio::Cluster::UniGeneI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
277
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
278 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
279
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
280 =head2 unigene_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
281
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
282 Title : unigene_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
283 Usage : unigene_id();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
284 Function: Returns the unigene_id associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
285 Example : $id = $unigene->unigene_id or $unigene->unigene_id($id)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
286 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
287 Args : None or an id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
288
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
289
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
290 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
291
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
292 sub unigene_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
293 my ($obj,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
294 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
295 $obj->{'unigene_id'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
296 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
297 return $obj->{'unigene_id'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
298 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
299
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
300
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
301
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
302 =head2 title
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
303
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
304 Title : title
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
305 Usage : title();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
306 Function: Returns the title associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
307 Example : $title = $unigene->title or $unigene->title($title)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
308 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
309 Args : None or a title
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
310
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
311
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
312 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
313
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
314 sub title {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
315 my ($obj,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
316 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
317 $obj->{'title'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
318 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
319 return $obj->{'title'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
320 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
321
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
322
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
323 =head2 gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
324
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
325 Title : gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
326 Usage : gene();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
327 Function: Returns the gene associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
328 Example : $gene = $unigene->gene or $unigene->gene($gene)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
329 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
330 Args : None or a gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
331
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
332
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
333 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
334
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
335 sub gene {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
336 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
337 return $self->_annotation_value('gene_name', @_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
338 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
339
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
340
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
341 =head2 cytoband
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
342
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
343 Title : cytoband
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
344 Usage : cytoband();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
345 Function: Returns the cytoband associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
346 Example : $cytoband = $unigene->cytoband or $unigene->cytoband($cytoband)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
347 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
348 Args : None or a cytoband
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
349
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
350
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
351 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
352
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
353 sub cytoband {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
354 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
355 return $self->_annotation_value('cyto_band', @_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
356 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
357
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
358 =head2 mgi
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
359
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
360 Title : mgi
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
361 Usage : mgi();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
362 Function: Returns the mgi associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
363 Example : $mgi = $unigene->mgi or $unigene->mgi($mgi)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
364 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
365 Args : None or a mgi
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
366
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
367
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
368 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
369
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
370 sub mgi {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
371 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
372 my $acc;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
373
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
374 if(@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
375 # purge first
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
376 $self->_remove_dblink('dblink','MGI');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
377 # then add if a valid value is present
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
378 if($acc = shift) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
379 $self->_annotation_dblink('dblink','MGI',$acc);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
380 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
381 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
382 ($acc) = $self->_annotation_dblink('dblink','MGI');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
383 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
384 return $acc;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
385 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
386
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
387
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
388 =head2 locuslink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
389
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
390 Title : locuslink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
391 Usage : locuslink();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
392 Function: Returns or stores a reference to an array containing locuslink data.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
393 Returns : An array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
394 Args : None or an array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
395
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
396 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
397
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
398 sub locuslink {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
399 my ($self,$ll) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
400
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
401 if($ll) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
402 # purge first
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
403 $self->_remove_dblink('dblink','LocusLink');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
404 # then add as many accessions as are present
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
405 foreach my $acc (@$ll) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
406 $self->_annotation_dblink('dblink','LocusLink',$acc);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
407 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
408 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
409 my @accs = $self->_annotation_dblink('dblink','LocusLink');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
410 $ll = [@accs];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
411 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
412 return $ll;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
413 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
414
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
415
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
416 =head2 gnm_terminus
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
417
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
418 Title : gnm_terminus
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
419 Usage : gnm_terminus();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
420 Function: Returns the gnm_terminus associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
421 Example : $gnm_terminus = $unigene->gnm_terminus or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
422 $unigene->gnm_terminus($gnm_terminus)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
423 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
424 Args : None or a gnm_terminus
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
425
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
426 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
427
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
428 sub gnm_terminus {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
429 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
430 return $self->_annotation_value('gnm_terminus', @_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
431 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
432
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
433 =head2 scount
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
434
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
435 Title : scount
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
436 Usage : scount();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
437 Function: Returns the scount associated with the object.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
438 Example : $scount = $unigene->scount or $unigene->scount($scount)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
439 Returns : A string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
440 Args : None or a scount
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
441
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
442 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
443
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
444 sub scount {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
445 my ($obj,$value) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
446 if( defined $value) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
447 $obj->{'scount'} = $value;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
448 } elsif((! defined($obj->{'scount'})) && defined($obj->sequences())) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
449 $obj->{'scount'} = $obj->size();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
450 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
451 return $obj->{'scount'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
452 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
453
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
454
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
455 =head2 express
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
456
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
457 Title : express
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
458 Usage : express();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
459 Function: Returns or stores a reference to an array containing
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
460 tissue expression data
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
461 Returns : An array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
462 Args : None or an array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
463
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
464 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
465
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
466 sub express {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
467 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
468
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
469 return $self->_annotation_value_ary('expressed',@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
470 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
471
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
472
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
473 =head2 chromosome
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
474
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
475 Title : chromosome
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
476 Usage : chromosome();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
477 Function: Returns or stores a reference to an array containing
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
478 chromosome lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
479 Returns : An array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
480 Args : None or an array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
481
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
482 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
483
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
484 sub chromosome {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
485 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
486
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
487 return $self->_annotation_value_ary('chromosome',@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
488 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
489
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
490
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
491 =head2 sts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
492
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
493 Title : sts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
494 Usage : sts();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
495 Function: Returns or stores a reference to an array containing sts lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
496
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
497 Returns : An array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
498 Args : None or an array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
499
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
500 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
501
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
502 sub sts {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
503 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
504
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
505 return $self->_annotation_value_ary('sts',@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
506 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
507
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
508
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
509 =head2 txmap
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
510
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
511 Title : txmap
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
512 Usage : txmap();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
513 Function: Returns or stores a reference to an array containing txmap lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
514
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
515 Returns : An array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
516 Args : None or an array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
517
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
518 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
519
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
520 sub txmap {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
521 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
522
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
523 return $self->_annotation_value_ary('txmap',@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
524 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
525
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
526
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
527 =head2 protsim
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
528
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
529 Title : protsim
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
530 Usage : protsim();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
531 Function: Returns or stores a reference to an array containing protsim lines
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
532 This should really only be used by ClusterIO, not directly
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
533 Returns : An array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
534 Args : None or an array reference
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
535
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
536 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
537
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
538 sub protsim {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
539 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
540
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
541 return $self->_annotation_value_ary('protsim',@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
542 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
543
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
544
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
545 =head2 sequences
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
546
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
547 Title : sequences
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
548 Usage : sequences();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
549 Function: Returns or stores a reference to an array containing
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
550 sequence data.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
551
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
552 This is mostly reserved for ClusterIO parsers. You should
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
553 use get_members() for get and add_member()/remove_members()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
554 for set.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
555
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
556 Returns : An array reference, or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
557 Args : None or an array reference or undef
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
558
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
559 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
560
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
561 sub sequences {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
562 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
563
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
564 return $self->{'members'} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
565 return $self->{'members'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
566 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
567
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
568 =head2 species
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
569
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
570 Title : species
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
571 Usage : $obj->species($newval)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
572 Function: Get/set the species object for this Unigene cluster.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
573 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
574 Returns : value of species (a L<Bio::Species> object)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
575 Args : on set, new value (a L<Bio::Species> object or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
576 the binomial name, or undef, optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
577
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
578
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
579 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
580
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
581 sub species{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
582 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
583
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
584 if(@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
585 my $species = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
586 if($species && (! ref($species))) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
587 my @class = reverse(split(' ',$species));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
588 $species = Bio::Species->new(-classification => \@class);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
589 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
590 return $self->{'species'} = $species;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
591 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
592 return $self->{'species'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
593 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
594
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
595
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
596 =head1 L<Bio::ClusterI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
597
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
598 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
599
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
600 =head2 display_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
601
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
602 Title : display_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
603 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
604 Function: Get/set the display name or identifier for the cluster
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
605
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
606 This is aliased to unigene_id().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
607
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
608 Returns : a string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
609 Args : optional, on set the display ID ( a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
610
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
611 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
612
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
613 sub display_id{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
614 return shift->unigene_id(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
615 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
616
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
617 =head2 description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
618
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
619 Title : description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
620 Usage : Bio::ClusterI->description("POLYUBIQUITIN")
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
621 Function: get/set for the consensus description of the cluster
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
622
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
623 This is aliased to title().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
624
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
625 Returns : the description string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
626 Args : Optional the description string
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
627
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
628 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
629
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
630 sub description{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
631 return shift->title(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
632 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
633
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
634 =head2 size
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
635
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
636 Title : size
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
637 Usage : Bio::ClusterI->size();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
638 Function: get for the size of the family,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
639 calculated from the number of members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
640
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
641 This is aliased to scount().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
642
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
643 Returns : the size of the cluster
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
644 Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
645
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
646 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
647
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
648 sub size {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
649 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
650
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
651 # hard-wiring the size is allowed if there are no sequences
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
652 return $self->scount(@_) unless defined($self->sequences());
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
653 # but we can't change the number of members through this method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
654 my $n = scalar(@{$self->sequences()});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
655 if(@_ && ($n != $_[0])) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
656 $self->throw("Cannot change cluster size using size() from $n to ".
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
657 $_[0]);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
658 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
659 return $n;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
660 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
661
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
662 =head2 cluster_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
663
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
664 Title : cluster_score
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
665 Usage : $cluster ->cluster_score(100);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
666 Function: get/set for cluster_score which
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
667 represent the score in which the clustering
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
668 algorithm assigns to this cluster.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
669
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
670 For UniGene clusters, there really is no cluster score that
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
671 would come with the data. However, we provide an
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
672 implementation here so that you can score UniGene clusters
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
673 if you want to.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
674
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
675 Returns : a number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
676 Args : optionally, on set a number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
677
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
678 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
679
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
680 sub cluster_score{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
681 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
682
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
683 return $self->{'cluster_score'} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
684 return $self->{'cluster_score'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
685 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
686
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
687 =head2 get_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
688
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
689 Title : get_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
690 Usage : Bio::ClusterI->get_members(($seq1, $seq2));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
691 Function: retrieve the members of the family by some criteria
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
692
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
693 Will return all members if no criteria are provided.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
694
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
695 At this time this implementation does not support
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
696 specifying criteria and will always return all members.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
697
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
698 Returns : the array of members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
699 Args :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
700
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
701 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
702
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
703 sub get_members {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
704 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
705
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
706 my $mems = $self->sequences() || [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
707 # already objects?
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
708 if(@$mems && (ref($mems->[0]) eq "HASH")) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
709 # nope, we need to build the object list from scratch
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
710 my @memlist = ();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
711 while(my $seq = $self->next_seq()) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
712 push(@memlist, $seq);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
713 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
714 # we cache this array of objects as the new member list
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
715 $mems = \@memlist;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
716 $self->sequences($mems);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
717 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
718 # done
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
719 return @$mems;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
720 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
721
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
722
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
723 =head1 Annotatable view at the object properties
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
724
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
725 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
726
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
727 =head2 annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
728
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
729 Title : annotation
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
730 Usage : $obj->annotation($newval)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
731 Function: Get/set the L<Bio::AnnotationCollectionI> object for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
732 this UniGene cluster.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
733
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
734 Many attributes of this class are actually stored within
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
735 the annotation collection object as L<Bio::AnnotationI>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
736 compliant objects, so you can conveniently access them
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
737 through the same interface as you would e.g. access
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
738 L<Bio::SeqI> annotation properties.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
739
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
740 If you call this method in set mode and replace the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
741 annotation collection with another one you should know
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
742 exactly what you are doing.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
743
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
744 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
745 Returns : a L<Bio::AnnotationCollectionI> compliant object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
746 Args : on set, new value (a L<Bio::AnnotationCollectionI>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
747 compliant object or undef, optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
748
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
749
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
750 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
751
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
752 sub annotation{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
753 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
754
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
755 if(@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
756 return $self->{'annotation'} = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
757 } elsif(! exists($self->{'annotation'})) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
758 $self->{'annotation'} = Bio::Annotation::Collection->new();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
759 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
760 return $self->{'annotation'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
761 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
762
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
763
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
764 =head1 Implementation specific methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
765
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
766 These are mostly for adding/removing to array properties, and for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
767 methods with special functionality.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
768
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
769 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
770
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
771 =head2 add_member
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
772
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
773 Title : add_member
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
774 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
775 Function: Adds a member object to the list of members.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
776 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
777 Returns : TRUE if the new member was successfuly added, and FALSE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
778 otherwise.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
779 Args : The member to add.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
780
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
781
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
782 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
783
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
784 sub add_member{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
785 my ($self,@mems) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
786
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
787 my $memlist = $self->{'members'} || [];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
788 # this is an object interface; is the member list already objects?
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
789 if(@$memlist && (ref($memlist->[0]) eq "HASH")) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
790 # nope, convert to objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
791 $memlist = [$self->get_members()];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
792 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
793 # add new member(s)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
794 push(@$memlist, @mems);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
795 # store if we created this array ref ourselves
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
796 $self->sequences($memlist);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
797 # done
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
798 return 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
799 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
800
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
801 =head2 remove_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
802
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
803 Title : remove_members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
804 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
805 Function: Remove the list of members for this cluster such that the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
806 member list is undefined afterwards (as opposed to zero members).
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
807 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
808 Returns : the previous list of members
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
809 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
810
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
811
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
812 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
813
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
814 sub remove_members{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
815 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
816
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
817 my @mems = $self->get_members();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
818 $self->sequences(undef);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
819 return @mems;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
820 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
821
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
822
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
823 =head2 next_locuslink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
824
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
825 Title : next_locuslink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
826 Usage : next_locuslink();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
827 Function: Returns the next locuslink from an array referred
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
828 to using $obj->{'locuslink'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
829
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
830 If you call this iterator again after it returned undef, it
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
831 will re-cycle through the list of elements. Changes in the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
832 underlying array property while you loop over this iterator
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
833 will not be reflected until you exhaust the iterator.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
834
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
835 Example : while ( my $locuslink = $in->next_locuslink() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
836 print "$locuslink\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
837 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
838 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
839 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
840
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
841 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
842
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
843 sub next_locuslink {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
844 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
845
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
846 return $obj->_next_element("ll","locuslink");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
847 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
848
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
849 =head2 next_express
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
850
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
851 Title : next_express
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
852 Usage : next_express();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
853 Function: Returns the next tissue from an array referred
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
854 to using $obj->{'express'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
855
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
856 If you call this iterator again after it returned undef, it
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
857 will re-cycle through the list of elements. Changes in the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
858 underlying array property while you loop over this iterator
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
859 will not be reflected until you exhaust the iterator.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
860
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
861 Example : while ( my $express = $in->next_express() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
862 print "$express\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
863 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
864 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
865 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
866
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
867 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
868
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
869 sub next_express {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
870 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
871
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
872 return $obj->_next_element("express","express");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
873 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
874
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
875
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
876 =head2 next_chromosome
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
877
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
878 Title : next_chromosome
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
879 Usage : next_chromosome();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
880 Function: Returns the next chromosome line from an array referred
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
881 to using $obj->{'chromosome'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
882
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
883 If you call this iterator again after it returned undef, it
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
884 will re-cycle through the list of elements. Changes in the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
885 underlying array property while you loop over this iterator
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
886 will not be reflected until you exhaust the iterator.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
887
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
888 Example : while ( my $chromosome = $in->next_chromosome() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
889 print "$chromosome\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
890 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
891 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
892 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
893
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
894 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
895
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
896 sub next_chromosome {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
897 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
898
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
899 return $obj->_next_element("chr","chromosome");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
900 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
901
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
902
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
903 =head2 next_protsim
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
904
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
905 Title : next_protsim
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
906 Usage : next_protsim();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
907 Function: Returns the next protsim line from an array referred
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
908 to using $obj->{'protsim'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
909
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
910 If you call this iterator again after it returned undef, it
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
911 will re-cycle through the list of elements. Changes in the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
912 underlying array property while you loop over this iterator
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
913 will not be reflected until you exhaust the iterator.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
914
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
915 Example : while ( my $protsim = $in->next_protsim() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
916 print "$protsim\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
917 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
918 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
919 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
920
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
921 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
922
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
923 sub next_protsim {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
924 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
925
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
926 return $obj->_next_element("protsim","protsim");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
927 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
928
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
929
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
930 =head2 next_sts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
931
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
932 Title : next_sts
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
933 Usage : next_sts();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
934 Function: Returns the next sts line from an array referred
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
935 to using $obj->{'sts'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
936
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
937 If you call this iterator again after it returned undef, it
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
938 will re-cycle through the list of elements. Changes in the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
939 underlying array property while you loop over this iterator
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
940 will not be reflected until you exhaust the iterator.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
941
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
942 Example : while ( my $sts = $in->next_sts() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
943 print "$sts\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
944 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
945 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
946 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
947
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
948 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
949
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
950 sub next_sts {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
951 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
952
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
953 return $obj->_next_element("sts","sts");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
954 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
955
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
956
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
957 =head2 next_txmap
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
958
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
959 Title : next_txmap
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
960 Usage : next_txmap();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
961 Function: Returns the next txmap line from an array
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
962 referred to using $obj->{'txmap'}
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
963
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
964 If you call this iterator again after it returned undef, it
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
965 will re-cycle through the list of elements. Changes in the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
966 underlying array property while you loop over this iterator
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
967 will not be reflected until you exhaust the iterator.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
968
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
969 Example : while ( my $tsmap = $in->next_txmap() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
970 print "$txmap\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
971 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
972 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
973 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
974
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
975 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
976
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
977 sub next_txmap {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
978 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
979
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
980 return $obj->_next_element("txmap","txmap");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
981 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
982
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
983 ###############################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
984 # private method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
985 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
986 # args: prefix name for the queue
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
987 # name of the method from which to re-fill
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
988 # returns: the next element from that queue, or undef if the queue is empty
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
989 ###############################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
990 sub _next_element{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
991 my ($self,$queuename,$meth) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
992
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
993 $queuename = "_".$queuename."_queue";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
994 if(! exists($self->{$queuename})) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
995 # re-initialize from array of sequence data
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
996 $self->{$queuename} = [@{$self->$meth() }];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
997 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
998 my $queue = $self->{$queuename};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
999 # is queue exhausted (equivalent to end of stream)?
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1000 if(! @$queue) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1001 # yes, remove queue and signal to the caller
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1002 delete $self->{$queuename};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1003 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1004 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1005 return shift(@$queue);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1006 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1007
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1008 =head1 L<Bio::IdentifiableI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1009
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1010 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1011
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1012 =head2 object_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1013
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1014 Title : object_id
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1015 Usage : $string = $obj->object_id()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1016 Function: a string which represents the stable primary identifier
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1017 in this namespace of this object. For DNA sequences this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1018 is its accession_number, similarly for protein sequences
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1019
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1020 This is aliased to unigene_id().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1021
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1022 Returns : A scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1023
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1024
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1025 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1026
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1027 sub object_id {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1028 return shift->unigene_id(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1029 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1030
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1031 =head2 version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1032
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1033 Title : version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1034 Usage : $version = $obj->version()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1035 Function: a number which differentiates between versions of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1036 the same object. Higher numbers are considered to be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1037 later and more relevant, but a single object described
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1038 the same identifier should represent the same concept
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1039
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1040 Unigene clusters usually won''t have a version, so this
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1041 will be mostly undefined.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1042
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1043 Returns : A number
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1044 Args : on set, new value (a scalar or undef, optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1045
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1046
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1047 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1048
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1049 sub version {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1050 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1051
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1052 return $self->{'version'} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1053 return $self->{'version'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1054 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1055
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1056
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1057 =head2 authority
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1058
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1059 Title : authority
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1060 Usage : $authority = $obj->authority()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1061 Function: a string which represents the organisation which
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1062 granted the namespace, written as the DNS name for
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1063 organisation (eg, wormbase.org)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1064
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1065 Returns : A scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1066 Args : on set, new value (a scalar or undef, optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1067
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1068
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1069 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1070
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1071 sub authority {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1072 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1073
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1074 return $self->{'authority'} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1075 return $self->{'authority'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1076 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1077
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1078
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1079 =head2 namespace
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1080
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1081 Title : namespace
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1082 Usage : $string = $obj->namespace()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1083 Function: A string representing the name space this identifier
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1084 is valid in, often the database name or the name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1085 describing the collection
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1086
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1087 Returns : A scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1088 Args : on set, new value (a scalar or undef, optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1089
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1090
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1091 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1092
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1093 sub namespace {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1094 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1095
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1096 return $self->{'namespace'} = shift if @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1097 return $self->{'namespace'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1098 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1099
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1100 =head1 L<Bio::DescribableI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1101
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1102 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1103
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1104 =head2 display_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1105
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1106 Title : display_name
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1107 Usage : $string = $obj->display_name()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1108 Function: A string which is what should be displayed to the user
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1109 the string should have no spaces (ideally, though a cautious
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1110 user of this interface would not assumme this) and should be
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1111 less than thirty characters (though again, double checking
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1112 this is a good idea)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1113
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1114 This is aliased to unigene_id().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1115
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1116 Returns : A scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1117 Status : Virtual
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1118
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1119 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1120
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1121 sub display_name {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1122 return shift->unigene_id(@_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1123 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1124
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1125
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1126 =head2 description()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1127
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1128 Title : description
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1129 Usage : $string = $obj->description()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1130 Function: A text string suitable for displaying to the user a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1131 description. This string is likely to have spaces, but
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1132 should not have any newlines or formatting - just plain
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1133 text. The string should not be greater than 255 characters
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1134 and clients can feel justified at truncating strings at 255
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1135 characters for the purposes of display
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1136
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1137 This is already demanded by Bio::ClusterI and hence is
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1138 present anyway.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1139
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1140 Returns : A scalar
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1141
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1142
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1143 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1144
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1145
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1146 =head1 L<Bio::Factory::SequenceStreamI> methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1147
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1148 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1149
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1150 =head2 next_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1151
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1152 Title : next_seq
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1153 Usage : next_seq();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1154 Function: Returns the next seq as a Seq object as defined by
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1155 $seq->sequence_factory(),
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1156 at present an empty Bio::Seq::RichSeq object with
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1157 just the accession_number() and pid() set
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1158
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1159 This iterator will not exhaust the array of member
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1160 sequences. If you call next_seq() again after it returned
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1161 undef, it will re-cycle through the list of member
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1162 sequences.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1163
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1164 Example : while ( my $sequence = $in->next_seq() ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1165 print $sequence->accession_number() . "\n";
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1166 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1167 Returns : Bio::PrimarySeqI object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1168 Args : None
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1169
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1170 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1171
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1172 sub next_seq {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1173 my ($obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1174
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1175 if(! exists($obj->{'_seq_queue'})) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1176 # re-initialize from array of sequence data
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1177 $obj->{'_seq_queue'} = [@{$obj->sequences()}];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1178 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1179 my $queue = $obj->{'_seq_queue'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1180 # is queue exhausted (equivalent to end of stream)?
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1181 if(! @$queue) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1182 # yes, remove queue and signal to the caller
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1183 delete $obj->{'_seq_queue'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1184 return undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1185 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1186 # no, still data in the queue: get the next one from the queue
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1187 my $seq_h = shift(@$queue);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1188 # if this is not a simple hash ref, it's an object already, and we'll
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1189 # return just that
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1190 return $seq_h if(ref($seq_h) ne 'HASH');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1191 # nope, we need to assemble this object from scratch
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1192 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1193 # assemble the annotation collection
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1194 my $ac = Bio::Annotation::Collection->new();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1195 foreach my $k (keys %$seq_h) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1196 next if $k =~ /acc|pid|nid|version/;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1197 my $ann = Bio::Annotation::SimpleValue->new(-tagname => $k,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1198 -value => $seq_h->{$k});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1199 $ac->add_Annotation($ann);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1200 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1201 # assemble the initialization parameters and create object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1202 my $seqobj = $obj->sequence_factory->create(
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1203 -accession_number => $seq_h->{acc},
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1204 -pid => $seq_h->{pid},
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1205 # why does NCBI prepend a 'g' to its own identifiers??
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1206 -primary_id => $seq_h->{nid} && $seq_h->{nid} =~ /^g\d+$/ ?
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1207 substr($seq_h->{nid},1) : $seq_h->{nid},
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1208 -display_id => $seq_h->{acc},
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1209 -seq_version => $seq_h->{version},
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1210 -alphabet => $obj->{'_alphabet'},
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1211 -namespace => $seq_h->{acc} =~ /^NM_/ ? 'RefSeq' : 'GenBank',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1212 -authority => $obj->authority(), # default is NCBI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1213 -species => $obj->species(),
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1214 -annotation => $ac
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1215 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1216 return $seqobj;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1217 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1218
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1219 =head2 sequence_factory
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1220
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1221 Title : sequence_factory
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1222 Usage : $seqio->sequence_factory($seqfactory)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1223 Function: Get/Set the Bio::Factory::SequenceFactoryI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1224 Returns : Bio::Factory::SequenceFactoryI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1225 Args : [optional] Bio::Factory::SequenceFactoryI
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1226
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1227
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1228 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1229
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1230 sub sequence_factory {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1231 my ($self,$obj) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1232 if( defined $obj ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1233 if( ! ref($obj) || ! $obj->isa('Bio::Factory::SequenceFactoryI') ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1234 $self->throw("Must provide a valid Bio::Factory::SequenceFactoryI object to ".ref($self)." sequence_factory()");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1235 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1236 $self->{'_seqfactory'} = $obj;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1237 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1238 $self->{'_seqfactory'};
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1239 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1240
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1241 =head1 Private methods
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1242
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1243 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1244
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1245 =head2 _annotation_value
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1246
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1247 Title : _annotation_value
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1248 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1249 Function: Private method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1250 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1251 Returns : the value (a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1252 Args : annotation key (a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1253 on set, annotation value (a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1254
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1255
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1256 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1257
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1258 sub _annotation_value{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1259 my $self = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1260 my $key = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1261
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1262 my ($ann, $val);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1263 if(@_) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1264 $val = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1265 if(! defined($val)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1266 ($ann) = $self->annotation->remove_Annotations($key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1267 return $ann ? $ann->value() : undef;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1268 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1269 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1270 ($ann) = $self->annotation->get_Annotations($key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1271 if($ann && (! $val)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1272 # get mode and exists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1273 $val = $ann->value();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1274 } elsif($val) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1275 # set mode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1276 if(! $ann) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1277 $ann = Bio::Annotation::SimpleValue->new(-tagname => $key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1278 $self->annotation->add_Annotation($ann);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1279 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1280 $ann->value($val);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1281 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1282 return $val;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1283 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1284
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1285
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1286 =head2 _annotation_value_ary
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1287
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1288 Title : _annotation_value_ary
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1289 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1290 Function: Private method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1291 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1292 Returns : reference to the array of values
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1293 Args : annotation key (a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1294 on set, reference to an array holding the values
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1295
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1296
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1297 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1298
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1299 sub _annotation_value_ary{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1300 my ($self,$key,$arr) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1301
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1302 my $ac = $self->annotation;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1303 if($arr) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1304 # purge first
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1305 $ac->remove_Annotations($key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1306 # then add as many values as are present
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1307 foreach my $val (@$arr) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1308 my $ann = Bio::Annotation::SimpleValue->new(-value => $val,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1309 -tagname => $key
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1310 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1311 $ac->add_Annotation($ann);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1312 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1313 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1314 my @vals = map { $_->value(); } $ac->get_Annotations($key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1315 $arr = [@vals];
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1316 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1317 return $arr;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1318 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1319
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1320
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1321 =head2 _annotation_dblink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1322
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1323 Title : _annotation_dblink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1324 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1325 Function: Private method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1326 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1327 Returns : array of accessions for the given database (namespace)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1328 Args : annotation key (a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1329 dbname (a string) (optional on get, mandatory on set)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1330 on set, accession or ID (a string), and version
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1331
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1332
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1333 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1334
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1335 sub _annotation_dblink{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1336 my ($self,$key,$dbname,$acc,$version) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1337
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1338 if($acc) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1339 # set mode -- this is adding here
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1340 my $ann = Bio::Annotation::DBLink->new(-tagname => $key,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1341 -primary_id => $acc,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1342 -database => $dbname,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1343 -version => $version);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1344 $self->annotation->add_Annotation($ann);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1345 return 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1346 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1347 # get mode
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1348 my @anns = $self->annotation->get_Annotations($key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1349 # filter out those that don't match the requested database
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1350 if($dbname) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1351 @anns = grep { $_->database() eq $dbname; } @anns;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1352 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1353 return map { $_->primary_id(); } @anns;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1354 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1355 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1356
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1357 =head2 _remove_dblink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1358
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1359 Title : _remove_dblink
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1360 Usage :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1361 Function: Private method.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1362 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1363 Returns : array of accessions for the given database (namespace)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1364 Args : annotation key (a string)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1365 dbname (a string) (optional)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1366
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1367
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1368 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1369
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1370 sub _remove_dblink{
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1371 my ($self,$key,$dbname) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1372
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1373 my $ac = $self->annotation();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1374 my @anns = ();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1375 if($dbname) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1376 foreach my $ann ($ac->remove_Annotations($key)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1377 if($ann->database() eq $dbname) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1378 push(@anns, $ann);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1379 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1380 $ac->add_Annotation($ann);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1381 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1382 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1383 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1384 @anns = $ac->remove_Annotations($key);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1385 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1386 return map { $_->primary_id(); } @anns;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1387 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1388
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1389
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1390 #####################################################################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1391 # aliases for naming consistency or other reasons #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1392 #####################################################################
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1393
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1394 *sequence = \&sequences;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1395
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1396 1;