Genetics::API::DB::Read
use Genetics::API ;
$api = new Genetics::API(DSN => {driver => "mysql", host => $Host, database => $Database}, user => $UserName, password => $Password) ;
$id = 123456 ; $subject = $api->getSubject($id) ;
The Genetics::API::DB packages provide an interface for the manipulation of Genperl objects in a relationa; database. This package contains the methods for retrieving objects from a database by id. To retrieve objects using more complex criteria, see Genetics::API::DB::Query.
Two versions of get methods are provided for most object types. One returns ``full'' objects containing all the data in the database associated with an object id; the other returns ``mini'' objects containing only a subset of the data associated with an object. Generally, the getMini methods do not return any of the general object annotation fields (ie. things like Keywords, DBXReferences, etc. are not returned with ``mini'' objects). In some cases, certain class-specific data is also left out of ``mini'' objects. See the individual getMini method descriptions for details on this.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Currently, all feedback should be sent directly to the author.
Email: mathias@genomica.com
Phone: (720) 565-4029
Address: Genomica Corporation 1745 38th Street Boulder, CO 80301
The rest of the documentation describes each of the object variables and methods. The names of internal variables and methods are preceded with an underscore (_).
strict Just to be anal vars Global variables Carp Error reporting
Exporter Make methods available to importing packages
Function : Get (read) a Genetics::Object::Cluster object from the database. Argument : The Object ID of the Cluster to be returned. Returns : A Genetics::Object::Cluster object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Cluster object from the database. Argument : The Object ID of the Cluster to be returned. Returns : A Genetics::Object::Cluster object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data.
Function : Get (read) a Genetics::Object::Subject object from the database. Argument : The Object ID of the Subject to be returned. Returns : A Genetics::Object::Subject object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Subject object from the database, by id. Argument : The Object ID of the Subject to be returned. Returns : A Genetics::Object::Subject object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of Subject-specific fields.
Function : Get (read) a Genetics::Object::Kindred object from the database. Argument : The Object ID of the Kindred to be returned. Returns : A Genetics::Object::Kindred object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Kindred object from the database. Argument : The Object ID of the Kindred to be returned. Returns : A Genetics::Object::Kindred object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data.
Function : Get (read) a Genetics::Object::Marker object from the database. Argument : The Object ID of the Marker to be returned. Returns : A Genetics::Object::Marker object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Marker object from the database. Argument : The Object ID of the Marker to be returned. Returns : A Genetics::Object::Marker object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of Marker-specific fields.
Function : Get a "light" version of a Genetics::Object::Marker object from the database, by name. Argument : The name of the Marker to be returned. Returns : A Genetics::Object::Marker object. Scope : Public Comments : If there is more than one Marker object with the same name, this will only return ONE of them. Which one? Good question. Caveat Programmor! "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data.
Function : Get (read) a Genetics::Object::SNP object from the database. Argument : The Object ID of the SNP to be returned. Returns : A Genetics::Object::SNP object. Scope : Public
Function : Get a "light" version of a Genetics::Object::SNP object from the database. Argument : The Object ID of the SNP to be returned. Returns : A Genetics::Object::SNP object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of SNP-specific fields.
Function : Get (read) a Genetics::Object::Genotype object from the database. Argument : The Object ID of the Genotype to be returned. Returns : A Genetics::Object::Genotype object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Genotype object from the database. Argument : The Object ID of the Genotype to be returned. Returns : A Genetics::Object::Genotype object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of Genotype-specific fields.
Function : Get (read) a Genetics::Object::StudyVariable object from the database. Argument : The Object ID of the StudyVariable to be returned. Returns : A Genetics::Object::StudyVariable object. Scope : Public
Function : Get a "light" version of a Genetics::Object::StudyVariable object from the database. Argument : The Object ID of the StudyVariable to be returned. Returns : A Genetics::Object::StudyVariable object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of StudyVariable-specific fields. =cut
sub getMiniStudyVariable { my($self, $id) = @_ ; my($sv, %param, $sth, $sth1, $arrRef, $arrRef1, %init, %init1, $category, $format, @codesList, @aseList, @lcList, $p11, $p12, $p22, $mp1, $mp2) ; my $dbh = $self->{dbh} ;
$DEBUG and carp " ->[getMiniStudyVariable] $id" ;
# StudyVariable data $sth = $dbh->prepare("select name, id, dateCreated, dateModified, comment, category, format, isXLinked, description from Object, StudyVariable where id = $id and id = studyVariableID") ; $sth->execute() ; $arrRef = $sth->fetchrow_arrayref() ; $sth->finish() ; defined $arrRef or return(undef) ;
$param{name} = $$arrRef[0] ; $param{id} = $$arrRef[1] ; $param{dateCreated} = $$arrRef[2] ; $param{dateModified} = $$arrRef[3] ; $param{comment} = $$arrRef[4] ; $category = $param{category} = $$arrRef[5] ; $format = $param{format} = $$arrRef[6] ; $param{isXLinked} = $$arrRef[7] ; defined $$arrRef[8] and $param{description} = $$arrRef[8] ; # CodeDerivation data if ($format eq "Code") { if ($category eq "StaticLiabilityClass") { $sth = $dbh->prepare("select codeDerivationID, code, description, formula from CodeDerivation where studyVariableID = $id") ; $sth->execute() ; $sth1 = $dbh->prepare("select pen11, pen12, pen22, malePen1, malePen2 from StaticLCPenetrance where cdID = ?") ; while ($arrRef = $sth->fetchrow_arrayref()) { %init = () ; $sth1->execute($$arrRef[0]) ; ($p11, $p12, $p22, $mp1, $mp2) = $sth1->fetchrow_array() ; $init{code} = $$arrRef[1] ; $init{pen11} = $p11 ; $init{pen12} = $p12 ; $init{pen22} = $p22 ; defined $mp1 and $init{malePen1} = $mp1 ; defined $mp2 and $init{malePen2} = $mp2 ; defined $$arrRef[2] and $init{description} = $$arrRef[2] ; defined $$arrRef[3] and $init{formula} = $$arrRef[3] ; push(@codesList, { %init }) ; } } else { $sth = $dbh->prepare("select code, description, formula from CodeDerivation where studyVariableID = $id") ; $sth->execute() ; while ($arrRef = $sth->fetchrow_arrayref()) { %init = () ; $init{code} = $$arrRef[0] ; defined $$arrRef[1] and $init{description} = $$arrRef[1] ; defined $$arrRef[2] and $init{formula} = $$arrRef[2] ; push(@codesList, { %init }) ; } } } defined $codesList[0] and $param{Codes} = \@codesList ;
if ($category =~ /AffectionStatus$/) { # AffectionStatus data $sth = $dbh->prepare("select name, diseaseAlleleFreq, pen11, pen12, pen22, malePen1, malePen2, asDefID from AffectionStatusDefinition where studyVariableID = $id") ; $sth->execute() ; if ( defined ($arrRef = $sth->fetchrow_arrayref()) ) { %init = () ; $init{name} = $$arrRef[0] ; $init{diseaseAlleleFreq} = $$arrRef[1] ; $init{pen11} = $$arrRef[2] ; $init{pen12} = $$arrRef[3] ; $init{pen22} = $$arrRef[4] ; defined $$arrRef[5] and $init{malePen1} = $$arrRef[5] ; defined $$arrRef[6] and $init{malePen2} = $$arrRef[6] ; # Elements $sth1 = $dbh->prepare("select code, type, formula from AffectionStatusElement where asDefID = $$arrRef[7]") ; $sth1->execute() ; while ($arrRef1 = $sth1->fetchrow_arrayref()) { push(@aseList, {code => $$arrRef1[0], type => $$arrRef1[1], formula => $$arrRef1[2]}) ; } $init{AffStatElements} = \@aseList ; $param{AffStatDef} = { %init } ; } }
$sv = new Genetics::StudyVariable(%param) ;
$DEBUG and carp " ->[getMiniStudyVariable] $sv" ;
return($sv) ; }
Function : Get (read) a Genetics::Object::Phenotype object from the database. Argument : The Object ID of the Phenotype to be returned. Returns : A Genetics::Object::Phenotype object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Phenotype object from the database. Argument : The Object ID of the Phenotype to be returned. Returns : A Genetics::Object::Phenotype object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of Phenotype-specific fields.
Function : Get (read) a Genetics::Object::FrequencySource object from the database. Argument : The Object ID of the FrequencySource to be returned. Returns : A Genetics::Object::FrequencySource object. Scope : Public
Function : Get (read) a Genetics::Object::FrequencySource object from the database. Argument : The Object ID of the FrequencySource to be returned. Returns : A Genetics::Object::FrequencySource object. Scope : Public
Function : Get (read) a Genetics::Object::HtMarkerCollection object from the database. Argument : The Object ID of the HtMarkerCollection to be returned. Returns : A Genetics::Object::HtMarkerCollection object. Scope : Public
Function : Get (read) a Genetics::Object::Haplotype object from the database. Argument : The Object ID of the Haplotype to be returned. Returns : A Genetics::Object::Haplotype object. Scope : Public
Function : Get a "light" version of a Genetics::Object::Haplotype object from the database. Argument : The Object ID of the Haplotype to be returned. Returns : A Genetics::Object::Haplotype object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data.
Function : Get (read) a Genetics::Object::DNASample object from the database. Argument : The Object ID of the DNASample to be returned. Returns : A Genetics::Object::DNASample object. Scope : Public
Function : Get (read) a Genetics::Object::TissueSample object from the database. Argument : The Object ID of the TissueSample to be returned. Returns : A Genetics::Object::TissueSample object. Scope : Public
Function : Get (read) a Genetics::Object::Map object from the database. Argument : The Object ID of the Map to be returned. Returns : A Genetics::Object::Map object. Scope : Public
Function : Get "light" version of a Genetics::Object::Map object from the database. Argument : The Object ID of the Map to be returned. Returns : A Genetics::Object::Map object. Scope : Public Comments : "Light" version means that the object has only the name and id fields from Object, and it does not contain any associated NameAlias, Contact, DBXReference or Keyword data. It also has a sub-set of Map-specific fields.
Function : get (read) data from and associated with the Object table/object. Arguments : Scalar containing an Object.id and a reference to a hash which will be populated with the data. Returns : N/A Scope : Private Called by : The various getObjectSubClass methods. Comments : The format of the data structure created by this method is identical to that passed to Object::new().