annotate variant_effect_predictor/Bio/EnsEMBL/MiscFeature.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::MiscFeature - A miscelaneous feature with arbitrary features and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 associations.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 use Bio::EnsEMBL::MiscFeature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 use Bio::EnsEMBL::MiscSet;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 use Bio::EnsEMBL::Attribute;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 my $mfeat = Bio::EnsEMBL::MiscFeature->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 -START => 1200,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 -END => 100_000,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 -STRAND => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 -SLICE => $slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 # Can add attributes to the misc feature and associate with various
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 # sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 my $clone_set = Bio::EnsEMBL::MiscSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 -CODE => 'clone',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 -NAME => '1MB clone set',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 -DESCRIPTION => '1MB CloneSet'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 my $tiling_path_set = Bio::EnsEMBL::MiscSet->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 -CODE => 'tilingpath',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 -NAME => 'tiling path set'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 my $attrib1 = Bio::EnsEMBL::Attribute->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 -VALUE => 'RLX12451',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 -CODE => 'name',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 -NAME => 'name'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 my $attrib2 = Bio::EnsEMBL::Attribute->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 -VALUE => '4',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60 -CODE => 'version',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 -NAME => 'version'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 my $attrib3 = Bio::EnsEMBL::Attribute->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 -VALUE => 'AL42131.4',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 -CODE => 'synonym',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 -NAME => 'synonym'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 # can associate a misc feature with any number of sets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 $mfeat->add_MiscSet($clone_set);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 $mfeat->add_MiscSet($tiling_path_set);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 # can add arbitrary attributes to a misc feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 $mfeat->add_Attribute($attrib1);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 $mfeat->add_Attribute($attrib2);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 $mfeat->add_Attribute($attrib3);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 my ($name_attrib) = @{ $mfeat->get_all_Attributes('name') };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 my @all_attribs = @{ $mfeat->get_all_Attributes() };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 my @all_sets = @{ $mfeat->get_all_MiscSets() };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 my ($clone_set) = @{ $mfeat->get_all_CloneSets('clone') };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 # Can do normal feature operations as well
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 $mfeat = $mfeat->transform('supercontig');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 print $mfeat->slice->seq_region_name, ' ', $mfeat->start, '-',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 $mfeat->end;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 MiscFeatures are extremely general features with a location, and an
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 arbitrary group of attributes. They are grouped with other features of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 the same 'type' through the use of MiscSets (see Bio::EnsEMBL::MiscSet).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 Attributes are attached in the fom of Bio::EnsEMBL::Attribute objects.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 See Bio::EnsEMBL::DBSQL::MiscFeatureAdaptor for ways to fetch or store
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 MiscFeatures.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 package Bio::EnsEMBL::MiscFeature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 use Bio::EnsEMBL::Feature;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 use Bio::EnsEMBL::Utils::Exception qw(throw);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 use Scalar::Util qw(weaken isweak);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 @ISA = qw(Bio::EnsEMBL::Feature);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 Arg [-SLICE]: Bio::EnsEMBL::SLice - Represents the sequence that this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 feature is on. The coordinates of the created feature are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 relative to the start of the slice.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 Arg [-START]: The start coordinate of this feature relative to the start
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 of the slice it is sitting on. Coordinates start at 1 and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 are inclusive.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 Arg [-END] : The end coordinate of this feature relative to the start of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 the slice it is sitting on. Coordinates start at 1 and are
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 inclusive.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Arg [-STRAND]: The orientation of this feature. Valid values are 1,-1,0.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 Arg [-SEQNAME] : A seqname to be used instead of the default name of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 of the slice. Useful for features that do not have an
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 attached slice such as protein features.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 Arg [-dbID] : (optional) internal database id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 Arg [-ADAPTOR]: (optional) Bio::EnsEMBL::DBSQL::BaseAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 Example : $feature = Bio::EnsEMBL::MiscFeature->new(-start => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 -end => 100,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 -strand => 1,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 -slice => $slice,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 -analysis => $analysis);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 Description: Constructs a new Bio::EnsEMBL::Feature. Generally subclasses
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 of this method are instantiated, rather than this class itself.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 Returntype : Bio::EnsEMBL::MiscFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 Exceptions : Thrown on invalid -SLICE, -ANALYSIS, -STRAND ,-ADAPTOR arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 Caller : general, subclass constructors
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
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 my $class = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 $self->{'attributes'} = [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 =head2 new_fast
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 Arg [...] : hashref to bless as new MiscFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 Example : $miscfeature = Bio::EnsEMBL::MiscFeature->new_fast();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 Description: Creates a new Miscfeature.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 Returntype : Bio::EnsEMBL::MiscFeature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 sub new_fast {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my $class = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 my $hashref = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 $hashref->{'attributes'} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 my $self = bless $hashref, $class;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 weaken($self->{adaptor}) if ( ! isweak($self->{adaptor}) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 =head2 add_Attribute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 Arg [1] : Bio::EnsEMBL::Attribute $attribute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 Example : $misc_feature->add_attribute($attribute);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 Description: Adds an attribute to this misc. feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 Exceptions : throw on wrong argument type
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 sub add_Attribute {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 my ($self, $attrib) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 if( ! defined $attrib || ! $attrib->isa( "Bio::EnsEMBL::Attribute" )) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 throw( "You have to provide a Bio::EnsEMBL::Attribute, not a [$attrib]" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 $self->{'attributes'} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 push @{$self->{'attributes'}}, $attrib
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 =head2 add_MiscSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Arg [1] : Bio::EnsEMBL::MiscSet $set
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 The set to add
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 Example : $misc_feature->add_MiscSet(Bio::EnsEMBL::MiscSet->new(...));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 Description: Associates this MiscFeature with a given Set.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 Returntype : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 Exceptions : throw if the set arg is not provided,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 throw if the set to be added does not have a code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 sub add_MiscSet {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 my $miscSet = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 if(!$miscSet || !ref($miscSet) || !$miscSet->isa('Bio::EnsEMBL::MiscSet')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 throw('Set argument must be a Bio::EnsEMBL::MiscSet');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 $self->{'miscSets'} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 push( @{$self->{'miscSets'}}, $miscSet );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 =head2 get_all_MiscSets
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 Arg [1] : optional string $code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 The code of the set to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 Example : $set = $misc_feature->get_all_MiscSets($code);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 Description: Retrieves a set that this feature is associated with via its
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 code. Can return empty lists. Usually returns about one elements lists.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 Returntype : listref of Bio::EnsEMBL::MiscSet
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 Exceptions : throw if the code arg is not provided
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 sub get_all_MiscSets {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 my $code = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 $self->{'miscSets'} ||= [];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 if( defined $code ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 my @results = grep { uc($_->code())eq uc( $code ) } @{$self->{'miscSets'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 return \@results;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 return $self->{'miscSets'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 =head2 get_all_Attributes
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 Arg [1] : optional string $code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 The code of the Attribute objects to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 Example : @attributes = @{ $misc_feature->get_all_Attributes('name') };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 Description: Retrieves a list of Attribute objects for given code or all
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 of the associated Attributes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 Returntype : listref of Bio::EnsEMBL::Attribute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 sub get_all_Attributes {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 my $code = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 my @results;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291 my $result;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 if( defined $code ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 @results = grep { uc( $_->code() ) eq uc( $code )} @{$self->{'attributes'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 return \@results;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 return $self->{'attributes'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 =head2 get_all_attribute_values
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 Arg [1] : string $code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 The code of the Attribute object values to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 Example : @attributes_vals = @{$misc_feature->get_all_attribute_values('name')};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 Description: Retrieves a list of Attribute object values for given code or all
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 of the associated Attributes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 Returntype : listref of values
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 sub get_all_attribute_values {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 my $code = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 my @results = map { uc( $_->code() ) eq uc( $code ) ? $_->value : () }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 @{$self->{'attributes'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 return \@results;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 =head2 get_scalar_attribute
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 Arg [1] : string $code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 The code of the Attribute object values to retrieve
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 Example : $vals = $misc_feature->get_scalar_attribute('name');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 Description: Retrieves a value for given code or all
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 of the associated Attributes.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 Returntype : scalar value
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 Exceptions :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 sub get_scalar_attribute {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 my $code = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342 my @results = grep { uc( $_->code() ) eq uc( $code )} @{$self->{'attributes'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 return @results ? $results[0]->value() : '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 sub get_first_scalar_attribute {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 foreach my $code ( @_ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 my @results = grep { uc( $_->code() ) eq uc( $code )} @{$self->{'attributes'}};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 return $results[0]->value() if @results;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352 return '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354 =head2 display_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 Arg [1] : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 Example : print $kb->display_id();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 Description: This method returns a string that is considered to be
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359 the 'display' identifier. For misc_features this is the first
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 name or synonym attribute or '' if neither are defined.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361 Returntype : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 Caller : web drawing code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 Status : Stable
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368 sub display_id {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 my ($attrib) = @{$self->get_all_Attributes('name')};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371 ($attrib) = @{$self->get_all_Attributes('synonym')} if(!$attrib);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 if( defined $attrib ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 return $attrib->value();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 return '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 1;