LICENSE

Copyright [1999-2015] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute Copyright [2016-2024] EMBL-European Bioinformatics Institute

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

CONTACT

Please email comments or questions to the public Ensembl
developers list at <http://lists.ensembl.org/mailman/listinfo/dev>.

Questions may also be sent to the Ensembl help desk at
<http://www.ensembl.org/Help/Contact>.

NAME

Bio::EnsEMBL::MappedSlice - an object representing a mapped slice

SYNOPSIS

# get a reference slice
my $slice =
  $slice_adaptor->fetch_by_region( 'chromosome', 14, 900000, 950000 );

# create MappedSliceContainer based on the reference slice
my $msc = Bio::EnsEMBL::MappedSliceContainer->new( -SLICE => $slice );

# set the adaptor for fetching AssemblySlices
my $asa = $slice->adaptor->db->get_AssemblySliceAdaptor;
$msc->set_AssemblySliceAdaptor($asa);

# add an AssemblySlice to your MappedSliceContainer
$msc->attach_AssemblySlice('NCBIM36');

foreach my $mapped_slice ( @{ $msc->get_all_MappedSlices } ) {
  print $mapped_slice->name, "\n";

  foreach my $sf ( @{ $mapped_slice->get_all_SimpleFeatures } ) {
    print "  ", &to_string($sf), "\n";
  }
}

DESCRIPTION

NOTE: this code is under development and not fully functional nor tested yet. Use only for development.

This object represents a mapped slice, i.e. a slice that's attached to a reference slice and a mapper to convert coordinates to/from the reference. The attachment is done via a MappedSliceContainer which has the reference slice and the "container slice" defining the common coordinate system for all MappedSlices.

A MappedSlice is supposed to behave as close to a Bio::EnsEMBL::Slice as possible. Most Slice methods are implemented in MappedSlice and will return an equivalent value to what Slice does. There are some exceptions of unimplemented methods, either because there is no useful equivalent for a MappedSlice to do, or they are too complicated.

Not supported Bio::EnsEMBL::Slice methods:

All Bio::PrimarySeqI compliance methods
expand
get_generic_features
get_seq_region_id
seq_region_Slice

Not currently supported but maybe should/could:

calculate_pi
calculate_theta
get_base_count
get_by_Individual
get_by_strain
invert

Internally, a MappedSlice is a collection of Bio::EnsEMBL::Slices and associated Bio::EnsEMBL::Mappers which map the slices to the common container coordinate system.

MappedSlices are usually created and attached to a MappedSliceContainer by an adaptor/factory.

METHODS

new
add_Slice_Mapper_pair
get_all_Slice_Mapper_pairs
adaptor
container
name
seq_region_name
start
end
strand
length
seq_region_length
centrepoint
coord_system
coord_system_name
is_toplevel
seq (not implemented yet)
subseq (not implemented yet)
get_repeatmasked_seq (not implemented yet)
sub_MappedSlice (not implemented yet)
project (not implemented yet)

RELATED MODULES

Bio::EnsEMBL::MappedSlice
Bio::EnsEMBL::DBSQL::AssemblySliceAdaptor
Bio::EnsEMBL::Compara::AlignSlice
Bio::EnsEMBL::Compara::AlignSlice::Slice
Bio::EnsEMBL::StrainSlice

new

Arg [ADAPTOR]   : Adaptor $adaptor - an adaptor of the appropriate type
Arg [CONTAINER] : Bio::EnsEMBL::MappedSliceContainer $container - the
                  container this MappedSlice is attached to
Arg [NAME]      : String $name - name
Example     : my $mapped_slice = Bio::EnsEMBL::MappedSlice->new(
                -ADAPTOR   => $adaptor,
                -CONTAINER => $container,
                -NAME      => $name,
              );
Description : Constructor. Usually you won't call this method manually, but
              the MappedSlice will be constructed by an adaptor/factory.
Return type : Bio::EnsEMBL::MappedSlice
Exceptions  : thrown on wrong or missing arguments
Caller      : general, MappedSlice adaptors
Status      : At Risk
            : under development

add_Slice_Mapper_pair

Arg[1]      : Bio::EnsEMBL::Slice $slice - slice to add
Arg[2]      : Bio::EnsEMBL::Mapper $mapper - the mapper for this slice
Example     : $mapped_slice->add_Slice_Mapper_pair($slice, $mapper);
Description : Adds a native slice and a corresponding mapper to map to/from
              the artificial container coord system.
Return type : listref of Bio::EnsEMBL::MappedSlice
Exceptions  : thrown on wrong or missing arguments
Caller      : general, MappedSlice adaptors
Status      : At Risk
            : under development

get_all_Slice_Mapper_pairs

Example     : foreach my $pair (@{ $self->get_all_Slice_Mapper_pairs }) {
                my ($slice, $mapper) = @$pair;

                # get container coordinates
                my @coords = $mapper->map_coordinates(
                  $slice->seq_region_name,
                  $slice->start,
                  $slice->end,
                  $slice->strand,
                  'mapped_slice'
                );

                # ....
              }
Description : Gets all Slice/Mapper pairs this MappedSlice is composed of.
              Each slice (and features on it) can be mapped onto the
              artificial container coord system using the mapper.
Return type : listref of listref of a Bio::EnsEMBL::Slice and
              Bio::EnsEMBL::Mapper pair
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

adaptor

Arg[1]      : (optional) Adaptor $adaptor - the adaptor/factory for this
              object
Example     : $mapped_slice->adaptor($assembly_slice_adaptor);
Description : Getter/setter for the adaptor/factory for this object.
Return type : Adaptor of appropriate type
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

container

Arg[1]      : (optional) Bio::EnsEMBL::MappedSliceContainer - the container
              this object is attached to
Example     : my $container = $mapped_slice->container;
              print $container->ref_slice->name, "\n";
Description : Getter/setter for the container this object is attached to. The
              container will give you access to the reference slice, a common
              artificial container slice, and a mapper to map to it from the
              container coord system.

              The implementation uses a weak reference to attach the container
              since the container holds a list of MappedSlices itself.
Return type : Bio::EnsEMBL::MappedSliceContainer
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

name

Arg[1]      : String - the name of this object
Example     : my $name = $mapped_slice->container->ref_slice->name .
                ":mapped_" . $ident_string;
              $mapped_slice->name($name);
Description : Getter/setter for this object's name
Return type : String
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

seq_region_name

Example     : my $sr_name = $mapped_slice->seq_region_name;
Description : Returns the seq_region name of the reference slice.
Return type : String
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

start

Example     : my $start = $mapped_slice->start;
Description : Returns the start of the container slice.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

end

Example     : my $end = $mapped_slice->end;
Description : Returns the end of the container slice.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

strand

Example     : my $strand = $mapped_slice->strand;
Description : Returns the strand of the container slice.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

length

Example     : my $length = $mapped_slice->length;
Description : Returns the length of the container slice
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

seq_region_length

Example     : my $sr_length = $mapped_slice->seq_region_length;
Description : Returns the seq_region length of the reference slice.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

centrepoint

Example     : my $centrepoint = $mapped_slice->centrepoint;
Description : Returns the centrepoint of the container slice.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

coord_system

Example     : my $cs = $mapped_slice->coord_system;
Description : Returns the coord system of the container slice.
Return type : Bio::EnsEMBL::CoordSystem
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

coord_system_name

Example     : my $cs_name = $mapped_slice->coord_system_name;
Description : Returns the coord system name of the container slice.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

is_toplevel

Example     : my $toplevel_flag = $mapped_slice->is_toplevel;
Description : Returns weather the container slice is toplevel.
Return type : Int
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

seq

Example     : my $seq = $mapped_slice->seq()
Description : Retrieves the expanded sequence of this mapped slice,
              including "-" characters where there are inserts in any other
              mapped slices. This will align with the sequence returned by
              the container's seq() method.
Return type : String
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development

AUTOLOAD

Arg[1..N]   : Arguments passed on to the calls on the underlying slices.
Example     : my @simple_features = @{ $mapped_slice->get_all_SimpleFeatures };
Description : Aggregate data gathered from composing Slices.
              This will call Slice->get_all_* and combine the results.
              Coordinates will be transformed to be on the container slice
              coordinate system.

              Calls involving DAS features are skipped since the DAS adaptor
              handles coordinate conversions natively.
Return type : listref of features (same type as corresponding Slice method)
Exceptions  : none
Caller      : general
Status      : At Risk
            : under development