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
new_treeDescriptionCode
Methods description
get_by_accode    nextTop
 Arg1: Treefam family database ID
Arg2: type of tree: FULL,SEED or CLEAN
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
new_treecodeprevnextTop
 Arg (required): -tree => string, tree in nhx or tff format
Arg: -acc => string, tree family ID
Arg: -type => string, type of tree (i.e. clean, full or seed)
Description: creates a new tree object with given attributes.
Returntype: Treefam::Tree object
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;
}
new_treedescriptionprevnextTop
sub new_tree {
  my $self = shift;
  my %tree = @_;

  my $dbc = $self->{'DBConnection'};
  my $dbh = $dbc->{'database_handle'};
  my $tree;
  unless ($tree{'-tree'}) {
    croak "Tree required";
  }
  $tree{'-acc'} ||= '';
  $tree{'-type'} ||= '';

  return Treefam::Tree->new($dbc,$tree{'-acc'},$tree{'-type'},$tree{'-tree'});

}

1;
}
General documentation
CONTACTTop
 jkh1@sanger.ac.uk