annotate variant_effect_predictor/Bio/EnsEMBL/Funcgen/RunnableDB/SetupMotifInference.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 =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::Funcgen::RunnableDB::SetupMotifInference
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 'SetupMotifInference'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 package Bio::EnsEMBL::Funcgen::RunnableDB::SetupMotifInference;
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
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 use Bio::EnsEMBL::Utils::Exception qw(throw warning stack_trace_dump);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 use Data::Dumper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 use POSIX qw(floor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 use base ('Bio::EnsEMBL::Funcgen::RunnableDB::Motif');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 sub fetch_input { # nothing to fetch... just the parameters...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 $self->SUPER::fetch_input();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 if(! -d $self->_output_dir){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 system('mkdir -p '. $self->_output_dir) && throw "Error creating output dir ". $self->_output_dir;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 sub run { # Create Subtasks of binsize peaks each, ignoring the last set of peaks ( < binsize peaks )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 my $afa = $self->_efgdba()->get_AnnotatedFeatureAdaptor();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 my @features = @{$afa->fetch_all_by_FeatureSets( [ $self->_feature_set ] )};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 my $bins = POSIX::floor(scalar(@features)/$self->param('bin_size'));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 if($bins < 1){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 warn "Insuficient peaks. Please select a smaller bin size.";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 warn "Number of bins is $bins";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 #Create jobs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 my @bin_input_ids;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 for (my $i=1;$i<=$bins;$i++){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 #Need to add the specific file to the input_id...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 my $new_input_id = eval($self->input_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 $new_input_id->{"bin"} = $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 push(@bin_input_ids, $new_input_id);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 $self->_output_ids(\@bin_input_ids);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 sub write_output { # Nothing is written at this stage (for the moment)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 my $self = shift @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 if($self->_output_ids && scalar($self->_output_ids)>0){
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 my ($converge_job_id) = @{ $self->dataflow_output_id($self->input_id, 3, { -semaphore_count => scalar(@{$self->_output_ids}) }) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 $self->dataflow_output_id($self->_output_ids, 2, { -semaphored_job_id => $converge_job_id });
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 #Private getter / setter to the output ids
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 sub _output_ids {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 return $_[0]->_getter_setter('output_ids',$_[1]);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 1;