Bio::DOOP::Cluster - DoOP cluster object


Bio-DOOP-DOOP documentation Contained in the Bio-DOOP-DOOP distribution.

Index


Code Index:

NAME

Top

Bio::DOOP::Cluster - DoOP cluster object

VERSION

Top

Version 0.12

SYNOPSIS

Top

  $cluster = Bio::DOOP::Cluster->new($db,"81007400","500");
  print $cluster->get_cluster_id;

DESCRIPTION

Top

This object represents a cluster. You can access its properties through the methods.

AUTHORS

Top

Tibor Nagy, Godollo, Hungary and Endre Sebestyen, Martonvasar, Hungary

METHODS

Top

new

Creates a new cluster object from the cluster id and promoter type. Every promoter cluster has a unique identifier. This is the cluster id. There are three promoter sizes (500,1000,3000 bp), so a unique cluster is identified by two parameters : cluster id and promoter type.

Return type: Bio::DOOP::Cluster object

  $cluster = Bio::DOOP::Cluster->new($db,"8010110","500");

new_by_id

Used by internal MySQL queries.

Return type: Bio::DOOP::Cluster object

  Bio::DOOP::Cluster->new_by_id($db,"2453");

get_id

Returns the MySQL id of the cluster

Return type: string

  $cluster_id = $cluster->get_id;

get_cluster_id

Returns the cluster id of the cluster.

Return type: string

  $cluster_id = $cluster->get_cluster_id;

get_promo_type

Returns the size of the promoter (500,1000,3000 bp).

Return type: string

  $pt = $cluster->get_promo_type;

get_type

Returns the type of the promoter (The available return types are the following: 1,2,3,4,5n,6n). See http://doop.abc.hu for more details.

Return type: string

  print $cluster->get_type;

get_date

Returns the date when the cluster was last modified.

Return type: string

  $date = $cluster->get_date;

get_version

Returns the version of the cluster.

Return type: string

  print $cluster->get_version;

get_all_subsets

Returns the arrayref of all subsets associated with the cluster.

Return type: arrayref, the array containing Bio::DOOP::ClusterSubset objects

  @subsets = @{$cluster->get_all_subsets};

get_subset_by_type

Returns a subset of a cluster, specified by type.

Return type: Bio::DOOP::ClusterSubset object

  $subset = $cluster->get_subset_by_type("B");
  if ($subset == -1){
     print"No subsets! Try another subset type\n";
  }

get_available_types

Returns all available cluster subset types.

Return type: arrayref of strings

  @types = @{$cluster->get_available_types};

get_all_seqs

Returns the arrayref of all sequences associated with the cluster.

Return type: arrayref, the array containig Bio::DOOP::Sequence objects

  @seqs = @{$cluster->get_all_seqs};

get_orig_subset

Returns the original subset, containing the whole cluster.

Return type: Bio::DOOP::ClusterSubset object

  @subsets = @{$cluster->get_orig_subset};

get_ref_seq

Returns the cluster reference sequence (human or arabidopsis).

Return type: Bio::DOOP::Sequence object

  $refseq = $cluster->get_ref_seq;


Bio-DOOP-DOOP documentation Contained in the Bio-DOOP-DOOP distribution.
package Bio::DOOP::Cluster;

use strict;
use warnings;

our $VERSION = '0.12';

sub new {
  my $self                 = {};
  my $dummy                = shift;
  my $db                   = shift;
     $self->{ID}           = shift;  # cluster_id field in the MySQL tables.
     $self->{PROMO_TYPE}   = shift;

  my $id   = $self->{ID};
  my $size = $self->{PROMO_TYPE};

  my $ret  = $db->query("SELECT * FROM cluster WHERE cluster_id=\"$id\" AND cluster_promoter_type=\"$size\";");

  if ($#$ret == -1){
     return(-1);
  }

  my @cluster = @{$$ret[0]};

  $self->{PRIMARY}         = $cluster[0];
  $self->{TYPE}            = $cluster[3];
  $self->{DATE}            = $cluster[4];
  $self->{VERSION}         = $cluster[5];
  $self->{DB}              = $db;
  bless $self;
  return ($self);
}


sub new_by_id {
  my $self                 = {};
  my $dummy                = shift;
  my $db                   = shift;
     $self->{PRIMARY}      = shift;  # cluster_id field in the MySQL tables.

  my $id   = $self->{PRIMARY};

  my $ret  = $db->query("SELECT * FROM cluster WHERE cluster_primary_id=\"$id\";");

  if ($#$ret == -1){
     return(-1);
  }

  my @cluster = @{$$ret[0]};

  $self->{PRIMARY}         = $cluster[0];
  $self->{PROMO_TYPE}      = $cluster[1];
  $self->{ID}              = $cluster[2];
  $self->{TYPE}            = $cluster[3];
  $self->{DATE}            = $cluster[4];
  $self->{VERSION}         = $cluster[5];
  $self->{DB}              = $db;
  bless $self;
  return ($self);
}


sub get_id {
  my $self                 = shift;
  return $self->{PRIMARY};
}

sub get_cluster_id {
  my $self                 = shift;
  return $self->{ID};
}

sub get_promo_type {
  my $self                 = shift;
  return($self->{PROMO_TYPE});
}

sub get_type {
  my $self                 = shift;
  return($self->{TYPE});
}

sub get_date {
  my $self                 = shift;
  return($self->{DATE});
}

sub get_version {
  my $self                 = shift;
  return($self->{VERSION});
}

sub get_all_subsets {
  my $self                 = shift;
  my $id                   = $self->{PRIMARY};
  my $ret = $self->{DB}->query("SELECT subset_primary_id FROM cluster_subset WHERE cluster_primary_id = $id");

  if ($#$ret == -1){
     return(-1);
  }

  my @subsets;
  for my $i (@$ret){
	  push @subsets,Bio::DOOP::ClusterSubset->new($self->{DB},$$i[0]);
  }

  return(\@subsets);
}

sub get_subset_by_type {
  my $self                 = shift;
  my $type                 = shift;

  my $id  = $self->{PRIMARY};
  my $ret = $self->{DB}->query("SELECT subset_primary_id FROM cluster_subset WHERE cluster_primary_id = $id AND subset_type = \"$type\"");

  if ($#$ret == -1){
     return(-1);
  }

  my $subset = Bio::DOOP::ClusterSubset->new($self->{DB},$$ret[0]->[0]);
  return($subset);
}

sub get_available_types {
  my $self                 = shift;
  my $id = $self->{PRIMARY};
  my $ret = $self->{DB}->query("SELECT subset_type FROM cluster_subset WHERE cluster_primary_id = $id");

  if ($#$ret == -1){
     return(-1);
  }

  my @types;

  for my $i (@$ret){
     push @types,$$i[0];
  }
  return(\@types);
}

sub get_all_seqs {
  my $self                 = shift;
  my $id                   = $self->{PRIMARY};
  my $ret = $self->{DB}->query("SELECT DISTINCT(sequence_primary_id) FROM subset_xref WHERE cluster_primary_id = $id;");

  if ($#$ret == -1){
     return(-1);
  }

  my @seqs;
  for my $i (@$ret){
     push @seqs,Bio::DOOP::Sequence->new($self->{DB},$$i[0]);
  }

  return(\@seqs);
}

sub get_orig_subset {
  my $self                 = shift;
  my $id                   = $self->{PRIMARY};
  my $ret = $self->{DB}->query("SELECT subset_primary_id FROM cluster_subset WHERE cluster_primary_id = $id AND original = \"y\"");
  if ($#$ret == -1){
     return(-1);
  }
  my $subset =  Bio::DOOP::ClusterSubset->new($self->{DB},$$ret[0]->[0]);
  return($subset);
}

sub get_ref_seq {
  my $self                 = shift;
  my $id                   = $self->{PRIMARY};

  my $ret = $self->{DB}->query("SELECT sequence.sequence_primary_id FROM sequence, taxon_annotation, subset_xref WHERE cluster_primary_id = $id AND (taxon_taxid = '3702' OR taxon_taxid = '9606') AND taxon_annotation.taxon_primary_id = sequence.taxon_primary_id AND sequence.sequence_primary_id = subset_xref.sequence_primary_id;");
  
  if ($#$ret == -1){
     return(-1);
  }

  my $seq = Bio::DOOP::Sequence->new($self->{DB},$$ret[0]->[0]);
  return($seq);
}

1;