annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/ResultSet.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::ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 Copyright (c) 1999-2011 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 developers list at <ensembl-dev@ebi.ac.uk>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 Bio::EnsEMBL::ResultSet - A module to represent ResultSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 use Bio::EnsEMBL::Funcgen::ResultSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 my $result_set = Bio::EnsEMBL::Funcgen::ResultSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 -dbid => $dbid,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 -analysis => $analysis,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 -table_name => 'experimental_chip',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 -table_id => $ec_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 A ResultSet object provides access to a set raw results from an Experiment. A set will be one or more
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 contiguous chips to be treated as one set, with the same analysis. Duplicate sets will form a separate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 result set, as will the same raw data analysed or normalised in a different manner.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 #To do
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 #Change add_table_id to add_ExperimentalChip_Channel?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 package Bio::EnsEMBL::Funcgen::ResultSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 use Bio::EnsEMBL::Utils::Exception qw( throw deprecate);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 use Bio::EnsEMBL::Funcgen::Set;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 @ISA = qw(Bio::EnsEMBL::Funcgen::Set);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 Arg [-ANALYSIS] :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 Example : my $feature = Bio::EnsEMBL::Funcgen::ResultSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 -dbid => $dbid,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 -analysis => $analysis,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 -table_name => 'experimental_chip',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 -table_id => $ec_id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 -result_feature_set => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 Description: Constructor for ResultSet objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Returntype : Bio::EnsEMBL::Funcgen::ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 Exceptions : Throws if no experiment_id defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 my $self = $class->SUPER::new(@_, ('-feature_class' => 'result'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 my ($table_name, $table_id, $rf_set, $dbfile_data_dir)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 = rearrange(['TABLE_NAME', 'TABLE_ID', 'RESULT_FEATURE_SET', 'DBFILE_DATA_DIR'], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 $self->{'table_id_hash'} = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 #maybe don't need tha analysis args as mandatory as we're testing in the adaptor store method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 if (! $table_name){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 throw("Need to pass the following arg:\t-table_name");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 #do we need some control of creating new objects with dbID and adding result_groups/feature_sets and them storing/updating them
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 #potential for someone to create one from new using a duplicate dbID and then linking incorrect data to a pre-existing ResultGroup
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 #we need to verify that each table_name/id in the set is from the same experiment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 $self->table_name($table_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 $self->add_table_id($table_id) if $table_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 $self->result_feature_set($rf_set) if $rf_set;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 $self->dbfile_data_dir($dbfile_data_dir) if $dbfile_data_dir;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 #These are CollectionContainer? methods
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 #For a core track the would probably be in the Analysis
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 #All other collection methods are in ResultFeatureAdaptor(and parents)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 =head2 get_dbfile_path_by_window_size
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 Arg[1] : int - window size
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 Arg[2] : OPTIONAL Bio::EnsEMBL::Slice Used when generating individual seq_region Collections
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 Example : my $filepath = $self->get_dbfile_path_by_ResultSet_window_size($rset, $wsize);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 Description: Generates the default dbfile path for a given ResultSet and window_size
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 Exceptions : Throws if Slice is not valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 sub get_dbfile_path_by_window_size{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 my ($self, $window_size, $slice) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 if($slice){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 if(! (ref($slice) && $slice->isa("Bio::EnsEMBL::Slice"))){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 throw('You must provide a valid Bio::EnsEMBL::Slice');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $window_size .= '.'.$slice->seq_region_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 return $self->dbfile_data_dir.'/result_features.'.$self->name.'.'.$window_size.'.col';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 =head2 dbfile_data_dir
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 Arg[1] : OPTIONAL string - data directory for this ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 Example : my $dbfile_data_dir = $self->dbfile_data_dir;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Description: Getter/Setter for the root dbfile data directory for this ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 Caller : self
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 Status : at risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 sub dbfile_data_dir{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 my ($self, $data_dir) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 $self->{'dbfile_data_dir'} = $data_dir if defined $data_dir;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 return $self->{'dbfile_data_dir'};
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
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 =head2 result_feature_set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 Arg [1] : optional - boolean 0 or 1.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 Example : if($rset->result_feature_set){ ...use result_feature table ...};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 Description: Getter and setter for the result_feature_set attribute.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 Returntype : boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 sub result_feature_set{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 $self->{'result_feature_set'} = shift if @_;;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 return $self->{'result_feature_set'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 =head2 table_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 Arg [1] : (optional) string - table_name (experimental_chip, channel or input_set)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 Example : $result_set->experiment_id($exp_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 Description: Getter and setter for the table_name for this ResultSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 sub table_name{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 if (@_){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 if($self->{'table_name'} && ($self->{'table_name'} ne $_[0])){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 throw("Cannot mix table name/types of a ResultSet");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 $self->{'table_name'} = $_[0];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 return $self->{'table_name'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 =head2 add_table_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 Example : $result_set->add_table_id($ec_id, $cc_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 Description: Caches table_id result_set_input_id to the ResultSet. In the case of an
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 array ResultSet, the unique result_set_input_id is used to key into the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 result table, it also reduces redundancy and enable mapping of results to chips
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 rather than just the ResultSet. This enables result retrieval
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 based on chips in the same set which have a differing status.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 In the case of a sequencing ResultSet, this simply refers to the InputSet ids.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 Returntype : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 Exceptions : Throws if no table_id defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 sub add_table_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 my ($self, $table_id, $cc_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 if (! defined $table_id){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 throw("Need to pass a table_id");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 if((exists $self->{'table_id_hash'}->{$table_id}) && (defined $self->{'table_id_hash'}->{$table_id})){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 throw("You are attempting to redefine a result_set_input_id which is already defined");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 $self->{'table_id_hash'}->{$table_id} = $cc_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 =head2 table_ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 Example : $result_set->feature_group_id($fg_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 Description: Getter and setter for the feature_group_id for this ResultSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 Returntype : int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 sub table_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 return [ keys %{$self->{'table_id_hash'}} ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 sub chip_channel_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 deprecate('ResultSet::chip_channel_ids is deprecated, please use result_set_input_ids');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 return $self->result_set_input_ids;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 =head2 result_set_input_ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 Example : my @rset_rsi_ids = @{$result_set->result_set_input_ids()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 Description: Getter for the input ids for this ResultSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 Returntype : arrayref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 sub result_set_input_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 return [ values %{$self->{'table_id_hash'}} ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 =head2 contains
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 Example : if($result_set->contains($chip_or_channel)){...do some chip or channel erpartions here...};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Description: Returns true if the given Channel or ExperimentalChip is part of this ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Returntype : boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 Exceptions : warns if ResultSet table name is not of argument type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 sub contains{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 my ($self, $chip_channel) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 my $contains = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 my @tables = $chip_channel->adaptor->_tables();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 my ($table_name, undef) = @{$tables[0]};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 if($table_name ne $self->table_name()){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 warn("ResultSet(".$self->table_name().") cannot contain ${table_name}s");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 $contains = 1 if (exists $self->{'table_id_hash'}->{$chip_channel->dbID()});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 return $contains;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 =head2 get_result_set_input_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 Arg [1] : int - dbID (experimental_chip, channel or input_set)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 Example : $result_set->get_result_set_input_id($ec_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 Description: Retrieves a result_set_input_id from the cache given a dbID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 Returntype : int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 sub get_result_set_input_id{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 my ($self, $table_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 return (exists $self->{'table_id_hash'}->{$table_id}) ? $self->{'table_id_hash'}->{$table_id} : undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 sub get_chip_channel_id{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 my ($self, $table_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 deprecate('ResultSet::get_chip_channel_ids is dperecated, please us get_result_set_input_id');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 return $self->get_result_set_input_id($table_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 =head2 get_InputSets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 Example : my @ecs = @{$result_set->get_ExperimentalChips()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 Description: Retrieves a chip_channel_id from the cahce given an ExperimentalChip dbID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 Returntype : Listref of ExperimentalChip object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 Exceptions : warns is not an experimental_chip ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 sub get_InputSets{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 if($self->table_name ne 'input_set'){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 warn 'Cannot get_InputSets for an array based ResultSet';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 if(! defined $self->{'input_sets'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 my $is_adaptor = $self->adaptor->db->get_InputSetAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 foreach my $is_id(@{$self->table_ids()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388 push @{$self->{'input_sets'}}, $is_adaptor->fetch_by_dbID($is_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 return $self->{'input_sets'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 =head2 get_ExperimentalChips
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398 Example : my @ecs = @{$result_set->get_ExperimentalChips()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 Description: Retrieves a chip_channel_id from the cahce given an ExperimentalChip dbID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 Returntype : Listref of ExperimentalChip object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 Exceptions : warns is not an experimental_chip ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 sub get_ExperimentalChips{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 if($self->table_name eq 'input_set'){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 warn 'Cannot get_ExperimentalChips for an InputSet ResultSet';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415 if(! defined $self->{'experimental_chips'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 my $ec_adaptor = $self->adaptor->db->get_ExperimentalChipAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 if($self->table_name() eq "experimental_chip"){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 foreach my $ec_id(@{$self->table_ids()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 #warn "Getting ec with id $ec_id";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 push @{$self->{'experimental_chips'}}, $ec_adaptor->fetch_by_dbID($ec_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 #should this be hashed on chip_channel_id?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 #warn("Retrieving ExperimentalChips for a Channel ResultSet");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 my %echips;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 my $chan_adaptor = $self->adaptor->db->get_ChannelAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 foreach my $chan_id(@{$self->table_ids()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 my $chan = $chan_adaptor->fetch_by_dbID($chan_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 $echips{$chan->experimental_chip_id} ||= $ec_adaptor->fetch_by_dbID($chan->experimental_chip_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436 @{$self->{'experimental_chips'}} = values %echips;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 return $self->{'experimental_chips'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 =head2 get_replicate_set_by_result_set_input_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 Arg[0] : int - chip_channel_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 Example : my $rep_set_name = $result_set->get_replicate_set_by_result_set_input_id($cc_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 Description: Retrieves the replicate set name defined by the corresponding ExperimentalChip
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 Returntype : String - replicate set name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 Status : At Risk - implement for Channels?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 #Where is this used?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 sub get_replicate_set_by_result_set_input_id{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 my ($self, $cc_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462 if( ! defined $self->{'_replicate_cache'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464 warn "Generating replicate cache!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467 foreach my $ec (@{$self->get_ExperimentalChips()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469 $self->{'_replicate_cache'}{$self->get_result_set_input_id($ec->dbID())} = $ec->replicate();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476 #warn here of absent replicate info?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478 return (exists $self->{'_replicate_cache'}{$cc_id}) ? $self->{'_replicate_cache'}{$cc_id} : undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482 sub get_replicate_set_by_chip_channel_id{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483 my ($self, $cc_id) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485 deprecate('Please use get_replicate_set_by_result_set_input_id instead');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486 return $self->get_replicate_set_by_result_set_input_id($cc_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 =head2 get_displayable_ResultFeatures_by_Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492 Arg[1] : Bio::EnsEMBL::Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493 Arg[2] : Boolean - with probe flag, will nest Probe object in ResultFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494 Example : my @results = @{$ResultSet->get_all_displayable_ResultFeatures_by_Slice($slice)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495 Description: Simple wrapper method for ResultFeatureAdaptor::fetch_all_by_Slice_ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 Returntype : Arrayref of ResultFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 sub get_displayable_ResultFeatures_by_Slice{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505 my ($self, $slice, $with_probe, $max_bins, $window_size, $constraint) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506 return $self->adaptor->fetch_ResultFeatures_by_Slice_ResultSet($slice, $self, 'DISPLAYABLE', $with_probe, $max_bins, $window_size, $constraint);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512 =head2 get_ResultFeatures_by_Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514 Arg[1] : Bio::EnsEMBL::Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515 Arg[2] : string - Status name e.g. 'DISPLAYABLE'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 Arg[3] : Boolean - with probe flag, will nest Probe object in ResultFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517 Arg[4] : int - Max bins i.e. pixel width of display
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518 Arg[5] : int - window_size
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 Arg[6] : string - constraint
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520 Example : my @rfs_with_rpobe = @{$ResultSet->get_all_ResultFeatures_by_Slice($slice, undef, 1)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521 Description: Simple wrapper method for ResultFeatureAdaptor::fetch_all_by_Slice_ResultSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 Returntype : Arrayref of ResultFeatures
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 sub get_ResultFeatures_by_Slice{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530 my ($self, $slice, $status, $with_probe, $max_bins, $window_size, $constraint) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531 return $self->adaptor->db->get_ResultFeatureAdaptor->fetch_all_by_Slice_ResultSet($slice, $self, $status, $with_probe, $max_bins, $window_size, $constraint);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536 #Floats unpack inaccurately so need 3 sigfiging
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537 #This should match the format in which they are originally stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 #This is dependant on ResultSet type i.e. reads or intensity?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 #No format for reads!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 #Should this be set in the ResultSet instead?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 #It may be more efficient for the caller to test for format first rather than blindly printf'ing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 #even if there is no format?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 #This needs setting in new, so we don't have to eval for every score.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545 sub score_format{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 return '%.3f';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552 =head2 log_label
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554 Example : print $rset->log_label();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555 Description: Get a string of the unique key fields for logging purposes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 sub log_label {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566 my $label;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 if(defined $self->feature_type()){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569 $label = $self->feature_type->name.":";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571 $label = "Unknown FeatureType:";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 if(defined $self->cell_type()){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575 $label .= $self->cell_type->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577 $label .= "Uknown CellType";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 return $self->name.":".$self->analysis->logic_name.":".$label;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585 1;