annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/Array.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 # Ensembl module for Bio::EnsEMBL::Funcgen::Array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 # You may distribute this module under the same terms as Perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 Copyright (c) 1999-2011 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 developers list at <ensembl-dev@ebi.ac.uk>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 Bio::EnsEMBL::Funcgen::Array - A module to represent a nucleotide microarray.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 use Bio::EnsEMBL::Funcgen::Array;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 my $array = Bio::EnsEMBL::Funcgen::Array->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 -NAME => 'Array-1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 -FORMAT => 'Tiled',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 -SIZE => '1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 -VENDOR => 'Nimblegen',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 -DESCRIPTION => $desc,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 -TYPE => 'OLIGO',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 -CLASS => 'VENDOR_FORMAT'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 my $db_adaptor = Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor->new(...);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 my $array_adaptor = $db_adaptor->get_ArrayAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 my $array = $array_adaptor->fetch_by_name($array_name)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 An Array object represents a nucleotide (OLIGO, PCR etc.) microarray. The data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 (currently the name, format, size, species, vendor and description) are stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 in the array table.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 package Bio::EnsEMBL::Funcgen::Array;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 use Bio::EnsEMBL::Utils::Exception qw( throw warning );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 use Bio::EnsEMBL::Funcgen::Storable;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 use vars qw(@ISA);# %VALID_TYPE);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 @ISA = qw(Bio::EnsEMBL::Funcgen::Storable);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 # Possible types for OligoArray objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 #This should match the vendor enum values?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 #%VALID_TYPE = (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 # 'AFFY' => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 # 'OLIGO' => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 #);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 Arg [-NAME] : string - the name of this array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 Arg [-VENDOR] : string - the vendor of this array (AFFY, NIMBLEGEN etc)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 Arg [-TYPE] : string - type of array e.g. OLIGO, PCR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 Arg [-FORMAT] : string - the format of this array (TILED, TARGETTED, GENE etc)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 Arg [-DESCRIPTION] : strin - description of the array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 #array_chips is array of hashes or design_id and name, dbID will be populated on store, this should be a simple object!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Example : my $array = Bio::EnsEMBL::Funcgen::Array->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 -NAME => 'Array-1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 -FORMAT => 'Tiled',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 -SIZE => '1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 -VENDOR => 'Nimblegen',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 -TYPE => 'OLIGO',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 -DESCRIPTION => $desc,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 -CLASS => 'VENDOR_FORMAT',#e.g. AFFY_UTR, ILLUMINA_WG
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Description: Creates a new Bio::EnsEMBL::Funcgen::Array object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 Returntype : Bio::EnsEMBL::Funcgen::Array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Exceptions : None ? should throw if mandatort params not set/valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 my ($name, $format, $size, $vendor, $type, $desc, $aclass)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 = rearrange( ['NAME', 'FORMAT', 'SIZE', 'VENDOR', 'TYPE', 'DESCRIPTION', 'CLASS'], @_ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 #mandatory params?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 #name, format, vendor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 #enum on format?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 my @stack = caller();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 if($self->dbID() && $stack[0] ne "Bio::EnsEMBL::Funcgen::DBSQL::ArrayAdaptor"){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 throw("You must use the ArrayAdaptor($stack[0]) to generate Arrays with a dbID i.e. from the DB, as this module accomodates updating which may cause incorrect data if the object is not generated form the DB");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 throw("Must provide a vendor parameter") if ! $vendor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 throw("Must provide a name parameter") if ! $name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 #any others?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 $self->name($name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 $self->format($format) if defined $format;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 if(defined $format && $format eq 'EXPRESSION' && ! defined $class){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 throw('You must defined a class if you are importing and array with an EXPRESSION format');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 $self->class(uc($aclass)) if defined $aclass;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 $self->size($size) if defined $size;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 $self->vendor($vendor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 $self->description($desc) if defined $desc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $self->type($type) if defined $type;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 =head2 get_all_Probes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 Example : my $probes = $array->get_all_Probes();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 Description: Returns all probes on an array. Needs a database connection.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 Returntype : Listref of Bio::EnsEMBL::Funcgen::Probe objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 sub get_all_Probes {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 if ( $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 my $opa = $self->adaptor()->db()->get_ProbeAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 my $probes = $opa->fetch_all_by_Array($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 return $probes;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 warning('Need database connection to retrieve Probes');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 return [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 =head2 get_all_Probe_dbIDs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 Example : my @dbids = @{$array->get_all_Probe_dbIDs};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 Description: Returns an array ref of all the Probe database IDs for this array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 Returntype : arrayref of ints
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 sub get_all_Probe_dbIDs {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 if(! $self->{probe_dbids}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 #check for adaptor here?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 if(! $self->adaptor){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 throw('Must have set an adaptor to get_all_Probe_dbIDs');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 $self->{probe_dbids} = $self->adaptor->fetch_Probe_dbIDs_by_Array($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 return $self->{probe_dbids};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 #Nath new get methods
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 =head2 get_all_ProbeSets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 Example : my $probesets = $array->get_all_ProbeSets();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 Description: Returns all probesets on an array. Needs a database connection.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 Returntype : Listref of Bio::EnsEMBL::Funcgen::ProbeSets objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 sub get_all_ProbeSets {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 if ( $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 my $opsa = $self->adaptor()->db()->get_ProbeSetAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 my $probesets = $opsa->fetch_all_by_Array($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 return $probesets;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 warning('Need database connection to retrieve ProbeSets');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 return [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 #All the array_chip methods will be migrated to ArrayChip.pm
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 =head2 get_array_chip_ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Example : my @ac_ids = @{$array->get_array_chip_ids()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Description: Returns all array_chip_ids for this array.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Returntype : Listref of array_chip ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 Exceptions : Throws if none retrieved
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 sub get_array_chip_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 my @ac_ids;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 $self->get_ArrayChips();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 #should we get_ArrayChips is we have none cached?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 #this may cause problem
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 foreach my $achip(values %{$self->{'array_chips'}}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 push @ac_ids, $achip->dbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 if(! @ac_ids){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 throw("No array_chip_ids available"); # should this be warn?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 return \@ac_ids;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 =head2 get_design_ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 Example : my @design_ids = @{$array->get_design_ids()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 Description: Returns a the design_ids for each array_chip contained within this array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 Returntype : list
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 sub get_design_ids{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 return [keys %{$self->{'array_chips'}}];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 =head2 name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 Arg [1] : (optional) string - the name of this array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 Example : my $name = $array->name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 Description: Getter, setter of the name attribute for Array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 sub name{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 $self->{'name'} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 #do we need this?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 #if ( !exists $self->{'name'} && $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 # $self->adaptor->fetch_attributes($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 return $self->{'name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 =head2 type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 Arg [1] : (optional) string - the type of this array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 Example : $array->type('OLIGO');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 Description: Getter, setter of the type attribute for Array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 sub type{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 $self->{'type'} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 return $self->{'type'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 =head2 format
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 Arg [1] : (optional) string - the format of the array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 Example : my $format = $array->format();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 Description: Getter, setter of format attribute for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 Array objects e.g. Tiled, Targetted etc...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 sub format {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 $self->{'format'} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 #do we need this?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 #if ( !exists $self->{'format'} && $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 # $self->adaptor->fetch_attributes($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 return $self->{'format'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 =head2 class
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 Arg [1] : (optional) string - the class of the array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 Example : my $class = $array->class('AFFY_UTR');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 Description: Getter, setter of class attribute for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 Array objects e.g. AFFY_UTR, AFFY_ST
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 sub class {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 $self->{'class'} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 return $self->{'class'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 =head2 size
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 Arg [1] : (optional) int - the number of ? in the array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 Example : my $size = $array->size();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 Description: Getter of size attribute for Array objects. This
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 simply counts the constituent ArrayChips
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 Returntype : int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 sub size {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 return scalar(keys %{$self->{'array_chips'}});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 =head2 vendor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 Arg [1] : (optional) string - the name of the array vendor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 Example : my $vendor = $array->vendor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 Description: Getter, setter of vendor attribute for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 Array objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 sub vendor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 $self->{'vendor'} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 #do we need this?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 #if ( !exists $self->{'vendor'} && $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 # $self->adaptor->fetch_attributes($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 return $self->{'vendor'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 =head2 description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 Arg [1] : (optional) string - the description of the array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 Example : my $size = $array->description();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 Description: Getter, setter of description attribute for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 Array objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 sub description {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 $self->{'description'} = shift if @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 #do we need this?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 #if ( !exists $self->{'description'} && $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 # $self->adaptor->fetch_attributes($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 #}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 return $self->{'description'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 =head2 probe_count
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 Example : my $num_probes = $array->probe_count();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 Description: Return number of probes on array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466 sub probe_count {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 #Do we want a distinct flag here?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 if(! defined $self->{'probe_count'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 $self->{'probe_count'} = $self->adaptor->fetch_probe_count_by_Array($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 return $self->{'probe_count'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 =head2 get_ArrayChips
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 Example : my @achips = @{$array->get_ArrayChips()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482 Description: Getter, setter and lazy loader of array_chip hashes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 Returntype : Arrays of ArrayChip objects
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484 Exceptions : Throws exception if none found for array_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 Status : High Risk - migrate to ArrayChip.pm
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 sub get_ArrayChips {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493 #lazy loaded as we won't want this for light DB
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494 #should do meta check and want here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 if ( ! exists $self->{'array_chips'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 if( $self->dbID() && $self->adaptor() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 #$self->adaptor->fetch_attributes($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500 #need to do this differently as we're accessing a different table
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 $self->{'array_chips'} = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503 foreach my $achip(@{$self->adaptor->db->get_ArrayChipAdaptor->fetch_all_by_array_id($self->dbID())}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 $self->{'array_chips'}{$achip->design_id} = $achip;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505 #%{$self->{'array_chips'}} = %{$self->adaptor->db->get_ArrayAdaptor->_fetch_array_chips_by_array_dbID($self->dbID())};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508 else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509 throw("Need array dbID and DB connection to retrieve array_chips");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513 return [ values %{$self->{'array_chips'}} ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 =head2 get_ArrayChip_by_design_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518 Arg [1] : (mandatory) int - design_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 Example : my %ac = %{$array->get_ArrayChip_by_design_id('1234')};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520 Description: Getter for array_chip hashes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521 Returntype : Hashref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 Exceptions : Throws exception if no design_id defined, warns if not part of array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528 sub get_ArrayChip_by_design_id{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 my ($self, $design_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 #warn "This needs to get the array chip if not defined?? but we're using it to test whether is has been stored same problem as probe_design?";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534 my ($achip);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535 throw("Must supply a valid array chip design_id") if (! defined $design_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537 if(defined $self->{'array_chips'}{$design_id}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 $achip = $self->{'array_chips'}{$design_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 #No we use this to check whether it has been stored with the array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 #warn("should this throw? Array does not contain ArrayChip:$design_id\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 return $achip;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 =head2 add_ArrayChip
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549 Arg [1] : mandatory - Bio::EnsEMBL::Funcgen::ArrayChip
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550 Example : $array->add_ArrayChip($array_chip);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551 Description: Setter for array chips
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552 Returntype : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553 Exceptions : Throws if arg not a Bio::EnsEMBL::Funcgen::ArrayChip, or Array not stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555 Status : Ar risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 #This uses previosuly stored array_chips withotu warning
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560 #Need to implement fetch_store method?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562 sub add_ArrayChip{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 my ($self, $array_chip) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565 throw("You must supply a stored Bio::EnsEMBL::Funcgen::ArrayChip") if(! ($array_chip &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566 $array_chip->isa("Bio::EnsEMBL::Funcgen::ArrayChip") &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567 $array_chip->dbID()));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569 if ($self->dbID() && $self->adaptor()){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570 $self->get_ArrayChips() if (! $self->{'array_chips'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 if(exists $self->{'array_chips'}{$array_chip->design_id}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573 $array_chip = $self->{'array_chips'}{$array_chip->design_id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 #warn("Array chip for ".$array_chip->design_id()." already exists, using previous stored array chip\n");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576 $self->{'array_chips'}{$array_chip->design_id} = $array_chip;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 throw("Array must be stored before adding an array_chip");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
586
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
587 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
588