annotate variant_effect_predictor/Bio/EnsEMBL/OntologyXref.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 =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 Bio::EnsEMBL::OntologyXref
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 This class extends the DBEntry in order to associate Evidence Tags
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 to the relationship between EnsEMBL objects and ontology accessions
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 (primarily GO accessions).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 The relationship to GO that is stored in the database is actually
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 derived through the relationship of EnsEMBL peptides to SwissProt
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 peptides, i.e. the relationship is derived like this:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 ENSP -> SWISSPROT -> GO
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 And the evidence tag describes the relationship between the SwissProt
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 Peptide and the GO entry.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 In reality, however, we store this in the database like this:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 ENSP -> SWISSPROT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 ENSP -> GO
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 and the evidence tag hangs off of the relationship between the ENSP and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 the GO identifier. Some ENSPs are associated with multiple closely
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 related Swissprot entries which may both be associated with the same GO
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 identifier but with different evidence tags. For this reason a single
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 'OntologyXref' can have multiple evidence tags.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 my $ontology_xref = Bio::EnsEMBL::OntologyXref->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 $ontology_xref->add_linkage_type('IEA');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 foreach my $evtag ( @{ $ontology_xref->get_all_linkage_types() } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 print "$evtag\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 package Bio::EnsEMBL::OntologyXref;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 use base qw( Bio::EnsEMBL::DBEntry );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 =head2 add_linkage_type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 Arg [1] : string $value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 allowed values:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 'IC', 'IDA', 'IEA', 'IEP', 'IGI', 'IMP', 'IPI',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 'ISS', NAS', 'ND', 'TAS', 'NR', 'RCA'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 Arg [2] : (optional) Bio::EnsEMBL::DBEntry $source
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 Example : $ontology_xref->add_linkage_type('IGI');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 Description: Associates a linkage type and source DBEntry with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 this ontology_xref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 Returntype : integer; number of linkages
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Exceptions : thrown if $linkage_type argument not supplied or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 the optional DBEntry is not a DBEntry object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 Caller : DBEntryAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 Status : Experimantal
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 sub add_linkage_type {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 my ( $self, $lt, $source_dbentry ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 if ( !defined($lt) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 $self->throw("linkage type argument required");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 if ( defined($source_dbentry)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 && !$source_dbentry->isa('Bio::EnsEMBL::DBEntry') )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 $self->throw("source_dbentry must be a Bio::EnsEMBL::DBEntry");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 $self->{'linkage_types'} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 push @{ $self->{'linkage_types'} },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 [ $lt, ( $source_dbentry || () ) ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 =head2 get_all_linkage_info
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 foreach ( @{ $ontology_xref->get_all_linkage_info() } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 print "evidence: $_->[0] via $_->[1]->display_id";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Description: Retrieves a list of evidence-tag/source-DBEntry pairs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 associated with this ontology_xref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 Returntype : listref of listrefs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 Caller : geneview? general.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 Status : Experimental
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 sub get_all_linkage_info {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 return $self->{'linkage_types'} || [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 =head2 get_all_linkage_types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 print( join( ' ', @{ $ontology_xref->get_all_linkage_types() } ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 "\n" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 Description: Retrieves a unique list of evidence tags associated with
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 this ontology_xref
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 Caller : geneview? general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 sub get_all_linkage_types {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 my %seen;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 return [ grep { !$seen{$_}++ }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 map { $_->[0] } @{ $self->{'linkage_types'} } ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 #return [ map{ $_->[0]} @{ $self->{'linkage_types'} || [] } ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 =head2 flush_linkage_types
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Example : $ontology_xref->flush_linkage_types();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Description: Removes any associated evidence tags
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 sub flush_linkage_types {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 my ($self) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 $self->{'linkage_types'} = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 1;