annotate variant_effect_predictor/Bio/EnsEMBL/Compara/GenomicAlignGroup.pm @ 1:d6778b5d8382 draft default tip

Deleted selected files
author willmclaren
date Fri, 03 Aug 2012 10:05:43 -0400
parents 21066c0abaf5
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::GenomicAlignGroup - Defines groups of genomic aligned sequences
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::GenomicAlignGroup;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
26
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
27 my $genomic_align_group = new Bio::EnsEMBL::Compara::GenomicAlignGroup (
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
28 -adaptor => $genomic_align_group_adaptor,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
29 -genomic_align_array => [$genomic_align1, $genomic_align2...]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
30 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
31
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
32 SET VALUES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
33 $genomic_align_group->adaptor($gen_ali_group_adaptor);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
34 $genomic_align_group->dbID(12);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
35 $genomic_align_group->genomic_align_array([$genomic_align1, $genomic_align2]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
36
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
37 GET VALUES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
38 my $genomic_align_group_adaptor = $genomic_align_group->adaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
39 my $dbID = $genomic_align_group->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
40 my $genomic_aligns = $genomic_align_group->genomic_align_array();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
41
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
42 =head1 DESCRIPTION
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
43
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
44 The GenomicAlignGroup object defines groups of alignments.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
45
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
46 =head1 OBJECT ATTRIBUTES
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
47
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
48 =over
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
49
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
50 =item dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
51
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
52 corresponds to genomic_align_group.node_id
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
53
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
54 =item adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
55
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
56 Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroupAdaptor object to access DB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
57
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
58 =item genomic_align_array
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
59
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
60 listref of Bio::EnsEMBL::Compara::DBSQL::GenomicAlign objects corresponding to this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
61 Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroup object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
62
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
63 =back
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
64
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
65 =head1 APPENDIX
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
66
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
67 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
68
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
69 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
70
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
71
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
72 # Let the code begin...
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
73
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
74
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
75 package Bio::EnsEMBL::Compara::GenomicAlignGroup;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
76 use strict;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
77
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
78 # Object preamble
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
79 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
80 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
81 use Scalar::Util qw(weaken);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
82
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
83
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
84 =head2 new (CONSTRUCTOR)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
85
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
86 Arg [-DBID] : (opt.) int $dbID (the database internal ID for this object)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
87 Arg [-ADAPTOR]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
88 : (opt.) Bio::EnsEMBL::Compara::DBSQL::GenomicAlignAdaptor $adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
89 (the adaptor for connecting to the database)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
90 Arg [-GENOMIC_ALIGN_ARRAY]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
91 : (opt.) array_ref $genomic_aligns (a reference to the array of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
92 Bio::EnsEMBL::Compara::GenomicAlign objects corresponding to this
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
93 Bio::EnsEMBL::Compara::GenomicAlignGroup object)
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
94 Example : my $genomic_align_group =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
95 new Bio::EnsEMBL::Compara::GenomicAlignGroup(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
96 -adaptor => $genomic_align_group_adaptor,
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
97 -genomic_align_array => [$genomic_align1, $genomic_align2...]
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
98 );
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
99 Description: Creates a new GenomicAligngroup object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
100 Returntype : Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroup
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
101 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
102 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
103 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
104
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
105 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
106
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
107 sub new {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
108 my($class, @args) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
109
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
110 my $self = {};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
111 bless $self,$class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
112
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
113 my ($adaptor, $dbID, $genomic_align_array) =
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
114 rearrange([qw(
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
115 ADAPTOR DBID GENOMIC_ALIGN_ARRAY)], @args);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
116
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
117 $self->adaptor($adaptor) if (defined ($adaptor));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
118 $self->dbID($dbID) if (defined ($dbID));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
119 $self->genomic_align_array($genomic_align_array) if (defined($genomic_align_array));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
120
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
121 return $self;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
122 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
123
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
124 =head2 new_fast
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
125
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
126 Arg [1] : hash reference $hashref
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
127 Example : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
128 Description: This is an ultra fast constructor which requires knowledge of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
129 the objects internals to be used.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
130 Returntype :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
131 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
132 Caller :
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
133 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
134
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
135 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
136
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
137 sub new_fast {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
138 my $class = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
139 my $hashref = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
140
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
141 return bless $hashref, $class;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
142 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
143
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
144 =head2 copy
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
145
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
146 Arg : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
147 Example : my $new_gag = $gag->copy()
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
148 Description : Create a copy of this Bio::EnsEMBL::Compara::GenomicAlignGroup
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
149 object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
150 Returntype : Bio::EnsEMBL::Compara::GenomicAlignGroup
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
151 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
152 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
153 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
154
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
155 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
156
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
157 sub copy {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
158 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
159 my $copy;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
160 $copy->{original_dbID} = $self->{dbID};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
161
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
162 #This is not a deep copy
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
163 #$copy->{genomic_align_array} = $self->{genomic_align_array};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
164
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
165 my $new_genomic_align_array;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
166 foreach my $genomic_align (@{$self->{genomic_align_array}}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
167 my $new_ga = $genomic_align->copy;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
168 push @$new_genomic_align_array, $new_ga;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
169 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
170 $copy->{genomic_align_array} = $new_genomic_align_array;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
171
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
172 return bless $copy, ref($self);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
173 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
174
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
175
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
176 =head2 adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
177
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
178 Arg [1] : Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroupAdaptor $adaptor
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
179 Example : my $gen_ali_grp_adaptor = $genomic_align_block->adaptor();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
180 Example : $genomic_align_block->adaptor($gen_ali_grp_adaptor);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
181 Description: Getter/Setter for the adaptor this object uses for database
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
182 interaction.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
183 Returntype : Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroupAdaptor object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
184 Exceptions : thrown if $adaptor is not a
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
185 Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroupAdaptor object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
186 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
187 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
188
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
189 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
190
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
191 sub adaptor {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
192 my ($self, $adaptor) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
193
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
194 if (defined($adaptor)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
195 throw("$adaptor is not a Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroupAdaptor object")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
196 unless ($adaptor->isa("Bio::EnsEMBL::Compara::DBSQL::GenomicAlignGroupAdaptor"));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
197 $self->{'adaptor'} = $adaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
198 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
199
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
200 return $self->{'adaptor'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
201 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
202
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
203
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
204 =head2 dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
205
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
206 Arg [1] : integer $dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
207 Example : my $dbID = $genomic_align_group->dbID();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
208 Example : $genomic_align_group->dbID(12);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
209 Description: Getter/Setter for the attribute dbID
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
210 Returntype : integer
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
211 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
212 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
213 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
214
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
215 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
216
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
217 sub dbID {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
218 my ($self, $dbID) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
219
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
220 if (defined($dbID)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
221 $self->{'dbID'} = $dbID;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
222 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
223
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
224 return $self->{'dbID'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
225 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
226
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
227 =head2 genomic_align_array
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
228
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
229 Arg [1] : array reference containing Bio::EnsEMBL::Compara::GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
230 Example : $genomic_aligns = $genomic_align_group->genomic_align_array();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
231 $genomic_align_group->genomic_align_array([$genomic_align1, $genomic_align2]);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
232 Description: get/set for attribute genomic_align_array
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
233 Returntype : array reference containing Bio::EnsEMBL::Compara::GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
234 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
235 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
236 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
237
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
238 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
239
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
240 sub genomic_align_array {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
241 my ($self, $genomic_align_array) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
242 my $genomic_align_adaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
243
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
244 if (defined $genomic_align_array) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
245 foreach my $genomic_align (@$genomic_align_array) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
246 throw("$genomic_align is not a Bio::EnsEMBL::Compara::GenomicAlign object") unless ($genomic_align->isa("Bio::EnsEMBL::Compara::GenomicAlign"));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
247 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
248 $self->{'genomic_align_array'} = $genomic_align_array;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
249 } elsif (!defined $self->{'genomic_align_array'}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
250 # Try to get genomic_align_array from other sources
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
251 if (defined($self->{'adaptor'}) and defined($self->{'dbID'})) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
252 my $genomic_align_group_adaptor = $self->adaptor->db->get_GenomicAlignGroupAdaptor;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
253 my $gag = $genomic_align_group_adaptor->fetch_by_dbID($self->{'dbID'});
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
254 $self->{'genomic_align_array'} = $gag->{'genomic_align_array'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
255 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
256 warning("Fail to get data from other sources in Bio::EnsEMBL::Compara::GenomicAlignGroup->genomic_align_array".
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
257 " You either have to specify more information (see perldoc for".
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
258 " Bio::EnsEMBL::Compara::GenomicAlign) or to set it up directly");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
259 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
260 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
261
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
262 return $self->{'genomic_align_array'};
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
263 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
264
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
265 =head2 add_GenomicAlign
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
266
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
267 Arg [1] : Bio::EnsEMBL::Compara::GenomicAlign $genomic_align
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
268 Example : $genomic_align_block->add_GenomicAlign($genomic_align);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
269 Description: adds another Bio::EnsEMBL::Compara::GenomicAlign object to the set of
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
270 Bio::EnsEMBL::Compara::GenomicAlign objects in the attribute
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
271 genomic_align_array.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
272 Returntype : Bio::EnsEMBL::Compara::GenomicAlign object
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
273 Exceptions : thrown if wrong argument
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
274 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
275 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
276
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
277 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
278
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
279 sub add_GenomicAlign {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
280 my ($self, $genomic_align) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
281
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
282 throw("[$genomic_align] is not a Bio::EnsEMBL::Compara::GenomicAlign object")
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
283 unless ($genomic_align and ref($genomic_align) and
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
284 $genomic_align->isa("Bio::EnsEMBL::Compara::GenomicAlign"));
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
285 push(@{$self->{'genomic_align_array'}}, $genomic_align);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
286
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
287 return $genomic_align;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
288 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
289
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
290
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
291 =head2 get_all_GenomicAligns
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
292
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
293 Arg [1] : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
294 Example : $genomic_aligns = $genomic_align_block->get_all_GenomicAligns();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
295 Description: returns the set of Bio::EnsEMBL::Compara::GenomicAlign objects in
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
296 the attribute genomic_align_array.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
297 Returntype : array reference containing Bio::EnsEMBL::Compara::GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
298 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
299 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
300 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
301
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
302 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
303
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
304 sub get_all_GenomicAligns {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
305 my ($self) = @_;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
306
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
307 return ($self->{'genomic_align_array'} or []);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
308 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
309
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
310
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
311 =head2 genome_db
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
312
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
313 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
314 Example : $genome_db = $object->genome_db();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
315 Description : Get the genome_db object from the underlying GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
316 Returntype : Bio::EnsEMBL::Compara::GenomeDB
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
317 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
318 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
319 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
320
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
321 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
322
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
323 sub genome_db {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
324 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
325
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
326 foreach my $genomic_align (@{$self->get_all_GenomicAligns}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
327 return $genomic_align->genome_db if ($genomic_align->genome_db);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
328 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
329 return undef;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
330 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
331
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
332
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
333 =head2 dnafrag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
334
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
335 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
336 Example : $dnafrag = $object->dnafrag();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
337 Description : Get the dnafrag object from the underlying GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
338 Returntype : Bio::EnsEMBL::Compara::DnaFrag
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
339 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
340 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
341 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
342
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
343 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
344
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
345 sub dnafrag {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
346 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
347 my $dnafrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
348 foreach my $genomic_align (@{$self->get_all_GenomicAligns}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
349 if (!$dnafrag) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
350 $dnafrag = $genomic_align->dnafrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
351 } elsif ($dnafrag != $genomic_align->dnafrag) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
352 return bless({name => "Composite"}, "Bio::EnsEMBL::Compara::DnaFrag");
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
353 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
354 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
355 return $dnafrag;
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 dnafrag_start
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
360
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
361 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
362 Example : $dnafrag_start = $object->dnafrag_start();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
363 Description : Get the dnafrag_start value from the underlying GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
364 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
365 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
366 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
367 Status : Stable
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 dnafrag_start {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
372 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
373 my $dnafrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
374 my $dnafrag_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
375 foreach my $genomic_align (@{$self->get_all_GenomicAligns}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
376 if (!$dnafrag) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
377 $dnafrag = $genomic_align->dnafrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
378 $dnafrag_start = $genomic_align->dnafrag_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
379 } elsif ($dnafrag != $genomic_align->dnafrag) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
380 return 1;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
381 } elsif ($genomic_align->dnafrag_start < $dnafrag_start) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
382 $dnafrag_start = $genomic_align->dnafrag_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
383 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
384 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
385 return $dnafrag_start;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
386 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
387
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
388
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
389 =head2 dnafrag_end
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
390
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
391 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
392 Example : $dnafrag_end = $object->dnafrag_end();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
393 Description : Get the dnafrag_end value from the underlying GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
394 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
395 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
396 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
397 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
398
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
399 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
400
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
401 sub dnafrag_end {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
402 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
403 my $dnafrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
404 my $dnafrag_end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
405 foreach my $genomic_align (@{$self->get_all_GenomicAligns}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
406 if (!$dnafrag) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
407 $dnafrag = $genomic_align->dnafrag;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
408 $dnafrag_end = $genomic_align->dnafrag_end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
409 } elsif ($dnafrag != $genomic_align->dnafrag) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
410 return $genomic_align->length;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
411 } elsif ($genomic_align->dnafrag_end > $dnafrag_end) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
412 $dnafrag_end = $genomic_align->dnafrag_end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
413 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
414 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
415 return $dnafrag_end;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
416 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
417
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
418
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
419 =head2 dnafrag_strand
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
420
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
421 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
422 Example : $dnafrag_strand = $object->dnafrag_strand();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
423 Description : Get the dnafrag_strand value from the underlying GenomicAlign objects
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
424 Returntype : int
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
425 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
426 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
427 Status : Stable
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
428
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
429 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
430
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
431 sub dnafrag_strand {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
432 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
433 my $dnafrag_strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
434 foreach my $genomic_align (@{$self->get_all_GenomicAligns}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
435 if (!$dnafrag_strand) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
436 $dnafrag_strand = $genomic_align->dnafrag_strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
437 } elsif ($dnafrag_strand != $genomic_align->dnafrag_strand) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
438 return 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
439 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
440 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
441 return $dnafrag_strand;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
442 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
443
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
444
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
445 =head2 aligned_sequence
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
446
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
447 Arg [1] : -none-
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
448 Example : $aligned_sequence = $object->aligned_sequence();
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
449 Description : Get the aligned sequence for this group. When the group
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
450 contains one single sequence, returns its aligned sequence.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
451 For composite segments, returns the combined aligned seq.
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
452 Returntype : string
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
453 Exceptions : none
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
454 Caller : general
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
455 Status : At risk
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
456
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
457 =cut
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
458
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
459 sub aligned_sequence {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
460 my $self = shift;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
461
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
462 my $aligned_sequence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
463 foreach my $this_genomic_align (@{$self->get_all_GenomicAligns}) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
464 if (!$aligned_sequence) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
465 $aligned_sequence = $this_genomic_align->aligned_sequence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
466 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
467 my $pos = 0;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
468 foreach my $substr (grep {$_} split(/(\.+)/, $this_genomic_align->aligned_sequence)) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
469 if ($substr =~ /^\.+$/) {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
470 $pos += length($substr);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
471 } else {
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
472 substr($aligned_sequence, $pos, length($substr), $substr);
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
473 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
474 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
475 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
476 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
477
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
478 return $aligned_sequence;
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
479 }
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
480
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
481
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
482
21066c0abaf5 Uploaded
willmclaren
parents:
diff changeset
483 1;