annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/Experiment.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Copyright (c) 1999-2011 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15 developers list at <ensembl-dev@ebi.ac.uk>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 Bio::EnsEMBL::Funcgen::Experiment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 use Bio::EnsEMBL::Funcgen::Experiment;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 my $exp = Bio::EnsEMBL::Funcgen::Experiment->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 -ADAPTOR => $self,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 -NAME => $name,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 -EXPERIMENTAL_GROUP => $experimental_group,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 -DATE => $date,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 -PRIMARY_DESIGN_TYPE => 'binding_site_indentification',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 -DESCRIPTION => $description,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 -ARCHIVE_ID => $archive_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 my $db_adaptor = Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor->new(...);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 my $exp_adaptor = $db_adaptor->get_ExperimentAdaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 my $exp = $exp_adaptor->fetch_by_name($exp_name)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 The Experiment class represents an instance of an experiment i.e. a discrete set of data
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 ################################################################################
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 package Bio::EnsEMBL::Funcgen::Experiment;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 use warnings;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 use Bio::EnsEMBL::Utils::Exception qw( throw warning deprecate );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 use Bio::EnsEMBL::Funcgen::Storable;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 use vars qw(@ISA);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 @ISA = qw(Bio::EnsEMBL::Funcgen::Storable);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 =head2 new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 Arg [-NAME] : String - experiment name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70 Arg [-EXPERIMENTAL_GROUP] : Bio::EnsEMBL::Funcgen ExperimentalGroup associated with this experiment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 Arg [-DATE] : String - Date of the experiment (YYYY-MM-DD)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 Arg [-PRIMARY_DESIGN_TYPE] : String - MGED term for the primary design of teh experiment e.g. binding_site_identification
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 Arg [-DESCRIPTION] : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 Example : my $array = Bio::EnsEMBL::Funcgen::Experiment->new
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 -NAME => $name,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 -EXPERIMENTAL_GROUP => $group,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 -DATE => $date,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 -PRIMARY_DESIGN_TYPE => $p_design_type,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 -DESCRIPTION => $description,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 Description: Creates a new Bio::EnsEMBL::Funcgen::Experiment object.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 Returntype : Bio::EnsEMBL::Funcgen::Experiment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Exceptions : Throws if name not defined
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Throws if ExperimentalGroup not valid
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 Status : Medium Risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 my $caller = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 my $class = ref($caller) || $caller;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 my $self = $class->SUPER::new(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 my ($name, $group, $date, $p_dtype, $desc, $archive_id, $data_url, $xml_id, $xml)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 = rearrange( ['NAME', 'EXPERIMENTAL_GROUP', 'DATE', 'PRIMARY_DESIGN_TYPE',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 'DESCRIPTION','ARCHIVE_ID', 'DATA_URL', 'MAGE_XML', 'MAGE_XML_ID'], @_ );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 #Added in v68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106 #Remove in v69
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 if($data_url || $archive_id){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 throw('The -data_url and -archive_id parameters have been moved to the InputSubSet class');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112 #Mandatory attr checks
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 if(ref($group) ne 'Bio::EnsEMBL::Funcgen::ExperimentalGroup'){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 throw("Must pass a valid stored Bio::EnsEMBL::Funcgen::ExperimentalGroup object");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 if(! defined $name){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 throw('You must provide a name parameter');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 #test date format here?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 #Direct assignment here so we avoid setter test in methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 $self->{name} = $name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 $self->{group} = $group;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 $self->{date} = $date if defined $date;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 $self->{primary_design_type} = $p_dtype if defined $p_dtype; #MGED term for primary design type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 $self->{description} = $desc if defined $desc;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 #Maintain setter funcs here as these are populated after initialisation
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 $self->mage_xml_id($xml_id) if defined $xml_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 $self->mage_xml($xml) if defined $xml;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 ### ACCESSOR METHODS ###
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 =head2 name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 Example : my $exp_name = $exp->name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 Description : Getter for the experiment name
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 sub name{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 return $_[0]->{'name'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 =head2 experimental_group
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 Example : my $exp_group_name = $exp->experimental_group()->name();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 Description : Getter for the experimental group
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 Returntype : Bio::EnsEMBL::Funcgen::ExperimentalGroup
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 sub experimental_group{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 return $_[0]->{'group'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 =head2 date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 Example : my $exp_date = $exp->date;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177 Description : Getter for the date
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 sub date{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 return $_[0]->{'date'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 =head2 description
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 Example : my $exp_desc = $exp->description
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 Description : Getter for the experiment description
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 Status : At risk - Not used, was stable until v64
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 sub description{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 return $_[0]->{'description'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 =head2 primary_design_type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Example : my $pdt = $exp->primary_design_type;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Description : Getter for the primary design type
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Returntype : String - MGED term
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 sub primary_design_type{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 return $_[0]->{'primary_design_type'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 # Accessor/Setter methods
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 =head2 mage_xml
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 Arg [1] : string(optional) - MAGE XML
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 Example : my $xml = $exp->mage_xml();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 Description : Getter/Setter for the mage_xml attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 Status : at risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 sub mage_xml{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 my ($self) = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 $self->{'mage_xml'} = shift if(@_);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 #use fetch_attrs?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 if(! exists $self->{'mage_xml'} && $self->mage_xml_id()){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 $self->{'mage_xml'} = $self->adaptor->fetch_mage_xml_by_Experiment($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 return (exists $self->{'mage_xml'}) ? $self->{'mage_xml'} : undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 =head2 mage_xml_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 Arg [1] : int (optional) - mage_xml_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 Example : $exp->group_db_id('1');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 Description : Getter/Setter for the mage_xml attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 Returntype : String
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261 Status : at risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 sub mage_xml_id{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268 $self->{'mage_xml_id'} = shift if @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 return $self->{'mage_xml_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 #These convenience methods are to provide a registry for the experimental chips of the experiment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 =head2 get_ExperimentalChips
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 Example : my $exp_chips = @{$exp->get_ExperimentalChips()}
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 Description : Retrieves all ExperiemntalChips
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 Returntype : Listref of ExperimentalChips
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 sub get_ExperimentalChips{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292 my ($self) = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 #should this also store echips?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 #Need to retrieve all from DB if not defined, then check whether already present and add and store if not
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 #what about immediate access to dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 #should we separate and have add_ExperimentalChip?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 if(! exists $self->{'experimental_chips'}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 $self->{'experimental_chips'} = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 #need to warn about DBAdaptor here?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 foreach my $echip(@{$self->adaptor->db->get_ExperimentalChipAdaptor->fetch_all_by_experiment_dbID($self->dbID())}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 $self->{'experimental_chips'}->{$echip->unique_id()} = $echip;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 #is this returning a list or a listref?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 return [values %{$self->{'experimental_chips'}}];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 =head2 add_ExperimentalChip
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 Example : $exp_chip = $exp->add_ExperimentalChip($exp_chip)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 Description : Adds and stores an ExperiemntalChip for this Experiment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 Returntype : Bio::EnsEMBL::Funcgen::ExperimentalChip
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 Exceptions : Throws is not passed a valid stored Bio::EnsENBML::Funcgen::ExperimentalChip
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 sub add_ExperimentalChip{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 my ($self, $echip) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331 throw("Must pass a valid stored Bio::EnsEMBL::Funcgen::ExperimentalChip object")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332 if(! $echip->isa("Bio::EnsEMBL::Funcgen::ExperimentalChip") || ! $echip->dbID());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 if(! exists $self->{'experimental_chips'}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 $self->get_ExperimentalChips();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 $self->{'experimental_chips'}->{$echip->unique_id()} = $echip;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 #do this here without checking to avoid probelm of retrieving first stored chip
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 }elsif(exists $self->{'experimental_chips'}->{$echip->unique_id()}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 warn("You cannot add the same ExperimentalChip(".$echip->unique_id().")to an Experiment more than once, check your code");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 }else{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 $self->{'experimental_chips'}->{$echip->unique_id()} = $echip;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 return;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 =head2 get_ExperimentalChip_by_unique_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349 Example : $exp_chip = $exp->add_ExperimentalChip($exp_chip)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350 Description : Adds and stores an ExperiemntalChip for this Experiment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 Returntype : Bio::EnsEMBL::Funcgen::ExperimentalChip
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 Exceptions : Throws if no uid supplied
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358 sub get_ExperimentalChip_by_unique_id{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359 my ($self, $uid) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 my ($echip);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 throw("Must supply a ExperimentalChip unque_id") if(! defined $uid);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 $self->{'experimental_chips'} || $self->get_ExperimentalChips();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 if(exists $self->{'experimental_chips'}->{$uid}){
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368 $echip = $self->{'experimental_chips'}->{$uid};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370 #should we warn here if not exists?
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 return $echip;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376 =head2 get_ExperimentalChip_unique_ids
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 Example : foreach my $uid(@{$self->experiment->get_ExperimentalChip_unique_ids()}){ ... }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 Description : retrieves all ExperimentalChip unique_ids
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 Returntype : ListRef
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 Exceptions : None
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 Caller : General
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 sub get_ExperimentalChip_unique_ids{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390 $self->{'experimental_chips'} || $self->get_ExperimentalChips();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 return [keys %{ $self->{'experimental_chips'}}];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 ### Deprecated methods ###
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 sub group{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 deprecate("group is deprecated experimental_group instead");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 throw("You are trying to set a experimental group name using a deprecated method") if @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 return $self->experimental_group()->name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 sub group_id{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 my ($self) = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414 deprecate("Experiment->group_id is deprecated. Use exp->experimental_group->dbID instead");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 return $self->experimental_group()->dbID;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420 sub archive_id{ #deprecated in v68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 #would deprecate, but no easy way of doing this reliably
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 throw("Use InputSubset->archive_id");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 sub data_url{ #deprecated in v68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427 #would deprecate, but no easy way of doing this reliably
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428 throw("Use InputSubset->display_url");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 sub source_info{ #deprecated in v68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 #would deprecate, but no easy way of doing this reliably
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 throw("Use InputSubset->source_info");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439