annotate variant_effect_predictor/Bio/EnsEMBL/DBSQL/AssemblySliceAdaptor.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 =head1 LICENSE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 Copyright (c) 1999-2012 The European Bioinformatics Institute and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 Genome Research Limited. All rights reserved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 This software is distributed under a modified Apache license.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 For license details, please see
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 http://www.ensembl.org/info/about/code_licence.html
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 =head1 CONTACT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 Please email comments or questions to the public Ensembl
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14 developers list at <dev@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 Questions may also be sent to the Ensembl help desk at
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 <helpdesk@ensembl.org>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 Bio::EnsEMBL::DBSQL::AssemblySliceAdaptor - adaptor/factory for MappedSlices
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 representing alternative assemblies
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 my $slice =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 $slice_adaptor->fetch_by_region( 'chromosome', 14, 900000, 950000 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 my $msc = Bio::EnsEMBL::MappedSliceContainer->new( -SLICE => $slice );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 my $asa = Bio::EnsEMBL::DBSQL::AssemblySliceAdaptor->new;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 my ($mapped_slice) = @{ $asa->fetch_by_version( $msc, 'NCBIM36' ) };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 NOTE: this code is under development and not fully functional nor tested
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 yet. Use only for development.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 This adaptor is a factory for creating MappedSlices representing
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 alternative assemblies and attaching them to a MappedSliceContainer. A
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 mapper will be created to map between the reference slice and the common
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 container slice coordinate system.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 =head1 METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 fetch_by_version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 =head1 REALTED MODULES
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 Bio::EnsEMBL::MappedSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 Bio::EnsEMBL::MappedSliceContainer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 Bio::EnsEMBL::Compara::AlignSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 Bio::EnsEMBL::Compara::AlignSlice::Slice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 Bio::EnsEMBL::AlignStrainSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 Bio::EnsEMBL::StrainSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 package Bio::EnsEMBL::DBSQL::AssemblySliceAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 use warnings;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 no warnings 'uninitialized';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 use Bio::EnsEMBL::Utils::Argument qw(rearrange);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70 use Bio::EnsEMBL::Utils::Exception qw(throw warning);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 use Bio::EnsEMBL::MappedSlice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 use Bio::EnsEMBL::Mapper;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 use Bio::EnsEMBL::DBSQL::BaseAdaptor;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 our @ISA = qw(Bio::EnsEMBL::DBSQL::BaseAdaptor);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 Example : my $assembly_slice_adaptor =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 Bio::EnsEMBL::DBSQL::AssemblySliceAdaptor->new;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 Description : Constructor.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 Return type : Bio::EnsEMBL::DBSQL::AssemblySliceAdaptor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 Exceptions : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 Caller : general
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 my $caller = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 my $class = ref($caller) || $caller;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 my $self = $class->SUPER::new(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 =head2 fetch_by_version
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Arg[1] : Bio::EnsEMBL::MappedSliceContainer $container - the container
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 to attach MappedSlices to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 Arg[2] : String $version - the assembly version to fetch
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106 Example : my ($mapped_slice) = @{ $msc->fetch_by_version('NCBIM36') };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 Description : Creates a MappedSlice representing an alternative assembly
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 version of the container's reference slice.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 Return type : listref of Bio::EnsEMBL::MappedSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 Exceptions : thrown on wrong or missing arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 Caller : general, Bio::EnsEMBL::MappedSliceContainer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 sub fetch_by_version {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 my $container = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 my $version = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 # arguement check
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 unless ($container and ref($container) and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 $container->isa('Bio::EnsEMBL::MappedSliceContainer')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 throw("Need a MappedSliceContainer.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 unless ($version) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 throw("Need an assembly version.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 my $slice = $container->ref_slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134 # project slice onto other assembly and construct MappedSlice for result
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 my $mapped_slice = Bio::EnsEMBL::MappedSlice->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 -ADAPTOR => $self,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 -CONTAINER => $container,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 -NAME => $slice->name."\#mapped_$version",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 my $cs_name = $slice->coord_system_name;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 foreach my $seg (@{ $slice->project($cs_name, $version) }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 my $proj_slice = $seg->to_Slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 # create a Mapper to map to/from the mapped_slice artificial coord system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 my $mapper = Bio::EnsEMBL::Mapper->new('mapped_slice', 'native_slice');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 # tell the mapper how to map this segment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 $mapper->add_map_coordinates(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 'mapped_slice',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 $seg->from_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 $seg->from_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 ($slice->strand * $proj_slice->strand),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 $proj_slice->seq_region_name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 $proj_slice->start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 $proj_slice->end
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 # add the Slice/Mapper pair to the MappedSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 $mapped_slice->add_Slice_Mapper_pair($proj_slice, $mapper);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 return [$mapped_slice];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 =head2 fetch_by_name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 Arg[1] : Bio::EnsEMBL::MappedSliceContainer $container - the container
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 to attach MappedSlices to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 Arg[2] : String $name - the assembly name to fetch
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 Arg[3] : (optional) String $version -- the version for the new assembly
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 Example : my ($mapped_slice) = @{ $msc->fetch_by_name('LRG1','1') };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 Description : Creates a MappedSlice representing an alternative assembly
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 version of the container's reference slice.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 Return type : listref of Bio::EnsEMBL::MappedSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 Exceptions : thrown on wrong or missing arguments
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 Caller : general, Bio::EnsEMBL::MappedSliceContainer
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 Status : At Risk
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 : under development
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 sub fetch_by_name {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 my $container = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 my $name = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 my $version = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 # arguement check
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 unless ($container and ref($container) and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 $container->isa('Bio::EnsEMBL::MappedSliceContainer')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 throw("Need a MappedSliceContainer.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 unless ($name) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 throw("Need an assembly name.");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 $version ||= '';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 my $slice = $container->ref_slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 # project slice onto other assembly and construct MappedSlice for result
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 my $mapped_slice = Bio::EnsEMBL::MappedSlice->new(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 -ADAPTOR => $self,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 -CONTAINER => $container,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 -NAME => $slice->name."\#mapped_$name:$version",
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 foreach my $seg (@{ $slice->project($name, $version) }) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 my $proj_slice = $seg->to_Slice;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 # create a Mapper to map to/from the mapped_slice artificial coord system
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 my $mapper = Bio::EnsEMBL::Mapper->new('mapped_slice', 'native_slice');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 # tell the mapper how to map this segment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 $mapper->add_map_coordinates(
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 'mapped_slice',
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 $seg->from_start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 $seg->from_end,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 ($slice->strand * $proj_slice->strand),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 $proj_slice->seq_region_name,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 $proj_slice->start,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 $proj_slice->end
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 # add the Slice/Mapper pair to the MappedSlice
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 $mapped_slice->add_Slice_Mapper_pair($proj_slice, $mapper);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 return [$mapped_slice];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240