annotate variant_effect_predictor/Bio/EnsEMBL/IdMapping/InternalIdMapper/EnsemblExonGeneric.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 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 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 <dev@ensembl.org>.
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 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 package Bio::EnsEMBL::IdMapping::InternalIdMapper::EnsemblExonGeneric;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 no warnings 'uninitialized';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 use Bio::EnsEMBL::IdMapping::InternalIdMapper::BaseMapper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 our @ISA = qw(Bio::EnsEMBL::IdMapping::InternalIdMapper::BaseMapper);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 # basic mapping
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 sub init_basic {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 my $num = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 my $esb = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 my $mappings = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 my $exon_scores = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 $self->logger->info("Basic exon mapping...\n", 0, 'stamped');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 $mappings = $self->basic_mapping($exon_scores, "exon_mappings$num");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 $num++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 my $new_scores = $esb->create_shrinked_matrix($exon_scores, $mappings,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 "exon_matrix$num");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 return ($new_scores, $mappings);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 }
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 # reduce score for mappings of exons which do not belong to mapped
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 # transcripts
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 sub mapped_transcript {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 my $num = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 my $esb = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 my $mappings = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 my $exon_scores = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 $self->logger->info("Exons in mapped transcript...\n", 0, 'stamped');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 unless ($exon_scores->loaded) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 $esb->non_mapped_transcript_rescore($exon_scores, $mappings);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 $exon_scores->write_to_file;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 $mappings = $self->basic_mapping($exon_scores, "exon_mappings$num");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 $num++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 my $new_scores = $esb->create_shrinked_matrix($exon_scores, $mappings,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 "exon_matrix$num");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 return ($new_scores, $mappings);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 # selectively rescore by penalising scores between exons with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 # different internalIDs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 sub internal_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 my $num = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 my $esb = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 my $mappings = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 my $exon_scores = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 $self->logger->info( "Retry with internalID disambiguation...\n",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 0, 'stamped' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 if ( !$exon_scores->loaded() ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 $esb->internal_id_rescore($exon_scores);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 $exon_scores->write_to_file();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 $mappings = $self->basic_mapping( $exon_scores, "exon_mappings$num" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 $num++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 my $new_scores =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 $esb->create_shrinked_matrix( $exon_scores, $mappings,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 "exon_matrix$num" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 return ( $new_scores, $mappings );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121