Treefam TreeHandle
SummaryPackage variablesSynopsisDescriptionGeneral documentationMethods
Summary
 Treefam::TreeHandle
Package variables
No package variables defined.
Included modules
Carp
Scalar::Util qw ( weaken )
Treefam::DBConnection
Treefam::Tree
Synopsis
 use Treefam::DBConnection;

 my $dbc = new Treefam::DBConnection ();

 my $trh = $dbc->get_TreeHandle();

 my $tree = $trh->get_by_id('TF300011','FULL');
Description
 Enables retrieval of Treefam tree objects.
Methods
get_by_acDescriptionCode
get_by_familyDescriptionCode
get_by_geneDescriptionCode
get_by_idDescriptionCode
newDescriptionCode
Methods description
get_by_accode    nextTop
 Arg: Treefam family database ID
 Description: A synonym for get_by_id.
 Returntype: Treefam::Tree object
get_by_familycodeprevnextTop
 Arg1: Treefam::Family object or Treefam family database ID
 Arg2: type of tree: FULL,SEED or CLEAN
 Description: Gets tree for given family and type
 Returntype: Treefam::Tree object
get_by_genecodeprevnextTop
 Arg1: Treefam::Gene object
 Arg2: type of tree: FULL, SEED or CLEAN
 Description: Gets tree of selected type containing given gene.
 Returntype: Treefam::Tree object or undef if gene doesn't exist in
             Treefam or is not in the type of tree requested
get_by_idcodeprevnextTop
 Arg1: Treefam family database ID
 Arg2: type of tree: FULL,SEED or CLEAN
 Description: Gets tree with given Treefam database ID and type
 Returntype: Treefam::Tree object
newcodeprevnextTop
 Arg: Treefam::DBConnection
 Description: Creates a new tree object handle
 Returntype: Treefam::TreeHandle
Methods code
get_by_acdescriptionprevnextTop
sub get_by_ac {
  my ($self,$familyID,$type) = @_;
  return $self->get_by_id($familyID,$type);
}
get_by_familydescriptionprevnextTop
sub get_by_family {
  my ($self,$family,$type) = @_;
  my $familyID = ref($family) ? $family->ID() : $family;
  return $self->get_by_id($familyID,$type);
}
get_by_genedescriptionprevnextTop
sub get_by_gene {
  my ($self,$gene,$type) = @_;
  my $dbc = $self->{'DBConnection'};
  my $famh = $dbc->get_FamilyHandle();
  my $geneID = ref $gene ? $gene->ID(): $gene;
  my $family = $famh->get_by_gene($geneID);
  unless ($family) {
    return undef;
  }
  my $familyID = $family->ID();
  my $tree = $self->get_by_id($familyID,$type);
  my ($node) = $tree->get_nodes_by_tag_value(-G=>$geneID) if $tree;
  if ($node) {
    return $tree;
  }
  return undef;
}
get_by_iddescriptionprevnextTop
sub get_by_id {
  my ($self,$familyID,$type) = @_;
  my $dbc = $self->{'DBConnection'};
  my $dbh = $dbc->{'database_handle'};
  my $query = qq( SELECT tree FROM trees WHERE AC= ? AND type= ?);
  my $sth= $dbh->prepare ($query);
  $sth->execute($familyID,$type);
  my ($nhx) = $sth->fetchrow_array();

  if ($nhx) {
    return new Treefam::Tree($dbc,$familyID,$type,$nhx);
  }
  return undef;
}
newdescriptionprevnextTop
sub new {
  my $class = shift;
  my $self = {};
  $self->{'DBConnection'} = shift;
  weaken($self->{'DBConnection'});
  bless ($self, $class);

  return $self;
}
General documentation
CONTACTTop
 jkh1@sanger.ac.uk