annotate variant_effect_predictor/Bio/EnsEMBL/Compara/ConstrainedElement.pm @ 0:21066c0abaf5 draft

Uploaded
author willmclaren
date Fri, 03 Aug 2012 10:04:48 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
1 =head1 LICENSE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
2
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
5
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
6 This software is distributed under a modified Apache license.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
7 For license details, please see
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
8
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
10
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
11 =head1 CONTACT
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
12
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
15
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
17 <helpdesk@ensembl.org>.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
18
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
19 =head1 NAME
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
20
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
21 Bio::EnsEMBL::Compara::ConstrainedElement - constrained element data produced by Gerp
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
22
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
23 =head1 SYNOPSIS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
24
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
25 use Bio::EnsEMBL::Compara::ConstrainedElement;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 my $constrained_element = new Bio::EnsEMBL::Compara::ConstrainedElement(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 -adaptor => $constrained_element_adaptor,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 -method_link_species_set_id => $method_link_species_set_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 -reference_dnafrag_id => $dnafrag_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31 -score => 56.2,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 -p_value => '1.203e-6',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 -alignment_segments => [ [$dnafrag1_id, $start, $end, $genome_db_id, $dnafrag1_name ], [$dnafrag2_id, ... ], ... ],
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36 GET / SET VALUES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 $constrained_element->adaptor($constrained_element_adaptor);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 $constrained_element->dbID($constrained_element_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 $constrained_element->method_link_species_set_id($method_link_species_set_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 $constrained_element->score(56.2);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41 $constrained_element->p_value('5.62e-9');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 $constrained_element->alignment_segments([ [$dnafrag_id, $start, $end, $genome_db_id, $dnafrag_name ], ... ]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43 $constrained_element->slice($slice);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 $constrained_element->start($constrained_element_start - $slice_start + 1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45 $constrained_element->end($constrained_element_end - $slice_start + 1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 $constrained_element->seq_region_start($self->slice->start + $self->{'start'} - 1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47 $constrained_element->seq_region_end($self->slice->start + $self->{'end'} - 1);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 $constrained_element->strand($strand);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49 $constrained_element->reference_dnafrag_id($dnafrag_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51 =head1 OBJECT ATTRIBUTES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53 =over
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55 =item dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57 corresponds to constrained_element.constrained_element_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59 =item adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor object to access DB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 =item method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 corresponds to method_link_species_set.method_link_species_set_id (external ref.)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 =item score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 corresponds to constrained_element.score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71 =item p_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73 corresponds to constrained_element.p_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 =item slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77 corresponds to a Bio::EnsEMBL::Slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 =item start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 corresponds to a constrained_element.dnafrag_start (in slice coordinates)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83 =item end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85 corresponds to a constrained_element.dnafrag_end (in slice coordinates)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 =item seq_region_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 corresponds to a constrained_element.dnafrag_start (in genomic (absolute) coordinates)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 =item seq_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 corresponds to a constrained_element.dnafrag_end (in genomic (absolute) coordinates)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 =item strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 corresponds to a constrained_element.strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 =item $alignment_segments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 listref of listrefs (each of which contain 5 strings (dnafrag.dnafrag_id, constrained_element.dnafrag_start,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 constrained_element.dnafrag_end, constrained_element.strand, genome_db.genome_db_id, dnafrag.dnafrag_name)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 [ [ $dnafrag_id, $start, $end, $genome_db_id, $dnafrag_name ], .. ]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104 Each inner listref contains information about one of the species sequences which make up the constarained
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 element block from the alignment.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 =back
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116 # Let the code begin...
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 package Bio::EnsEMBL::Compara::ConstrainedElement;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 # Object preamble
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 use Bio::EnsEMBL::Utils::Exception qw(throw warning info deprecate verbose);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125 use Bio::EnsEMBL::Compara::DnaFrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 use Bio::SimpleAlign;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 use Data::Dumper;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 =head2 new (CONSTRUCTOR)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Arg [-dbID] : int $dbID (the database ID for
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 the constrained element block for this object)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134 Arg [-ADAPTOR]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 : (opt.) Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor $adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136 (the adaptor for connecting to the database)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 Arg [-METHOD_LINK_SPECIES_SET_ID]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 : int $mlss_id (the database internal ID for the $mlss)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 Arg [-SCORE]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140 : float $score (the score of this alignment)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 Arg [-ALIGNMENT_SEGMENTS]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 : (opt.) listref of listrefs which each contain 5 values
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143 [ [ $dnafrag_id, $dnafrag_start, $dnafrag_end, $genome_db_id, $dnafrag_name ], ... ]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 corresponding to the all the species in the constrained element block.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145 Arg [-P_VALUE]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 : (opt.) string $p_value (the p_value of this constrained element)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Arg [-SLICE]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 : (opt.) Bio::EnsEMBL::Slice object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 Arg [-START]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 : (opt.) int ($dnafrag_start - Bio::EnsEMBL::Slice->start + 1).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 Arg [-END]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 : (opt.) int ($dnafrag_end - Bio::EnsEMBL::Slice->start + 1).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 Arg [-STRAND]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154 : (opt.) int (the strand from the genomic_align).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 Arg [-REFERENCE_DNAFRAG_ID]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156 : (opt.) int $dnafrag_id of the slice or dnafrag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 Example : my $constrained_element =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 new Bio::EnsEMBL::Compara::ConstrainedElement(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 -dbID => $constrained_element_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161 -adaptor => $adaptor,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 -method_link_species_set_id => $method_link_species_set_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 -score => 28.2,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164 -alignment_segments => [ [ $dnafrag_id, $dnafrag_start, $dnafrag_end, $genome_db_id, $dnafrag_name ], .. ],
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 #danfarg_[start|end|id] from constrained_element table
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 -p_value => '5.023e-6',
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 -slice => $slice_obj,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 -start => ( $dnafrag_start - $slice_obj->start + 1),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 -end => ( $dnafrag_end - $slice_obj->start + 1),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 -strand => $strand,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171 -reference_dnafrag_id => $dnafrag_id,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 Description: Creates a new ConstrainedElement object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174 Returntype : Bio::EnsEMBL::Compara::DBSQL::ConstrainedElement
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 my($class, @args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 my $self = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 bless $self,$class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 my ($adaptor, $dbID, $alignment_segments,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 $method_link_species_set_id, $score, $p_value,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188 $slice, $start, $end, $strand, $reference_dnafrag_id) =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 rearrange([qw(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190 ADAPTOR DBID ALIGNMENT_SEGMENTS
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 METHOD_LINK_SPECIES_SET_ID SCORE P_VALUE
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 SLICE START END STRAND REFERENCE_DNAFRAG_ID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193 )],
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 @args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 $self->adaptor($adaptor) if (defined ($adaptor));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 $self->dbID($dbID)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 if (defined ($dbID));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199 $self->method_link_species_set_id($method_link_species_set_id)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 if (defined ($method_link_species_set_id));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 $self->alignment_segments($alignment_segments)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202 if (defined ($alignment_segments));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203 $self->score($score) if (defined ($score));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 $self->p_value($p_value) if (defined ($p_value));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205 $self->slice($slice) if (defined ($slice));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 $self->start($start) if (defined ($start));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 $self->end($end) if (defined ($end));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 $self->strand($strand) if (defined ($strand));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 $self->reference_dnafrag_id($reference_dnafrag_id)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 if (defined($reference_dnafrag_id));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214 sub new_fast {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 my $class = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216 my $hashref = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 return bless $hashref, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 =head2 adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223 Arg [1] : Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 Example : my $cons_ele_adaptor = $constrained_element->adaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 Example : $cons_ele_adaptor->adaptor($cons_ele_adaptor);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226 Description: Getter/Setter for the adaptor this object uses for database
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 interaction.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228 Returntype : Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 Exceptions : thrown if $adaptor is not a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 sub adaptor {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 my ($self, $adaptor) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 if (defined($adaptor)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239 throw("$adaptor is not a Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor object")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 unless ($adaptor->isa("Bio::EnsEMBL::Compara::DBSQL::ConstrainedElementAdaptor"));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 $self->{'adaptor'} = $adaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 return $self->{'adaptor'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 =head2 dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 Arg [1] : integer $dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 Example : my $dbID = $constrained_element->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 Example : $constrained_element->dbID(2);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 Description: Getter/Setter for the attribute dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 Exceptions : returns undef if no ref.dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 sub dbID {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 my ($self, $dbID) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 if (defined($dbID)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 $self->{'dbID'} = $dbID;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266 return $self->{'dbID'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 =head2 p_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 Arg [1] : float $p_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 Example : my $p_value = $constrained_element->p_value();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 Example : $constrained_element->p_value('5.35242e-105');
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 Description: Getter/Setter for the attribute p_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276 Returntype : float
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 Exceptions : returns undef if no ref.p_value
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 sub p_value {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 my ($self, $p_value) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 if (defined($p_value)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286 $self->{'p_value'} = $p_value;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289 return $self->{'p_value'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 =head2 score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 Arg [1] : float $score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 Example : my $score = $constrained_element->score();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 Example : $constrained_element->score(16.8);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 Description: Getter/Setter for the attribute score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 Returntype : float
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 Exceptions : returns undef if no ref.score
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 sub score {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306 my ($self, $score) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 if (defined($score)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309 $self->{'score'} = $score;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 return $self->{'score'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 =head2 method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 Arg [1] : integer $method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 Example : $method_link_species_set_id = $constrained_element->method_link_species_set_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 Example : $constrained_element->method_link_species_set_id(3);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 Description: Getter/Setter for the attribute method_link_species_set_id.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 Exceptions : returns undef if no ref.method_link_species_set_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 sub method_link_species_set_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 my ($self, $method_link_species_set_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 if (defined($method_link_species_set_id)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330 $self->{'method_link_species_set_id'} = $method_link_species_set_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333 return $self->{'method_link_species_set_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 =head2 alignment_segments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 Arg [1] : listref $alignment_segments [ [ $dnafrag_id, $start, $end, $genome_db_id, $dnafrag_name ], .. ]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 Example : my $alignment_segments = $constrained_element->alignment_segments();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 $constrained_element->alignment_segments($alignment_segments);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 Description: Getter/Setter for the attribute alignment_segments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342 Returntype : listref
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343 Exceptions : returns undef if no ref.alignment_segments
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348 sub alignment_segments {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349 my ($self, $alignment_segments) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 if (defined($alignment_segments)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 $self->{'alignment_segments'} = $alignment_segments;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 return $self->{'alignment_segments'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
356 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
357
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
358
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
359 =head2 slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 Arg [1] : Bio::EnsEMBL::Slice $slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 Example : $slice = $constrained_element->slice;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 Example : $constrained_element->slice($slice);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 Description: Getter/Setter for the attribute slice.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 Returntype : Bio::EnsEMBL::Slice object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366 Exceptions : returns undef if no ref.slice
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
368
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
369 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
370
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
371 sub slice {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 my ($self, $slice) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374 if (defined($slice)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 $self->{'slice'} = $slice;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 return $self->{'slice'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 =head2 start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 Arg [1] : (optional) int $start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 Example : $start = $constrained_element->start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 Example : $constrained_element->start($start);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 Description: Getter/Setter for the attribute start.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388 Exceptions : returns undef if no ref.start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393 sub start {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 my ($self, $start) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 if (defined($start)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397 $self->{'start'} = $start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400 return $self->{'start'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 =head2 end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 Arg [1] : (optional) int $end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 Example : $end = $constrained_element->end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 Example : $constrained_element->end($end);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408 Description: Getter/Setter for the attribute end relative to the begining of the slice.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410 Exceptions : returns undef if no ref.end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 sub end {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 my ($self, $end) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418 if (defined($end)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419 $self->{'end'} = $end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 return $self->{'end'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 =head2 seq_region_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428 Arg [1] : (optional) int $seq_region_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429 Example : $seq_region_start = $constrained_element->seq_region_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430 Example : $constrained_element->seq_region_start($seq_region_start);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431 Description: Getter/Setter for the attribute start relative to the begining of the dnafrag (genomic coords).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 Exceptions : returns undef if no ref.seq_region_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437 sub seq_region_start {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438 my ($self, $seq_region_start) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 if(defined($seq_region_start)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441 $self->{'seq_region_start'} = $seq_region_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
442 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
443 $self->{'seq_region_start'} = $self->slice->start + $self->{'start'} - 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
444 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
445 return $self->{'seq_region_start'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
446 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
447
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
448
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
449 =head2 seq_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
450
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
451 Arg [1] : (optional) int $seq_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
452 Example : $seq_region_end = $constrained_element->seq_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
453 Example : $constrained_element->seq_region_end($seq_region_end);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
454 Description: Getter/Setter for the attribute end relative to the begining of the dnafrag (genomic coords).
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
455 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
456 Exceptions : returns undef if no ref.seq_region_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
457 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
458
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
459 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
460 sub seq_region_end {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
461 my ($self, $seq_region_end) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
462
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
463 if(defined($seq_region_end)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
464 $self->{'seq_region_end'} = $seq_region_end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
465 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
466 $self->{'seq_region_end'} = $self->slice->start + $self->{'end'} - 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
467 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
468 return $self->{'seq_region_end'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
469 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
470
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
471
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
472
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
473 =head2 strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
474
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
475 Arg [1] : (optional) int $stand$
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
476 Example : $end = $constrained_element->strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
477 Example : $constrained_element->end($strand);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
478 Description: Getter/Setter for the attribute genomic_align strand.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
479 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
480 Exceptions : returns undef if no ref.strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
481 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
482
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
483 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
484
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
485 sub strand {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
486 my ($self, $strand) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
487
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
488 if (defined($strand)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
489 $self->{'strand'} = $strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
490 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
491
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
492 return $self->{'strand'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
493 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
494
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
495 =head2 reference_dnafrag_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
496
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
497 Arg [1] : (optional) int $reference_dnafrag_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
498 Example : $dnafrag_id = $constrained_element->reference_dnafrag_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
499 Example : $constrained_element->reference_dnafrag_id($dnafrag_id);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
500 Description: Getter/Setter for the attribute end.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
501 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
502 Exceptions : returns undef if no ref.reference_dnafrag_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
503 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
504
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
505 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
506
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
507 sub reference_dnafrag_id {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
508 my ($self, $reference_dnafrag_id) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
509
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
510 if (defined($reference_dnafrag_id)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
511 $self->{'reference_dnafrag_id'} = $reference_dnafrag_id;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
512 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
513
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
514 return $self->{'reference_dnafrag_id'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
515 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
516
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
517 =head2 get_SimpleAlign
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
518
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
519 Arg [1] : Optional flags for formatting displayed MSA
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
520 Example : my $out = Bio::AlignIO->newFh(-fh=>\*STDOUT, -format=> "clustalw");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
521 my $cons = $ce_adaptor->fetch_all_by_MethodLinkSpeciesSet_Slice($mlss, $slice);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
522 foreach my $constrained_element(@{ $cons }) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
523 my $simple_align = $constrained_element->get_SimpleAlign("uc");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
524 print $out $simple_align;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
525 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
526 Description: Rebuilds the constrained element alignment
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
527 Returntype : Bio::SimpleAlign object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
528 Exceptions : throw if you can not get a Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object from the constrained element
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
529 Caller : object::methodname
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
530
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
531 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
532
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
533 sub get_SimpleAlign {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
534 my ($self, @flags) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
535
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
536 my $mlss_adaptor = $self->adaptor->db->get_MethodLinkSpeciesSet;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
537
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
538 my $cons_eles_mlss = $mlss_adaptor->fetch_by_dbID($self->method_link_species_set_id());
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
539
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
540 if (defined($cons_eles_mlss)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
541 throw("$cons_eles_mlss is not a Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
542 unless ($cons_eles_mlss->isa("Bio::EnsEMBL::Compara::MethodLinkSpeciesSet"));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
543 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
544 throw("unable to get a Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object from this constrained element");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
545 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
546
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
547 my $msa_mlss_id = $cons_eles_mlss->get_tagvalue("msa_mlss_id"); # The mlss_id of the alignments from which the constrained elements were generated
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
548
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
549 my $msa_mlss = $mlss_adaptor->fetch_by_dbID( $msa_mlss_id );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
550
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
551 # setting the flags
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
552 my $skip_empty_GenomicAligns = 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
553 my $uc = 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
554 my $translated = 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
555
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
556 for my $flag ( @flags ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
557 $uc = 1 if ($flag =~ /^uc$/i);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
558 $translated = 1 if ($flag =~ /^translated$/i);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
559 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
560
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
561 my $genomic_align_block_adaptor = $self->adaptor->db->get_GenomicAlignBlock;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
562 $self->start(1) if $self->start <= 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
563 my $gabs = $genomic_align_block_adaptor->fetch_all_by_MethodLinkSpeciesSet_Slice(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
564 $msa_mlss, $self->slice->sub_Slice($self->start, $self->end, $self->slice->strand));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
565
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
566 my $sa = Bio::SimpleAlign->new();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
567
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
568 warn "should be only one genomic_align_block associated with each constrained element\n" if @$gabs > 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
569
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
570 my $this_genomic_align_block = $gabs->[0];
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
571 my $bio07 = 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
572 if(!$sa->can('add_seq')) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
573 $bio07 = 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
574 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
575 my $reference_genomic_align = $this_genomic_align_block->reference_genomic_align();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
576
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
577 my $restricted_gab = $this_genomic_align_block->restrict_between_reference_positions(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
578 ($self->slice->start + $self->start - 1),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
579 ($self->slice->start + $self->end - 1),
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
580 $reference_genomic_align,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
581 $skip_empty_GenomicAligns);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
582 print "dbID: ", $this_genomic_align_block->dbID, ". ";
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
583 foreach my $genomic_align( @{ $restricted_gab->get_all_GenomicAligns } ) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
584 my $alignSeq = $genomic_align->aligned_sequence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
585 my $loc_seq = Bio::LocatableSeq->new(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
586 -SEQ => $uc ? uc $alignSeq : lc $alignSeq,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
587 -START => $genomic_align->dnafrag_start,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
588 -END => $genomic_align->dnafrag_end,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
589 -ID => $genomic_align->dnafrag->genome_db->name . "/" . $genomic_align->dnafrag->name,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
590 -STRAND => $genomic_align->dnafrag_strand);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
591
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
592 if($bio07) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
593 $sa->addSeq($loc_seq);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
594 }else{
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
595 $sa->add_seq($loc_seq);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
596 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
597 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
598 return $sa;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
599 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
600
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
601 =head2 summary_as_hash
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
602
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
603 Example : $constrained_summary = $constrained_element->summary_as_hash();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
604 Description : Retrieves a textual summary of this ConstrainedElement object.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
605 Sadly not descended from Feature, so certain attributes must be explicitly requested
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
606 Returns : hashref of descriptive strings
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
607
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
608 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
609
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
610 sub summary_as_hash {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
611 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
612 my $summary_ref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
613 $summary_ref->{'ID'} = $self->dbID;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
614 $summary_ref->{'start'} = $self->seq_region_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
615 $summary_ref->{'end'} = $self->seq_region_end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
616 $summary_ref->{'strand'} = $self->strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
617 $summary_ref->{'seq_region_name'} = $self->slice->seq_region_name;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
618 $summary_ref->{'score'} = $self->score;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
619 return $summary_ref;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
620 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
621
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
622 1;