Bio::EnsEMBL::Variation::DBSQL
PopulationAdaptor
Toolbar
Summary
Bio::EnsEMBL::Variation::DBSQL::PopulationAdaptor
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
$db = Bio::EnsEMBL::Variation::DBSQL::DBAdaptor->new(...);
$pa = $db->get_PopulationAdaptor();
# Get a Population by its internal identifier
$pop = $pa->fetch_by_dbID(145);
# fetch a population by its name
$pop = $pa->fetch_by_name('PACIFIC');
# fetch all sub populations of a population
foreach $sub_pop (@{$pa->fetch_all_by_super_Population($pop)}) {
print $sub_pop->name(), " is a sub population of ", $pop->name(), "\n";
}
# fetch all super populations
foreach $super_pop (@{$pa->fetch_all_by_sub_Population($pop)}) {
print $pop->name(), " is a sub population of ", $super_pop->name(), "\n";
}
Description
This adaptor provides database connectivity for Population objects.
Populations may be retrieved from the Ensembl variation database by
several means using this module.
Methods
Methods description
Arg [1] : Bio::EnsEMBL::Variation::Individual $ind Example : my $ind = $ind_adaptor->fetch_by_name('NA12004'); foreach my $pop (@{$pop_adaptor->fetch_all_by_Individual($ind)}){ print $pop->name,"\n"; } Description : Retrieves all populations from a specified individual ReturnType : reference to list of Bio::EnsEMBL::Variation::Population objects Exceptions : throw if incorrect argument is passed warning if provided individual does not have a dbID Caller : general Status : At Risk |
Arg [1] : Bio::EnsEMBL::Variation::Population $pop Example : foreach $super_pop (@{$pa->fetch_all_by_sub_Population($pop)}) { print $super_pop->name(), "\n"; } Description: Retrieves all super populations for a provided population Returntype : Bio::EnsEMBL::Population Exceptions : throw on bad argument Caller : general Status : At Risk |
Arg [1] : Bio::EnsEMBL::Variation::Population $pop Example : foreach $sub_pop (@{$pa->fetch_all_by_super_Population($pop)}) { print $sub_pop->name(), "\n"; } Description: Retrieves all sub populations of a provided population. Returntype : Bio::EnsEMBL::Population Exceptions : throw on bad argument Caller : general Status : At Risk |
Arg [1] : string $name Example : $pop = $pop_adaptor->fetch_by_name('NUSPAE:Singapore_HDL'); Description: Retrieves a population object via its name Returntype : Bio::EnsEMBL::Variation::Population Exceptions : throw if name argument is not defined Caller : general Status : At Risk |
Args : none Example : $population = $pop_adaptor->fetch_default_LDPopulation(); Description : Obtains the population it is used as a default in the LD display of the pairwise LD data ReturnType : Bio::EnsEMBL::Variation::Population Exceptions : none Caller : general Status : At Risk |
Arg [1] : $population_synonym Example : my $pop = $pop_adaptor->fetch_population_by_synonym($population_synonym,$source); Description : Retrieves populations for the synonym given in the source. If no source is provided, retrieves all the synonyms Returntype : list of Bio::EnsEMBL::Variation::Population Exceptions : none Caller : general Status : At Risk |
Arg [1] : Bio::EnsEMBL::Variation::VariationFeature $vf Example : my $vf = $vf_adaptor->fetch_by_name('rs205621'); my $populations_tagged = $vf->is_tagged(); foreach my $pop (@{$vf_adaptor->is_tagged}){ print $pop->name," has been tagged using a 0.99 r2 criteria\n"; } Description : Retrieves all populations from a specified variation feature that have been tagged ReturnType : reference to list of Bio::EnsEMBL::Variation::Population objects Exceptions : throw if incorrect argument is passed warning if provided variation feature does not have a dbID Caller : general Status : At Risk |
Methods code
sub _columns
{ return qw(s.sample_id s.name s.size s.description);
} |
sub _default_where_clause
{ return 's.sample_id = p.sample_id';
}
1; } |
sub _objs_from_sth
{ my $self = shift;
my $sth = shift;
my @pops;
my ($pop_id, $name, $size, $desc);
$sth->bind_columns(\$pop_id,\$ name,\$ size,\$ desc);
while($sth->fetch()) {
push @pops, Bio::EnsEMBL::Variation::Population->new
(-dbID => $pop_id,
-ADAPTOR => $self,
-NAME => $name,
-DESCRIPTION => $desc,
-SIZE => $size);
}
return\@ pops; } |
sub _tables{return
{(['population','p'], ['sample','s']); } |
sub fetch_all_by_Individual
{ my $self = shift;
my $ind = shift;
if(!ref($ind) || !$ind->isa('Bio::EnsEMBL::Variation::Individual')) {
throw("Bio::EnsEMBL::Variation::Individual arg expected");
}
if(!$ind->dbID()) {
warning("Individual does not have dbID, cannot retrieve Individuals");
return [];
}
my $sth = $self->prepare(qq{SELECT p.sample_id, s.name, s.size, s.description
FROM population p, individual_population ip, sample s
WHERE s.sample_id = ip.population_sample_id
AND s.sample_id = p.sample_id
AND ip.individual_sample_id = ?
});
$sth->bind_param(1,$ind->dbID,SQL_INTEGER);
$sth->execute();
my $results = $self->_objs_from_sth($sth);
$sth->finish();
return $results; } |
sub fetch_all_by_sub_Population
{ my $self = shift;
my $pop = shift;
if(!ref($pop) || !$pop->isa('Bio::EnsEMBL::Variation::Population')) {
throw('Bio::EnsEMBL::Variation::Population argument expected');
}
if(!$pop->dbID()) {
warning("Cannot retrieve super populations for population without dbID");
return [];
}
my $sth = $self->prepare(q{SELECT p.sample_id, s.name, s.size, s.description FROM population p, population_structure ps, sample s WHERE p.sample_id = ps.super_population_sample_id AND ps.sub_population_sample_id = ? AND p.sample_id = s.sample_id});
$sth->bind_param(1,$pop->dbID,SQL_INTEGER);
$sth->execute();
my $result = $self->_objs_from_sth($sth);
$sth->finish();
return $result; } |
sub fetch_all_by_super_Population
{ my $self = shift;
my $pop = shift;
if(!ref($pop) || !$pop->isa('Bio::EnsEMBL::Variation::Population')) {
throw('Bio::EnsEMBL::Variation::Population argument expected');
}
if(!$pop->dbID()) {
warning("Cannot retrieve sub populations for population without dbID");
return [];
}
my $sth = $self->prepare(q{SELECT p.sample_id, s.name, s.size, s.description FROM population p, population_structure ps, sample s WHERE p.sample_id = ps.sub_population_sample_id AND ps.super_population_sample_id = ? AND p.sample_id = s.sample_id});
$sth->bind_param(1,$pop->dbID,SQL_INTEGER);
$sth->execute();
my $result = $self->_objs_from_sth($sth);
$sth->finish();
return $result; } |
sub fetch_by_name
{ my $self = shift;
my $name = shift;
throw('name argument expected') if(!defined($name));
my $sth = $self->prepare(q{SELECT p.sample_id, s.name, s.size, s.description FROM population p, sample s WHERE s.name = ? AND s.sample_id = p.sample_id});
$sth->bind_param(1,$name,SQL_VARCHAR);
$sth->execute();
my $result = $self->_objs_from_sth($sth);
$sth->finish();
return undef if(!@$result);
return $result->[0]; } |
sub fetch_default_LDPopulation
{ my $self = shift;
my $population_id;
my $sth = $self->prepare(qq{SELECT meta_value from meta where meta_key = ?});
$sth->bind_param(1,'pairwise_ld.default_population',SQL_VARCHAR);
$sth->execute();
$sth->bind_columns(\$population_id);
$sth->fetch();
$sth->finish;
if (defined $population_id){
return $self->fetch_by_dbID($population_id);
}
else{
return undef;
} } |
sub fetch_population_by_synonym
{ my $self = shift;
my $synonym_name = shift;
my $source = shift;
my $pops;
my $pop;
my $samples = $self->SUPER::fetch_sample_by_synonym($synonym_name, $source);
foreach my $sample_id (@{$samples}){
$pop = $self->fetch_by_dbID($sample_id);
push @{$pops}, $pop if (defined $pop);
}
return $pops; } |
sub fetch_tagged_Population
{ my $self = shift;
my $variation_feature = shift;
if(!ref($variation_feature) || !$variation_feature->isa('Bio::EnsEMBL::Variation::VariationFeature')) {
throw("Bio::EnsEMBL::Variation::VariationFeature arg expected");
}
if(!$variation_feature->dbID()) {
warning("Variation feature does not have dbID, cannot retrieve tagged populations");
return [];
}
my $sth = $self->prepare(qq{SELECT p.sample_id, s.name, s.size, s.description
FROM population p, tagged_variation_feature tvf, sample s
WHERE p.sample_id = tvf.sample_id
AND s.sample_id = p.sample_id
AND tvf.variation_feature_id = ?
});
$sth->bind_param(1,$variation_feature->dbID,SQL_INTEGER);
$sth->execute();
my $results = $self->_objs_from_sth($sth);
$sth->finish();
return $results;
}
} |
General documentation
AUTHOR - Graham McVicker | Top |