Bio::EnsEMBL MiscFeature
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvsRaw content
Summary
Bio::EnsEMBL::MiscFeature - A miscelaneous feature with arbitrary features and
associations.
Package variables
No package variables defined.
Included modules
Bio::EnsEMBL::Feature
Bio::EnsEMBL::Utils::Exception qw ( throw )
Inherit
Bio::EnsEMBL::Feature
Synopsis
  use Bio::EnsEMBL::MiscFeature;
use Bio::EnsEMBL::MiscSet;
use Bio::EnsEMBL::Attribute;
my $mfeat = Bio::EnsEMBL::MiscFeature->new( -START => 1200, -END => 100_000, -STRAND => 1, -SLICE => $slice ); # Can add attributes to the misc feature and associate with various # sets my $clone_set = Bio::EnsEMBL::MiscSet->new( -CODE => 'clone', -NAME => '1MB clone set', -DESCRIPTION => '1MB CloneSet' ); my $tiling_path_set = Bio::EnsEMBL::MiscSet->new( -CODE => 'tilingpath', -NAME => 'tiling path set' ); my $attrib1 = Bio::EnsEMBL::Attribute->new( -VALUE => 'RLX12451', -CODE => 'name', -NAME => 'name' ); my $attrib2 = Bio::EnsEMBL::Attribute->new( -VALUE => '4', -CODE => 'version', -NAME => 'version' ); my $attrib3 = Bio::EnsEMBL::Attribute->new( -VALUE => 'AL42131.4', -CODE => 'synonym', -NAME => 'synonym' ); # can associate a misc feature with any number of sets $mfeat->add_MiscSet($clone_set); $mfeat->add_MiscSet($tiling_path_set); # can add arbitrary attributes to a misc feature $mfeat->add_Attribute($attrib1); $mfeat->add_Attribute($attrib2); $mfeat->add_Attribute($attrib3); my ($name_attrib) = @{ $mfeat->get_all_Attributes('name') }; my @all_attribs = @{ $mfeat->get_all_Attributes() }; my @all_sets = @{ $mfeat->get_all_MiscSets() }; my ($clone_set) = @{ $mfeat->get_all_CloneSets('clone') }; # Can do normal feature operations as well $mfeat = $mfeat->transform('supercontig'); print $mfeat->slice->seq_region_name, ' ', $mfeat->start, '-', $mfeat->end;
Description
MiscFeatures are extremely general features with a location, and an
arbitrary group of attributes. They are grouped with other features of
the same 'type' through the use of MiscSets (see Bio::EnsEMBL::MiscSet).
Attributes are attached in the fom of Bio::EnsEMBL::Attribute objects.
See Bio::EnsEMBL::DBSQL::MiscFeatureAdaptor for ways to fetch or store
MiscFeatures.
Methods
add_AttributeDescriptionCode
add_MiscSetDescriptionCode
display_idDescriptionCode
get_all_AttributesDescriptionCode
get_all_MiscSetsDescriptionCode
get_all_attribute_valuesDescriptionCode
get_first_scalar_attribute
No description
Code
get_scalar_attributeDescriptionCode
newDescriptionCode
new_fastDescriptionCode
Methods description
add_Attributecode    nextTop
  Arg [1]    : Bio::EnsEMBL::Attribute $attribute
Example : $misc_feature->add_attribute($attribute);
Description: Adds an attribute to this misc. feature
Returntype : none
Exceptions : throw on wrong argument type
Caller : general
Status : Stable
add_MiscSetcodeprevnextTop
  Arg [1]    : Bio::EnsEMBL::MiscSet $set
The set to add
Example : $misc_feature->add_MiscSet(Bio::EnsEMBL::MiscSet->new(...));
Description: Associates this MiscFeature with a given Set.
Returntype : none
Exceptions : throw if the set arg is not provided,
throw if the set to be added does not have a code
Caller : general
Status : Stable
display_idcodeprevnextTop
  Arg [1]    : none
Example : print $kb->display_id();
Description: This method returns a string that is considered to be
the 'display' identifier. For misc_features this is the first
name or synonym attribute or '' if neither are defined.
Returntype : string
Exceptions : none
Caller : web drawing code
Status : Stable
get_all_AttributescodeprevnextTop
  Arg [1]    : optional string $code
The code of the Attribute objects to retrieve
Example : @attributes = $misc_feature->get_all_Attributes('name');
Description: Retrieves a list of Attribute objects for given code or all
of the associated Attributes.
Returntype : listref of Bio::EnsEMBL::Attribute
Exceptions :
Caller : general
Status : Stable
get_all_MiscSetscodeprevnextTop
  Arg [1]    : optional string $code
The code of the set to retrieve
Example : $set = $misc_feature->get_all_MiscSets($code);
Description: Retrieves a set that this feature is associated with via its
code. Can return empty lists. Usually returns about one elements lists.
Returntype : listref of Bio::EnsEMBL::MiscSet
Exceptions : throw if the code arg is not provided
Caller : general
Status : Stable
get_all_attribute_valuescodeprevnextTop
  Arg [1]    : string $code
The code of the Attribute object values to retrieve
Example : @attributes_vals = @{$misc_feature->get_all_attribute_values('name')};
Description: Retrieves a list of Attribute object values for given code or all
of the associated Attributes.
Returntype : listref of values
Exceptions :
Caller : general
Status : Stable
get_scalar_attributecodeprevnextTop
  Arg [1]    : string $code
The code of the Attribute object values to retrieve
Example : $vals = $misc_feature->get_scalar_attribute('name');
Description: Retrieves a value for given code or all
of the associated Attributes.
Returntype : scalar value
Exceptions :
Caller : general
Status : Stable
newcodeprevnextTop
  Arg [-SLICE]: Bio::EnsEMBL::SLice - Represents the sequence that this
feature is on. The coordinates of the created feature are
relative to the start of the slice.
Arg [-START]: The start coordinate of this feature relative to the start
of the slice it is sitting on. Coordinates start at 1 and
are inclusive.
Arg [-END] : The end coordinate of this feature relative to the start of
the slice it is sitting on. Coordinates start at 1 and are
inclusive.
Arg [-STRAND]: The orientation of this feature. Valid values are 1,-1,0.
Arg [-SEQNAME] : A seqname to be used instead of the default name of the
of the slice. Useful for features that do not have an
attached slice such as protein features.
Arg [-dbID] : (optional) internal database id
Arg [-ADAPTOR]: (optional) Bio::EnsEMBL::DBSQL::BaseAdaptor
Example : $feature = Bio::EnsEMBL::MiscFeature->new(-start => 1,
-end => 100,
-strand => 1,
-slice => $slice,
-analysis => $analysis);
Description: Constructs a new Bio::EnsEMBL::Feature. Generally subclasses
of this method are instantiated, rather than this class itself.
Returntype : Bio::EnsEMBL::MiscFeature
Exceptions : Thrown on invalid -SLICE, -ANALYSIS, -STRAND ,-ADAPTOR arguments
Caller : general, subclass constructors
Status : Stable
new_fastcodeprevnextTop
  Arg [...]  : hashref to bless as new MiscFeature
Example : $miscfeature = Bio::EnsEMBL::MiscFeature->new_fast();
Description: Creates a new Miscfeature.
Returntype : Bio::EnsEMBL::MiscFeature
Exceptions : none
Caller : general
Status : Stable
Methods code
add_AttributedescriptionprevnextTop
sub add_Attribute {
  my ($self, $attrib) = @_;

  if( ! defined $attrib || ! $attrib->isa( "Bio::EnsEMBL::Attribute" )) {
    throw( "You have to provide a Bio::EnsEMBL::Attribute, not a [$attrib]" );
  }

  $self->{'attributes'} ||= [];
  push @{$self->{'attributes'}}, $attrib
}
add_MiscSetdescriptionprevnextTop
sub add_MiscSet {
  my $self = shift;
  my $miscSet = shift;

  if(!$miscSet || !ref($miscSet) || !$miscSet->isa('Bio::EnsEMBL::MiscSet')) {
    throw('Set argument must be a Bio::EnsEMBL::MiscSet');
  }

  $self->{'miscSets'} ||= [];

  push( @{$self->{'miscSets'}}, $miscSet );
}
display_iddescriptionprevnextTop
sub display_id {
  my $self = shift;
  my ($attrib) = @{$self->get_all_Attributes('name')};
  ($attrib) =  @{$self->get_all_Attributes('synonym')} if(!$attrib);
  if( defined $attrib ) {
    return $attrib->value();
  } else {
    return '';
  }
}




1;
}
get_all_AttributesdescriptionprevnextTop
sub get_all_Attributes {
  my $self = shift;
  my $code = shift;

  my @results;
  my $result;

  if( defined $code ) {
    @results = grep { uc( $_->code() ) eq uc( $code )} @{$self->{'attributes'}};
    return\@ results;
  } else {
    return $self->{'attributes'};
  }
}
get_all_MiscSetsdescriptionprevnextTop
sub get_all_MiscSets {
  my $self = shift;
  my $code = shift;

  $self->{'miscSets'} ||= [];
  if( defined $code ) {
    my @results = grep { uc($_->code())eq uc( $code ) } @{$self->{'miscSets'}};
    return\@ results;
  } else {
    return $self->{'miscSets'};
  }
}
get_all_attribute_valuesdescriptionprevnextTop
sub get_all_attribute_values {
  my $self = shift;
  my $code = shift;
  my @results = map { uc( $_->code() ) eq uc( $code ) ? $_->value : () } 
                @{$self->{'attributes'}};
  return\@ results;
}
get_first_scalar_attributedescriptionprevnextTop
sub get_first_scalar_attribute {
  my $self = shift;
  foreach my $code ( @_ ) {
    my @results = grep { uc( $_->code() ) eq uc( $code )} @{$self->{'attributes'}};
    return $results[0]->value() if @results;
  }
  return '';
}
get_scalar_attributedescriptionprevnextTop
sub get_scalar_attribute {
  my $self = shift;
  my $code = shift;
  my @results = grep { uc( $_->code() ) eq uc( $code )} @{$self->{'attributes'}};
  return @results ? $results[0]->value() : '';
}
newdescriptionprevnextTop
sub new {
  my $class = shift;

  my $self = $class->SUPER::new(@_);

  $self->{'attributes'} = [];

  return $self;
}
new_fastdescriptionprevnextTop
sub new_fast {
  my $class = shift;
  my $hashref = shift;

  $hashref->{'attributes'} ||= [];

  return bless($hashref, $class);
}
General documentation
LICENSETop
  Copyright (c) 1999-2009 The European Bioinformatics Institute and
Genome Research Limited. All rights reserved.
This software is distributed under a modified Apache license. For license details, please see /info/about/code_licence.html
CONTACTTop
  Please email comments or questions to the public Ensembl
developers list at <ensembl-dev@ebi.ac.uk>.
Questions may also be sent to the Ensembl help desk at <helpdesk@ensembl.org>.