annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/InputSet.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
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::InputSet
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 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 Bio::EnsEMBL::InputSet - A module to represent InputSet object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 use Bio::EnsEMBL::Funcgen::InputSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 #Create an InputSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 my $inp_set = Bio::EnsEMBL::Funcgen::InputSet->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 (
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 -DBID => $dbID,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 -ADAPTOR => $self,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 -EXPERIMENT => $exp,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 -FEATURE_TYPE => $ftype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 -CELL_TYPE => $ctype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 -FORMAT => 'READ_FORMAT',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 -VENDOR => 'SOLEXA',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 -NAME => 'ExpSet1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 -REPLICATE => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 # Add some InputSubsets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 $inp_set->add_new_subsets($subset_name, $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 An InputSet object provides a generic container for any non-array based feature import,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 allowing tracking of file import via the status table and integration into Data and FeatureSets to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 provide traceability to the source experiment from a given FeatureSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 package Bio::EnsEMBL::Funcgen::InputSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 use Bio::EnsEMBL::Funcgen::InputSubset;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 use Bio::EnsEMBL::Utils::Exception qw( throw warning deprecate);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 use Bio::EnsEMBL::Funcgen::Set;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 use Bio::EnsEMBL::Analysis;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 @ISA = qw(Bio::EnsEMBL::Funcgen::Set);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Example : my $eset = Bio::EnsEMBL::Funcgen::InputSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 -EXPERIMENT => $exp,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 -FEATURE_TYPE => $ftype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 -CELL_TYPE => $ctype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 -FORMAT => 'READ_FORMAT',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 -VENDOR => 'SOLEXA',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 -NAME => 'ExpSet1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 -ANALYSIS => $anal,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 -FEATURE_CLASS => 'annotated',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Do we want to define subsets likes this or are we more likely to add them one by one?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 Description: Constructor for InputSet objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 Returntype : Bio::EnsEMBL::Funcgen::InputSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 Exceptions : Throws if no Experiment defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 Throws if CellType or FeatureType are not valid or stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 #Add set_type here to overwrite default ref parsing in Set::set_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 #This need to stay like this until we patch the DB
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 my ($exp, $format, $vendor, $rep)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 = rearrange(['EXPERIMENT', 'FORMAT', 'VENDOR', 'REPLICATE'], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 if (! (ref $exp && $exp->isa('Bio::EnsEMBL::Funcgen::Experiment') && $exp->dbID())){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 throw('Must specify a valid stored Bio::EnsEMBL::Funcgen::Experiment');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 #These are set in Set, just validate here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 throw ('Must provide a FeatureType') if(! defined $self->feature_type);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 throw ('Must provide a CellType') if(! defined $self->cell_type);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 my $type = $self->feature_class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 #Need to move these types to config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 if(! ($type && grep /^${type}$/, ('annotated', 'result', 'segmentation'))){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 throw("You must define a valid InputSet feature_class e.g. 'annotated' or 'result'");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 if(($type eq 'result') &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 ($format ne 'SEQUENCING')){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 throw('InputSet does not yet support a result type InputSet which does not have the \'SEQUENCING\' format');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 #if(! defined $self->analysis){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 ##default analysis hack for v47
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 ##Set directly to avoid dbID boolean check
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 #This is to support supporting_set cache in data_set?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $self->{'analysis'} = Bio::EnsEMBL::Analysis->new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 (-logic_name => 'external',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 -id => 0,#??someone needs to rewrite analysis
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 #Change to direct setting for speed
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 $self->{format} = $format;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 $self->{vendor} = $vendor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 $self->{replicate} = $rep;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 $self->{experiment} = $exp;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 $self->{subsets} = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 =head2 add_new_subset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 Arg [1] : string - sub set name e.g. the file name (not path as we're restricted to 30 chars)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 Arg [2] : Bio::EnsEMBL::Funcgen::InputSubset - optional
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 If not defined will create a sparse InputSubset based on the name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Example : $expset->add_new_subset($ss_name, $exp_subset);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Description: Adds input_subset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Exceptions : Throws if set is already present
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Throws if InputSubset is not valid or stored
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 #Do we still use the optional subset function?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 sub add_new_subset {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 my ($self, $ss_name, $exp_sset) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 #Need to test $ss_name here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 if(! ($ss_name && ref(\$ss_name) eq 'SCALAR')){#ref($exp_sset) would be 'REF'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 throw('You must pass a InputSubset name');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 if($self->get_subset_by_name($ss_name)){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 throw("Subset $ss_name is already present in this InputSet, maybe you need to alter the filename?");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 if(defined $exp_sset){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 if(!(ref($exp_sset) && $exp_sset->isa('Bio::EnsEMBL::Funcgen::InputSubset') && $exp_sset->dbID())){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 throw('InputSubsets must be valid and stored');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 $exp_sset = Bio::EnsEMBL::Funcgen::InputSubset->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 -name => $ss_name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 -input_set => $self,
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 $self->{subsets}{$ss_name} = $exp_sset;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 return $self->{subsets}{$ss_name};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 =head2 get_Experiment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 Example : my $exp = $exp_set->get_Experiment();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 Description: Getter for the Experiment of this DataSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 Returntype : Bio::EnsEMBL::Fuuncgen::Experiment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 sub get_Experiment{ return $_[0]->{experiment}; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 =head2 get_InputSubsets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 Example : my @subsets = @{$exp_set->get_InputSubsets()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 Description: Getter for the InputSubsets for this InputSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 Returntype : Arrayref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 sub get_InputSubsets{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 my ($self) = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 return [ values %{$self->{'subsets'}} ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 =head2 get_subset_by_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 Example : my $subsets = $exp_set->get_subset_by_name('subset1');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 Description: Getter for the subset of a given name for this InputSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 Returntype : Bio::EnsEMBL::Funcgen::InputSubset
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 sub get_subset_by_name{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 my ($self, $name) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 return (exists $self->{'subsets'}{$name}) ? $self->{'subsets'}{$name} : undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 =head2 get_subset_names
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 Example : my @subset_names = @{$exp_set->get_subset_names()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 Description: Getter for the subset names for this InputSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 Returntype : Arrayref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 sub get_subset_names{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 my ($self) = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 return [ keys %{$self->{'subsets'}} ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274
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 =head2 vendor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 Arg[1] : String - vendor e.g. ILLUMINA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 Example : my $iset_vendor = $iset->vendor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 Description: Getter for the vendor attribute of this InputSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 Returntype : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 sub vendor { return $_[0]->{vendor}; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 =head2 format
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 Arg[1] : string - format i.e. product type/format
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 Example : my $iset_format = $iset->format;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 Description: Getter for the format attribute of this InputSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 Returntype : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 sub format { return $_[0]->{format}; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 =head2 replicate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Arg[1] : Integer - replicate 0 = merged or NA, >0 refers to individual replicate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Example : if($iset->replicate){ #Do something replicate specific in here }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 Description: Getter for the replicate attribute of this InputSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 Returntype : Integer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 sub replicate { return $_[0]->{replicate}; }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 =head2 source_info
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 Example : my $source_info = $input_set->source_info;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 Description: Getter for the experiment source info i.e. [ $label, $url ]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 Returntype : Listref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 #Currently handling redundant/absent InputSubset data
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 sub source_info{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 if(! defined $self->{source_info}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 #could have data_url as highest priority here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 #but we need to ensure removal when adding archive ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 #so we link to the archive and not the old data url
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 my $exp_group = $self->get_Experiment->experimental_group;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 my %source_info; #Handles redundant InputSubsets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 my ($proj_name, $proj_link, $source_label, $source_link);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 if($exp_group->is_project){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 $proj_name = $exp_group->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 $proj_link = $exp_group->url;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 foreach my $isset(@{$self->get_InputSubsets}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 if(defined $isset->archive_id ){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 $source_label = $isset->archive_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 if(! exists $source_info{$source_label}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 $source_info{$source_label} = [$source_label, undef];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 #source_link can is undef here as archive_id overrides display url
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 #undef links will automatically go to the SRA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 elsif(defined $proj_name){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 #$source_label = $self->experimental_group->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 $source_link = $isset->display_url || $proj_link;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 if(! exists $source_info{$source_link}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 $source_info{$source_link} = [$proj_name, $source_link];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 $self->{source_info} = [values %source_info];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 return $self->{source_info};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 }
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 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384