annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/RunnableDB/SetupAnnotationPipeline.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 =pod
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 Bio::EnsEMBL::Hive::RunnableDB::Funcgen::SetupAnnotationPipeline
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 'SetupAnnotationPipeline' Checks cell types and creates annotation processes for each
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 This Runnable CANNOT be run multiple times in parallell!
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 package Bio::EnsEMBL::Funcgen::RunnableDB::SetupAnnotationPipeline;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 use Bio::EnsEMBL::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 use Bio::EnsEMBL::Funcgen::DBSQL::DBAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 use Bio::EnsEMBL::Utils::Exception qw(throw warning stack_trace_dump);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 use base ('Bio::EnsEMBL::Funcgen::RunnableDB::Annotation');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 sub fetch_input { # fetch parameters...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 $self->SUPER::fetch_input();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 #Sets up the output dir
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 my $output_dir = $self->_output_dir();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 if(! -d $output_dir){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 system("mkdir -p $output_dir") && throw("Couldn't create output directory $output_dir");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 sub run { # Check parameters and do appropriate database/file operations...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 my $efgdba = $self->_efgdba();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 #Check how many different cell types exist with regulatory features for current species
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 #Creates the appropriate jobs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 my @reg_sets = @{$efgdba->get_FeatureSetAdaptor->fetch_all_by_type('regulatory')};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 my @cell_types;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 foreach my $set (@reg_sets){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 if($set->cell_type->name ne 'MultiCell'){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 push @cell_types, $set->cell_type->name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 $self->_cell_types_to_run(\@cell_types);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 sub write_output { # Create the relevant job
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 foreach my $cell_type (@{$self->_cell_types_to_run()}){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 my $new_input_id = eval($self->input_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 $new_input_id->{"cell_type"} = $cell_type;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 $self->dataflow_output_id($new_input_id, 2, { } );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 #Private getter / setter to the cell_types_to_run list
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 sub _cell_types_to_run {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 return $_[0]->_getter_setter('cell_types_to_run',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 1;