annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/Parsers/BaseExternalParser.pm @ 2:a5976b2dce6f

changing defualt values for ensembl database
author mahtabm
date Thu, 11 Apr 2013 17:15:42 +1000
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2011 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <ensembl-dev@ebi.ac.uk>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 package Bio::EnsEMBL::Funcgen::Parsers::BaseExternalParser;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 use Bio::EnsEMBL::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 use Bio::EnsEMBL::Utils::Argument qw( rearrange );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 use Bio::EnsEMBL::Utils::Exception qw( throw );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 use Bio::EnsEMBL::Funcgen::FeatureSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 use Bio::EnsEMBL::Funcgen::FeatureType;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 use Bio::EnsEMBL::Analysis;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 #use Bio::EnsEMBL::Funcgen::Parsers::BaseImporter;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 #use vars qw(@ISA)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 #@ISA = ('Bio::EnsEMBL::Funcgen::Utils::Helper');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 use base qw(Bio::EnsEMBL::Funcgen::Parsers::BaseImporter); #@ISA change to parent with perl 5.10
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 # Base functionality for external_feature parsers
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 #Make this inherit from Helper?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 #Then change all the prints to logs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 #validate and set type, analysis and feature_set here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 my ($type, $db, $archive, $import_fsets) = rearrange(['TYPE', 'DB', 'ARCHIVE', 'IMPORT_SETS'], @_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 #What is ExternalParser specific here?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 #archive?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 #type? is this even used?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 #throw('You must define a type of external_feature to import') if(! defined $type);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 if (! ($db && ref($db) &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 $db->isa('Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor'))){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 throw('You must provide a valid Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 throw('You can only specify either -clobber|rollback or -archive, but not both') if($self->rollback && $archive);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 $self->{display_name_cache} = {};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 $self->{'db'} = $db;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 #$self->{type} = $type;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 $self->{archive} = $archive if defined $archive;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 #This is not fully implemented yet and need to be validated against the config feature_set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 #pass something like set1,set2 and split and validate each.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 #Or do this in the calling script?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 throw('-import_sets not fully implemented yet') if defined $import_fsets;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 $self->{'import_sets'} = (defined $import_fsets) ? @{$import_fsets} : undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 $self->log("Parsing and loading $type ExternalFeatures");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 =head2 import_sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Example : foreach my $import_set_name(@{$self->import_sets}){ ... do the import ... }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Description: Getter for the list of import feature set names, defaults to all in parser config.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 Returntype : Arrayref of import feature_set names
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 sub import_sets{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 return $self->{'import_sets'} || [keys %{$self->{static_config}{feature_sets}}];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 =head2 set_feature_sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 Example : $self->set_feature_sets;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 Description: Imports feature sets defined by import_sets.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 Returntype : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 Exceptions : Throws if feature set already present and rollback or archive not set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 Status : Medium Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 #This is done after validate and store feature_types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 #Updating this will require making all external parsers use 'static_config'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 sub set_feature_sets{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 throw('Must provide a set feature_set config hash') if ! defined $self->{static_config}{feature_sets};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 my $fset_adaptor = $self->db->get_FeatureSetAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 my $analysis_adaptor = $self->db->get_AnalysisAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 foreach my $fset_name(@{$self->import_sets}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 $self->log("Defining FeatureSet:\t$fset_name");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 my $fset = $fset_adaptor->fetch_by_name($fset_name);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 #we don't need data sets for external_feature sets!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 #Compare against config after we have merged with defined_anld_validate etc
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 if(defined $fset){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 $self->log("Found previous FeatureSet $fset_name");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 if($self->rollback){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 $self->rollback_FeatureSet($fset);#Need to pass \@slices here?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 elsif($self->{'archive'}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 my $archive_fset = $fset_adaptor->fetch_by_name($fset_name."_v".$self->{'archive'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 if(defined $archive_fset){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 throw("You are trying to create an archive external feature_set which already exists:\t${fset_name}_v".$self->{archive});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 my $sql = "UPDATE feature_set set name='$fset_name}_v".$self->{archive}."' where name='$fset_name'";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 $self->db->dbc->do($sql);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 undef $fset;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 }else{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 throw("You are trying to create an external feature_set which already exists:\t$fset_name\nMaybe to want to rollback or archive?");
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 #Assume using static config for now
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 #Will need to resolve this when it become generic
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 #Maybe we set outside of config!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 #simply as analyses, feature_sets and feature_types?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 my $fset_config = $self->{static_config}{feature_sets}{$fset_name}{feature_set};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 if(! defined $fset){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 my ($name, $analysis, $ftype, $display_label, $desc);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 my $fset_analysis_key = (exists ${$fset_config}{-analysis}) ? '-analysis' : '-ANALYSIS';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 my $fset_name_key = (exists ${$fset_config}{-name}) ? '-name' : '-NAME';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 my $fset_ftype_key = (exists ${$fset_config}{-feature_type}) ? '-feature_type' : '-FEATURE_TYPE';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 my $fset_dlabel_key = (exists ${$fset_config}{-display_label}) ? '-display_label' : '-DISPLAY_LABEL';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 my $fset_desc_key = (exists ${$fset_config}{-description}) ? '-description' : '-DESCRIPTION';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 my $display_name = (exists ${$fset_config}{$fset_dlabel_key}) ? $fset_config->{$fset_dlabel_key} : $fset_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 #fset config name be different from key name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 my $fs_name = (exists ${$fset_config}{$fset_name_key}) ? $fset_config->{$fset_name_key} : $fset_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 #warn if they are different?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 #Can't just deref config hash here as we need to deref the nested feature_type and analysis attrs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 $fset = Bio::EnsEMBL::Funcgen::FeatureSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 -name => $fs_name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 -feature_class=> 'external',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 -analysis => ${$fset_config->{$fset_analysis_key}},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 -feature_type => ${$fset_config->{$fset_ftype_key}},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 -display_label => $display_name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 -description => $fset_config->{$fset_desc_key}
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 ($fset) = @{$self->db->get_FeatureSetAdaptor->store($fset)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 #Now replace config hash with object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 #Will this reset in hash or just locally?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 #$fset_config = $fset;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 $self->{static_config}{feature_sets}{$fset_name}{feature_set} = $fset;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 #Can't use this anymore as we have to use static_config for all parsers which use set_feature_sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 #=head2 validate_and_store_feature_types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 # Args : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 # Example : $self->validate_and_store_feature_types;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 # Description: Imports feature types defined by import_sets.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 # Returntype : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 # Exceptions : None
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 # Caller : General
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 # Status : High Risk - Now using BaseImporter::validate_and_store_config for vista
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 #=cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 ##Change all external parsers to use BaseImporter::validate_and_store_config
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 #sub validate_and_store_feature_types{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 # my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 # #This currently only stores ftype associated with the feature_sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 # #Havent't we done this already in the InputSet parser
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 # #Need to write BaseImporter and inherit from there.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 # #InputSet does all loading, but depends on 'user_config'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 # #Where as we are using hardcoded config here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 # #Which are import_sets currently defaults to feature_sets keys
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 # #we could simply call this static_config and let user_config over-write static config with warnings?
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 # #on an key by key basis? (top level only?)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 # my $ftype_adaptor = $self->db->get_FeatureTypeAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 # foreach my $import_set(@{$self->import_sets}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 # my $ftype_config = ${$self->{static_config}{feature_sets}{$import_set}{feature_type}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 # my $ftype = $ftype_adaptor->fetch_by_name($ftype_config->{'name'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 # $self->log("Validating $import_set FeatureType:\t".$ftype_config->{'name'});
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 # if(! defined $ftype){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 # $self->log("FeatureType '".$ftype_config->{'name'}."' for external feature_set ".$self->{'type'}." not present");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 # $self->log("Storing using type hash definitions");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 # $ftype = Bio::EnsEMBL::Funcgen::FeatureType->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 # -name => $ftype_config->{'name'},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 # -class => $ftype_config->{'class'},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 # -description => $ftype_config->{'description'},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 # );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 # ($ftype) = @{$ftype_adaptor->store($ftype)};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 # #Replace hash config with object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 # $self->{static_config}{feature_types}{$ftype_config->{'name'}} = $ftype;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 # }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 # return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 #}
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
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 1;