Bio::EnsEMBL::Compara::DBSQL SyntenyRegionAdaptor
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvsRaw content
Summary
Bio::EnsEMBL::Compara::DBSQL::SyntenyRegionAdaptor - Object to access data in the synteny_region
and dnafrag_region tables
Package variables
No package variables defined.
Included modules
Bio::EnsEMBL::Compara::SyntenyRegion
Bio::EnsEMBL::DBSQL::BaseAdaptor
Bio::EnsEMBL::Utils::Exception
Inherit
Bio::EnsEMBL::DBSQL::BaseAdaptor
Synopsis
  use Bio::EnsEMBL::Registry;
my $reg = "Bio::EnsEMBL::Registry"; $reg->load_registry_from_db( -host => "ensembldb.ensembl.org", -user => "anonymous"); my $synteny_region_adaptor = $reg->get_adaptor( "Multi", "compara", "SyntenyRegion");
  $synteny_region_adaptor->store($synteny_region);
  my $synteny_region = $synteny_region_adaptor->fetch_by_dbID(1);
my $synteny_regions = $synteny_region_adaptor->
fetch_by_MethodLinkSpeciesSet_DnaFrag(
$mlss, $dnafrag, $start, $end);
  use strict;
use Bio::EnsEMBL::Registry;
my $reg = "Bio::EnsEMBL::Registry"; $reg->load_registry_from_db( -host=>"ensembldb.ensembl.org", -user=>"anonymous", -software_version => 38); my $method_link_species_set_adaptor = $reg->get_adaptor( "Multi", "compara", "MethodLinkSpeciesSet"); my $human_mouse_synteny_method_link_species_set = $method_link_species_set_adaptor-> fetch_by_method_link_type_registry_aliases( "SYNTENY", ["human", "mouse"]); my $genome_db_adaptor = $reg->get_adaptor( "Multi", "compara", "GenomeDB"); my $genome_db = $genome_db_adaptor-> fetch_by_name_assembly("Homo sapiens", undef); my $dnafrag_adaptor = $reg->get_adaptor( "Multi", "compara", "DnaFrag"); my $dnafrag = $dnafrag_adaptor-> fetch_by_GenomeDB_and_name($genome_db, "3"); my $synteny_region_adaptor = $reg->get_adaptor( "Multi", "compara", "SyntenyRegion"); my $synteny_regions = $synteny_region_adaptor-> fetch_by_MethodLinkSpeciesSet_DnaFrag( $human_mouse_synteny_method_link_species_set, $dnafrag, 100000, 200000); foreach my $this_synteny_region (@$synteny_regions) { my $these_dnafrag_regions = $this_synteny_region->children(); foreach my $this_dnafrag_region (@$these_dnafrag_regions) { print $this_dnafrag_region->dnafrag->genome_db->name, ": ", $this_dnafrag_region->slice->name, "\n"; } print "\n"; }
Description
This object is intended for accessing data in the synteny_region and dnafrag_region tables.
Methods
fetch_all_by_MethodLinkSpeciesSetDescriptionCode
fetch_all_by_MethodLinkSpeciesSet_DnaFragDescriptionCode
fetch_all_by_MethodLinkSpeciesSet_SliceDescriptionCode
fetch_by_MethodLinkSpeciesSet_DnaFragDescriptionCode
fetch_by_dbIDDescriptionCode
storeDescriptionCode
Methods description
fetch_all_by_MethodLinkSpeciesSetcode    nextTop
  Arg 1      : Bio::EnsEMBL::Compara::MethodLinkSpeciesSet $mlss
Example : my $these_synteny_regions = $synteny_region_adaptor->
fetch_all_by_MethodLinkSpeciesSet($mlss);
Description: Fetches the Bio::EnsEMBL::Compara::SyntenyRegion
objects for the set of species defined by the $mlss.
Returntype : listref of Bio::EnsEMBL::Compara::SyntenyRegion objects
Exception : Thrown if the argument is not defined
Caller :
Status : Stable
fetch_all_by_MethodLinkSpeciesSet_DnaFragcodeprevnextTop
  Arg 1      : Bio::EnsEMBL::Compara::MethodLinkSpeciesSet $mlss
Arg 2 : Bio::EnsEMBL::Compara::DnaFrag $dnafrag
Arg 3 (opt): int $start
Arg 4 (opt): int $end
Example : my $these_synteny_regions = $synteny_region_adaptor->
fetch_all_by_MethodLinkSpeciesSet_DnaFrag(
$mlss, $dnafrag, 100000, 200000);
Description: Fetches the Bio::EnsEMBL::Compara::SyntenyRegion
objects in this region for the set of species
defined by the $mlss.
Returntype : listref of Bio::EnsEMBL::Compara::SyntenyRegion objects
Exception : Thrown if the argument is not defined
Caller :
Status : Stable
fetch_all_by_MethodLinkSpeciesSet_SlicecodeprevnextTop
  Arg  1     : Bio::EnsEMBL::Compara::MethodLinkSpeciesSet $method_link_species_set
Arg 2 : Bio::EnsEMBL::Slice $original_slice
Example : my $synteny_regions =
$synteny_region_adaptor->fetch_all_by_MethodLinkSpeciesSet_Slice(
$method_link_species_set, $original_slice);
Description: Retrieve the corresponding
Bio::EnsEMBL::Compara::SyntenyRegion objects.
Returntype : ref. to an array of Bio::EnsEMBL::Compara::SyntenyRegion objects.
Exceptions : Returns ref. to an empty array if no matching
Bio::EnsEMBL::Compara::SyntenyRegion object can be retrieved
Caller : $object->method_name
Status : Medium risk
fetch_by_MethodLinkSpeciesSet_DnaFragcodeprevnextTop
 Status      : Deprecated. Use fetch_all_by_MethodLinkSpeciesSet_DnaFrag
instead
fetch_by_dbIDcodeprevnextTop
  Arg  1     : int $synteny_region_id
Example : my $this_synteny_region = $synteny_region_adaptor->
fetch_by_dbID($synteny_region_id)
Description: Fetches the corresponding Bio::EnsEMBL::Compara::SyntenyRegion
object.
Returntype : Bio::EnsEMBL::Compara::SyntenyRegion object
Exception : Thrown if the argument is not defined
Caller :
storecodeprevnextTop
  Arg  1     : Bio::EnsEMBL::Compara::SyntenyRegion object
Example : $synteny_region_adaptor->store($synteny_region)
Description: Stores a Bio::EnsEMBL::Compara::SyntenyRegion object into
the database as well as the underlying
Bio::EnsEMBL::Compara::DnaFragRegion objects
Returntype : int (the synteny_region_id)
Exception : Thrown if the argument is not a
Bio::EnsEMBL::Compara::SyntenyRegion object
Caller :
Methods code
fetch_all_by_MethodLinkSpeciesSetdescriptionprevnextTop
sub fetch_all_by_MethodLinkSpeciesSet {
  my ($self, $mlss) = @_;

  if (!UNIVERSAL::isa($mlss, "Bio::EnsEMBL::Compara::MethodLinkSpeciesSet")) {
    throw("[$mlss] is not a Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object");
  }

  my $sql = "select sr.synteny_region_id from synteny_region sr where sr.method_link_species_set_id = ?";

  my $sth = $self->prepare($sql);
  $sth->execute($mlss->dbID);

  my $synteny_region_id;
  $sth->bind_columns(\$synteny_region_id);
  my @srs;
  while ($sth->fetch) {
    my $sr = new Bio::EnsEMBL::Compara::SyntenyRegion;
    $sr->dbID($synteny_region_id);
    $sr->method_link_species_set_id($mlss->dbID);

    my $dfra = $self->db->get_DnaFragRegionAdaptor;
    my $dfrs = $dfra->fetch_by_synteny_region_id($synteny_region_id);
    while (my $dfr = shift @{$dfrs}) {
      $sr->add_child($dfr);
    }

    push @srs, $sr;
  }

  return\@ srs;
}

1;
}
fetch_all_by_MethodLinkSpeciesSet_DnaFragdescriptionprevnextTop
sub fetch_all_by_MethodLinkSpeciesSet_DnaFrag {
  my ($self, $mlss, $dnafrag, $start, $end) = @_;

  if (!UNIVERSAL::isa($mlss, "Bio::EnsEMBL::Compara::MethodLinkSpeciesSet")) {
    throw("[$mlss] is not a Bio::EnsEMBL::Compara::MethodLinkSpeciesSet object");
  }
  if (!UNIVERSAL::isa($dnafrag, "Bio::EnsEMBL::Compara::DnaFrag")) {
    throw("[$dnafrag] is not a Bio::EnsEMBL::Compara::DnaFrag object");
  }

  my $sql = "select sr.synteny_region_id from synteny_region sr, dnafrag_region dfr where sr.method_link_species_set_id = ? and sr.synteny_region_id=dfr.synteny_region_id and dfr.dnafrag_id = ?";
  
  if (defined $start) {
    $sql .= " and dfr.dnafrag_end >= $start";
  }
  if (defined $end) {
    $sql .= " and dfr.dnafrag_start <= $end";
  }

  my $sth = $self->prepare($sql);
  $sth->execute($mlss->dbID, $dnafrag->dbID);

  my $synteny_region_id;
  $sth->bind_columns(\$synteny_region_id);
  my @srs;
  while ($sth->fetch) {
    my $sr = new Bio::EnsEMBL::Compara::SyntenyRegion;
    $sr->dbID($synteny_region_id);
    $sr->method_link_species_set_id($mlss->dbID);

    my $dfra = $self->db->get_DnaFragRegionAdaptor;
    my $dfrs = $dfra->fetch_by_synteny_region_id($synteny_region_id);
    while (my $dfr = shift @{$dfrs}) {
      $sr->add_child($dfr);
    }

    push @srs, $sr;
  }

  return\@ srs;
}
fetch_all_by_MethodLinkSpeciesSet_SlicedescriptionprevnextTop
sub fetch_all_by_MethodLinkSpeciesSet_Slice {
  my ($self, $method_link_species_set, $reference_slice) = @_;
  my $all_synteny_regions = []; # Returned value
## method_link_species_set will be checked in the fetch_all_by_MethodLinkSpeciesSet_DnaFrag method
## Check original_slice
unless(UNIVERSAL::isa($reference_slice, 'Bio::EnsEMBL::Slice')) { throw("[$reference_slice] should be a Bio::EnsEMBL::Slice object\n"); } my $dnafrag_adaptor = $self->db->get_DnaFragAdaptor; my $projection_segments = $reference_slice->project('toplevel'); return [] if(!@$projection_segments); foreach my $this_projection_segment (@$projection_segments) { my $this_slice = $this_projection_segment->to_Slice; my $this_dnafrag = $dnafrag_adaptor->fetch_by_Slice($this_slice); next if (!$this_dnafrag); my $these_synteny_regions = $self->fetch_all_by_MethodLinkSpeciesSet_DnaFrag( $method_link_species_set, $this_dnafrag, $this_slice->start, $this_slice->end, ); push (@$all_synteny_regions, @$these_synteny_regions); } return $all_synteny_regions;
}
fetch_by_MethodLinkSpeciesSet_DnaFragdescriptionprevnextTop
sub fetch_by_MethodLinkSpeciesSet_DnaFrag {
  my $self = shift(@_);

  return $self->fetch_all_by_MethodLinkSpeciesSet_DnaFrag(@_);
}
fetch_by_dbIDdescriptionprevnextTop
sub fetch_by_dbID {
   my ($self,$dbID) = @_;

   if( !defined $dbID ) {
     throw("fetch_by_dbID with no dbID!");
   }

   my $sth = $self->prepare("select synteny_region_id, method_link_species_set_id from synteny_region where synteny_region_id = $dbID");
   $sth->execute;
   my ($synteny_region_id, $method_link_species_set_id) = $sth->fetchrow_array();

   my $sr = new Bio::EnsEMBL::Compara::SyntenyRegion;
   $sr->dbID($synteny_region_id);
   $sr->method_link_species_set_id($method_link_species_set_id);

   my $dfra = $self->db->get_DnaFragRegionAdaptor;
   my $dfrs = $dfra->fetch_by_synteny_region_id($dbID);
   while (my $dfr = shift @{$dfrs}) {
     $sr->add_child($dfr);
   }
   return $sr;
}
storedescriptionprevnextTop
sub store {
   my ($self,$sr) = @_;

   if( !ref $sr || !$sr->isa("Bio::EnsEMBL::Compara::SyntenyRegion") ) {
       throw("$sr is not a SyntenyRegion object");
   }

   my $sth = $self->prepare("insert into synteny_region (method_link_species_set_id) VALUES (?)");
   
   $sth->execute($sr->method_link_species_set_id);
   my $synteny_region_id = $sth->{'mysql_insertid'};
   
   $sr->dbID($synteny_region_id);
   $sr->adaptor($self);
   
   my $dfra = $self->db->get_DnaFragRegionAdaptor;
   foreach my $dfr (@{$sr->children}) {
     $dfr->synteny_region_id($synteny_region_id);
     $dfra->store($dfr);
   }
   return $sr->dbID;
}
General documentation
INHERITANCETop
This class inherits all the methods and attributes from Bio::EnsEMBL::DBSQL::BaseAdaptor
SEE ALSOTop
 - Bio::EnsEMBL::Compara::SyntenyRegion
- Bio::EnsEMBL::Compara::DnaFragRegion
- Bio::EnsEMBL::Compara::MethodLinkSpeciesSet
- Bio::EnsEMBL::Compara::GenomeDB
CONTACTTop
Ensembl - ensembl-dev@ebi.ac.uk
APPENDIXTop
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _