annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/FeatureSet.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::FeatureSet
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::FeatureSet - A module to represent FeatureSet.
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::FeatureSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 my $result_set = Bio::EnsEMBL::Funcgen::FeatureSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 A FeatureSet object provides access to a set of feature predictions and their details, which may have been generated from a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 single or multiple Experiments with potentially differing analyses. The FeatureSet itself will only have a single analysis
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 which may be one or a combination of programs but will be represented by one analysis record.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 package Bio::EnsEMBL::Funcgen::FeatureSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 use Bio::EnsEMBL::Utils::Exception qw( throw warning deprecate);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 use Bio::EnsEMBL::Funcgen::Set;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 @ISA = qw(Bio::EnsEMBL::Funcgen::Set);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 my %valid_classes = ( annotated => undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 regulatory => undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 external => undef,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 segmentation => undef, );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 -name => $name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 -feature_type => $ftype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 -cell_type => $ctype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 -name => $name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 -description => 'Release 3.1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 -display_label => 'Short name',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 -analysis => $analysis,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 Arg [-EXPERIMENT_ID] : Experiment dbID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 -dbid => $dbid,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 Arg [-ADAPTOR]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 Example : my $feature = Bio::EnsEMBL::Funcgen::FeatureSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 -dbid => $dbid,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 -analysis => $analysis,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 -feature_type => $ftype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 -cell_type => $ctype,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 -name => $name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 -feature_class => 'annotated',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 -description => 'Release 3.1',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 -display_label => 'Short name',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 -input_set => $iset,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 Description: Constructor for FeatureSet objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Returntype : Bio::EnsEMBL::Funcgen::FeatureSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Exceptions : Throws if FeatureType defined
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Status : At risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 my ( $desc, $dlabel, $iset_id, $iset, $exp_id, $exp ) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 rearrange( [
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 'DESCRIPTION', 'DISPLAY_LABEL',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 'INPUT_SET_ID', 'INPUT_SET', 'EXPERIMENT_ID', 'EXPERIMENT'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 @_ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 if($exp_id || $exp){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 throw('Passing an Experiment or an experiment_id is now deprecated,'.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 ' please use -input_set or -input_set_id instead');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 #Allow exp or exp_id to be passed to support storing and lazy loading
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 #Mandatory params checks here (setting done in Set.pm)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 throw('Must provide a FeatureType')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 if ( !defined $self->feature_type );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 #explicit type check here to avoid invalid types being imported as NULL
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 #subsequently throwing errors on retrieval
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 my $type = $self->feature_class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 if ( !( $type && exists $valid_classes{$type} ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 throw( 'You must define a valid FeatureSet type e.g. ' .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 join( ', ', keys %valid_classes ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 #Direct assignment to prevent need for set arg test in method
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 $self->{'description'} = $desc if defined $desc;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 $self->{'display_label'} = $dlabel if defined $dlabel;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 $self->{'input_set_id'} = $iset_id if defined $iset_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 if ( defined $iset ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 #Exp obj is only passed during object storing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 #so let the adaptor do is_stored_and_valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 $self->{'input_set'} = $iset;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 } ## end sub new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 =head2 new_fast
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 Args : Hashref with all internal attributes set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 Example : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 Description: Quick and dirty version of new. Only works if the code is very
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 disciplined.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 Returntype : Bio::EnsEMBL::Funcgen::FeatureSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 sub new_fast {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 return bless ($_[1], $_[0]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 =head2 description
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Example : print "Feature set description is:\t".$fset->description."\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Description: Getter for the description of this FeatureSet. e.g. Release 3.1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Returntype : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 sub description {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 return $_[0]->{'description'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 =head2 display_label
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 Example : print $rset->display_label;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 Description: Getter for the display_label attribute for this FeatureSet.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 Returntype : String
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 sub display_label {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 if ( !$self->{'display_label'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 if ( $self->feature_type->class() eq 'Regulatory Feature' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 $self->{'display_label'} = $self->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 #This still fails here if we don't have a class or a cell_type set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 $self->{'display_label'} =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 $self->feature_type->name() . " - " . $self->cell_type->name() .
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 " Enriched Sites";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 return $self->{'display_label'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 =head2 get_FeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 Description: Retrieves and caches FeatureAdaptor of feature_set type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 Returntype : Bio::EnsEMBL::Funcgen::DBSQL::ucfirst($self->feature_class())FeatureAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 sub get_FeatureAdaptor{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 if(! exists $self->{'adaptor_refs'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 foreach my $valid_class(keys %valid_classes){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 my $method = 'get_'.ucfirst($valid_class).'FeatureAdaptor';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 $self->{'adaptor_refs'}{$valid_class} = $self->adaptor->db->$method;
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 return $self->{'adaptor_refs'}->{$self->feature_class()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 =head2 get_Features_by_Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 Example : my @features = @{$FeatureSet->get_Features_by_Slice($slice)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 Description: Retrieves all Features for this FeatureSet for a given Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 Returntype : ARRAYREF containing Features of the feature_set type i.e. Annotated, Regulatory or Supporting;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 sub get_Features_by_Slice{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 my ($self, $slice) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 return $self->get_FeatureAdaptor->fetch_all_by_Slice_FeatureSets($slice, [$self]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 =head2 get_Features_by_FeatureType
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 Arg[0] : Bio::EnsEMBL::Funcgen::FeatureType
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 Example : my @features = @{$FeatureSet->get_Features_by_FeatureType($ftype)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 Description: Retrieves all Features for this FeatureSet for a given FeatureType
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 or associated FeatureType. This is mainly used by external FeatureSets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 which can sometimes have more than one associated FeatureType.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 Returntype : ARRAYREF
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 sub get_Features_by_FeatureType{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 my ($self, $type) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 return $self->get_FeatureAdaptor->fetch_all_by_FeatureType_FeatureSets($type, [$self]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 =head2 get_all_Features
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 Example : my @features = @{$FeatureSet->get_all_Features};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289 Description: Retrieves all Features for this FeatureSet
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 sub get_all_Features{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300 return $self->get_FeatureAdaptor->fetch_all_by_FeatureSets([$self]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 }
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 =head2 is_focus_set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 Example : if($fset->is_focus_set){ ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Description: Returns true if FeatureSet is a focus set used in the RegulatoryBuild
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Returntype : Boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 Exceptions : Throws if meta entry not present
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 sub is_focus_set{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 if(! defined $self->{focus_set}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 if(! defined $self->cell_type){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 warn "FeatureSet without an associated CellType cannot be a focus set:\t".$self->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 $self->{focus_set} = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 $self->{focus_set} = $self->adaptor->fetch_focus_set_config_by_FeatureSet($self);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 return $self->{focus_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 =head2 is_attribute_set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 Example : if($fset->is_attribute_set){ ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 Description: Returns true if FeatureSet is a supporting/attribute(focus or not) set used in the RegulatoryBuild
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 Returntype : Boolean
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 Exceptions : Throws if meta entry not present
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 sub is_attribute_set{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 if(! defined $self->{attribute_set}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 if(! defined $self->cell_type){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 warn "FeatureSet without an associated CellType cannot be a attribute set:\t".$self->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 $self->{attribute_set} = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 $self->{attribute_set} = $self->adaptor->fetch_attribute_set_config_by_FeatureSet($self);
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 return $self->{attribute_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 =head2 get_InputSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 Example : my $input_set = $FeatureSet->get_InputSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 Description: Retrieves the InputSet for this FeatureSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 Returntype : Bio::EnsEMBL::Funcgen::InputSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 sub get_InputSet{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 if( (! defined $self->{input_set}) &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 (defined $self->{input_set_id}) ){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 $self->{input_set} = $self->adaptor->db->get_InputSetAdaptor->fetch_by_dbID($self->{input_set_id});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385 return $self->{input_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 =head2 source_label
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 Example : my $source_label = $fset->source_label;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393 Description: Retrieves the source label this FeatureSet, used in zmenus
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394 Returntype : Arrayref of Strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396 Caller : Webcode zmenus
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 Status : At Risk - remove, to be done by webcode?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 #These are used to link through to the experiment view based on feature_set_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 sub source_label{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406 if (! defined $self->{source_label}) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 my $input_set = $self->get_InputSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408 my @source_labels;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 if ($input_set) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 foreach my $isset(@{$input_set->get_InputSubsets}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415 if(defined $isset->archive_id){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 push @source_labels, $isset->archive_id;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 #Archive IDs e.g. SRX identifiers or undef.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 #Append project name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 my $exp_group = $input_set->get_Experiment->experimental_group;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424 if ($exp_group &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425 $exp_group->is_project) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 push @source_labels, $exp_group->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 $self->{source_label} = join(' ', @source_labels);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434 return $self->{source_label};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436
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 ### DEPRECATED ###
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 =head2 get_Experiment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444 # Example : my $exp = $FeatureSet->get_Experiment;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 # Description: Retrieves the Experiment for this FeatureSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446 # Returntype : Bio::EnsEMBL::Funcgen::Experiment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 # Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 # Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 Status : DEPRECATED
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453 sub get_Experiment{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 throw('FeatureSet::get_Experiment is not longer supported, please use FeatureSet::get_InputSet');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 1;