Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/EnsEMBL/Variation/Pipeline/InitTranscriptEffect.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1f6dce3d34e0 |
---|---|
1 =head1 LICENSE | |
2 | |
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and | |
4 Genome Research Limited. All rights reserved. | |
5 | |
6 This software is distributed under a modified Apache license. | |
7 For license details, please see | |
8 | |
9 http://www.ensembl.org/info/about/code_licence.html | |
10 | |
11 =head1 CONTACT | |
12 | |
13 Please email comments or questions to the public Ensembl | |
14 developers list at <dev@ensembl.org>. | |
15 | |
16 Questions may also be sent to the Ensembl help desk at | |
17 <helpdesk@ensembl.org>. | |
18 | |
19 =cut | |
20 | |
21 package Bio::EnsEMBL::Variation::Pipeline::InitTranscriptEffect; | |
22 | |
23 use strict; | |
24 use warnings; | |
25 | |
26 use base qw(Bio::EnsEMBL::Variation::Pipeline::BaseVariationProcess); | |
27 | |
28 my $DEBUG = 0; | |
29 | |
30 sub fetch_input { | |
31 | |
32 my $self = shift; | |
33 | |
34 my $include_lrg = $self->param('include_lrg'); | |
35 | |
36 my $core_dba = $self->get_species_adaptor('core'); | |
37 my $var_dba = $self->get_species_adaptor('variation'); | |
38 | |
39 my $dbc = $var_dba->dbc(); | |
40 | |
41 my $ga = $core_dba->get_GeneAdaptor or die "Failed to get gene adaptor"; | |
42 | |
43 my @transcript_output_ids; | |
44 | |
45 my $gene_count = 0; | |
46 | |
47 # fetch all the regular genes | |
48 | |
49 my @genes = @{ $ga->fetch_all }; | |
50 | |
51 if ($include_lrg) { | |
52 # fetch the LRG genes as well | |
53 | |
54 push @genes, @{ $ga->fetch_all_by_biotype('LRG_gene') } | |
55 } | |
56 | |
57 for my $gene (@genes) { | |
58 $gene_count++; | |
59 | |
60 for my $transcript (@{ $gene->get_all_Transcripts }) { | |
61 | |
62 push @transcript_output_ids, { | |
63 transcript_stable_id => $transcript->stable_id, | |
64 }; | |
65 } | |
66 if ($DEBUG) { | |
67 last if $gene_count >= 100; | |
68 } | |
69 } | |
70 | |
71 if (@transcript_output_ids) { | |
72 | |
73 # check we actually found some transcripts | |
74 | |
75 # truncate the table because we don't want duplicates | |
76 | |
77 $dbc->do("TRUNCATE TABLE transcript_variation"); | |
78 | |
79 # disable the indexes on the table we're going to insert into as | |
80 # this significantly speeds up the TranscriptEffect process | |
81 | |
82 $dbc->do("ALTER TABLE transcript_variation DISABLE KEYS"); | |
83 | |
84 $self->param('transcript_output_ids', \@transcript_output_ids); | |
85 | |
86 $self->param( | |
87 'rebuild_indexes', [{ | |
88 tables => ['transcript_variation'], | |
89 }] | |
90 ); | |
91 | |
92 # we need to kick off the update_vf analysis as well, | |
93 # but it doesn't have any parameters we need to set here | |
94 | |
95 $self->param( | |
96 'update_vf', [{}] | |
97 ); | |
98 } | |
99 } | |
100 | |
101 sub write_output { | |
102 my $self = shift; | |
103 | |
104 if (my $transcript_output_ids = $self->param('transcript_output_ids')) { | |
105 $self->dataflow_output_id($self->param('rebuild_indexes'), 2); | |
106 $self->dataflow_output_id($self->param('update_vf'), 3); | |
107 $self->dataflow_output_id($transcript_output_ids, 4); | |
108 } | |
109 | |
110 return; | |
111 } | |
112 | |
113 1; |