LICENSE

Copyright [1999-2015] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute Copyright [2016-2024] EMBL-European Bioinformatics Institute

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

CONTACT

Please email comments or questions to the public Ensembl
developers list at <http://lists.ensembl.org/mailman/listinfo/dev>.

Questions may also be sent to the Ensembl help desk at
<http://www.ensembl.org/Help/Contact>.

NAME

Bio::EnsEMBL::DBSQL::DBAdaptor

SYNOPSIS

$db = Bio::EnsEMBL::DBSQL::DBAdaptor->new(
  -user   => 'root',
  -dbname => 'pog',
  -host   => 'caldy',
  -driver => 'mysql'
);

$gene_adaptor = $db->get_GeneAdaptor();

$gene = $gene_adaptor->fetch_by_stable_id($stable_id);

$slice =
  $db->get_SliceAdaptor()->fetch_by_chr_start_end( 'X', 1, 10000 );

DESCRIPTION

Formerly this class provided database connectivity and a means to retrieve object adaptors. This class is now provided for convenience and backwards compatibility, and delegates its connection responsibilities to the DBConnection class (no longer inherited from) and its object adaptor retrieval to the static Bio::EnsEMBL::Registry.

Please use Bio::EnsEMBL::Registry to retrieve object adaptors.

METHODS

new

Arg [-DNADB]: (optional) Bio::EnsEMBL::DBSQL::DBAdaptor DNADB 
             All sequence, assembly, contig information etc, will
             be retrieved from this database instead.

Arg [-NO_CACHE]: (optional) int 1
             This option will turn off caching for slice features,
             so, every time a set of features is retrieved,
             they will come from the database instead of the
             cache.  This option is only recommended for advanced
             users, specially if you need to store and retrieve
             features.  It might reduce performance when querying
             the database if not used properly.  If in doubt, do
             not use it or ask in the developer mailing list.

Arg [-ADD_ALIASES]: (optional) boolean
                    Used to automatically load aliases for this 
                    species into the Registry upon loading.

Arg [-ADD_SPECIES_ID]: (optional) boolean
                       Used to automatically load the species id
                       based on the species if none is defined.

Arg [..]   : Other args are passed to superclass
             Bio::EnsEMBL::DBSQL::DBConnection

Example    : $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(
              -user   => 'root',
              -dbname => 'pog',
              -host   => 'caldy',
              -driver => 'mysql'
            );

            $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(
              -species => 'Homo_sapiens',
              -group   => 'core',
              -user    => 'root',
              -dbname  => 'pog',
              -host    => 'caldy',
              -driver  => 'mysql'
            );

            $db = new Bio::EnsEMBL::DBSQL::DBAdaptor(
              -species         => 'staphylococcus_aureus',
              -group           => 'core',
              -user            => 'root',
              -dbname          => 'staphylococcus_collection_1_52_1a',
              -multispecies_db => 1,
              -host            => 'caldy',
              -driver          => 'mysql'
            );

Description: Constructor for DBAdaptor.
Returntype : Bio::EnsEMBL::DBSQL::DBAdaptor
Exceptions : none
Caller     : general
Status     : Stable

clear_caches

Example			: $dba->clear_caches();
Description	: Loops through all linked adaptors and clears their 
              caches if C<clear_cache()> is implemented. Not all caches
              are cleared & the DBAdaptor instance should be removed from
              the registry to clear these remaining essential caches. 
Returntype 	: None
Exceptions 	: None

find_and_add_aliases

Example     : $dba->find_and_add_aliases();
Description : When executed we delegate to the find_and_add_aliases
              method in Bio::EnsEMBL::Registry which scans the 
              database's MetaContainer for species.alias entries 
              indicating alternative names for this species. This
              is best executed on a core DBAdaptor instance.
Returntype  : None
Exceptions  : None

find_and_add_species_id

Description : 
Returntype  : None
Exceptions  : None

dbc

Arg[1]    : (optional) Bio::EnsEMBL::DBSQL::DBConnection

Example    : $dbc = $dba->dbc();
Description: Getter/Setter for DBConnection.
Returntype : Bio::EnsEMBL::DBSQL::DBConnection
Exceptions : throws if argument not a Bio::EnsEMBL::DBSQL::DBConnection
Caller     : general
Status     : Stable

add_db_adaptor

Arg [1]    : string $name
             the name of the database to attach to this database
Arg [2]    : Bio::EnsEMBL::DBSQL::DBConnection
             the db adaptor to attach to this database
Example    : $db->add_db_adaptor('lite', $lite_db_adaptor);
Description: Attaches another database instance to this database so 
             that it can be used in instances where it is required.
Returntype : none
Exceptions : none
Caller     : EnsWeb
Status     : At Risk

remove_db_adaptor

Arg [1]    : string $name
             the name of the database to detach from this database.
Example    : $lite_db = $db->remove_db_adaptor('lite');
Description: Detaches a database instance from this database and returns
             it.
Returntype : none
Exceptions : none
Caller     : ?
Status     : At Risk

get_all_db_adaptors

Arg [1]    : none
Example    : @attached_dbs = values %{$db->get_all_db_adaptors()};
Description: returns all of the attached databases as 
             a hash reference of key/value pairs where the keys are
             database names and the values are the attached databases  
Returntype : hash reference with Bio::EnsEMBL::DBSQL::DBConnection values
Exceptions : none
Caller     : Bio::EnsEMBL::DBSQL::ProxyAdaptor
Status     : At Risk
           : please use  Bio::EnsEMBL::Registry->get_all_db_adaptors

get_db_adaptor

Arg [1]    : string $name
             the name of the attached database to retrieve
Example    : $lite_db = $db->get_db_adaptor('lite');
Description: returns an attached db adaptor of name $name or undef if
             no such attached database exists
Returntype : Bio::EnsEMBL::DBSQL::DBConnection
Exceptions : none
Caller     : ?
Status     : At Risk
           : please use  Bio::EnsEMBL::Registry->get_db_adaptors

get_available_adaptors

Example    : my %pairs = %{$dba->get_available_adaptors()};
Description: gets a hash of the available adaptors
ReturnType : reference to a hash
Exceptions : none
Caller     : Bio::EnsEMBL::Utils::ConfigRegistry
Status     : Stable

add_DASFeatureFactory

Arg [1]    : Bio::EnsEMBL::ExternalFeatureFactory $value 
Example    : none
Description: Attaches a DAS Feature Factory to this method.  
             ExternalFeatureFactory objects are not really used right now.
             They may be reintroduced or taken out completely.  The fate
             of this function is unknown (although it is presently needed).
Returntype : none
Exceptions : none
Caller     : EnsWeb
Status     : At Risk
           : with the new web code this may not be needed/supported

_each_DASFeatureFactory

Args       : none
Example    : none
Description: Not sure if this is used, or if it should be removed.  It 
             does not seem to be used at the moment
Returntype : Bio::EnsEMBL::ExternalFeatureFactory
Exceptions : none
Caller     : ??
Status     : At Risk
           : with the new web code this may not be needed/supported

add_ExternalFeatureAdaptor

Arg [1]    : Bio::EnsEMBL::External::ExternalFeatureAdaptor
Example    : $db_adaptor->add_ExternalFeatureAdaptor($xfa);
Description: Adds an external feature adaptor to this database adaptor.
             Adding the external adaptor in this way allows external
             features to be obtained from Slices and from RawContigs.

             The external feature adaptor which is passed to this method
             will have its db attribute set to this DBAdaptor object via 
             the db accessor method. 

             ExternalFeatureAdaptors passed to this method are stored 
             internally in a hash keyed on the string returned by the 
             ExternalFeatureAdaptors track_name method.
             
             If the track name method is not implemented then the 
             a default key named 'External features' is assigned.  In the
             event of duplicate key names, a number is appended to the
             key name, and incremented for each subsequent adaptor with the
             same track name.  For example, if no track_names are specified 
             then the the external feature adaptors will be stored under the
             keys 'External features', 'External features2' 
             'External features3' etc.
Returntype : none
Exceptions : none
Caller     : general

get_ExternalFeatureAdaptors

Arg [1]    : none
Example    : @xfas = values %{$db_adaptor->get_ExternalFeatureAdaptors}; 
Description: Retrieves all of the ExternalFeatureAdaptors which have been
             added to this DBAdaptor.  The ExternalFeatureAdaptors are 
             returned in a reference to a hash keyed on the track names
             of the external adaptors
Returntype : Reference to a hash of ExternalFeatureAdaptors keyed on 
             their track names.
Exceptions : none
Caller     : general

add_ExternalFeatureFactory

Arg [1]    : Bio::EnsEMBL::DB::ExternalFeatureFactoryI $value
Example    : $db_adaptor->add_ExternalFeatureFactory
Description: It is recommended that add_ExternalFeatureAdaptor be used 
             instead.  See documentation for 
             Bio::EnsEMBL::External::ExternalFeatureAdaptor

             Adds an external feature factory to the core database
             so that features from external sources can be displayed in 
             ensembl. This method is still available mainly for legacy
             support for external EnsEMBL installations.
Returntype : none
Exceptions : none
Caller     : external

get_adaptor

 Arg [1]    : Canonical data type for which an adaptor is required.
 Example    : $db_adaptor->get_adaptor("Protein")
 Description: Gets an adaptor object for a standard data type.
 Returntype : Adaptor Object of arbitrary type or undef
 Exceptions : none
 Caller     : external
 Status     : Medium Risk
            : please use the Registry method, as at some time this
            : may no longer be supported.

set_adaptor

 Arg [1]    : Canonical data type for new adaptor.
 Arg [2]    : Object defining the adaptor for arg1.
 Example    : $aa = Bio::EnsEMBL::DBSQL::GeneAdaptor->new($db_adaptor);
            : $db_adaptor->set_adaptor("Gene", $ga)
 Description: Stores the object which represents the adaptor for the
              arg1 data type.
 Returntype : none
 Exceptions : none
 Caller     : external
 Status     : Medium Risk
            : please use the Registry method, as at some time this
            : may no longer be supported.

get_GenericFeatureAdaptors

Arg [1]    : List of names of feature adaptors to get. If no
             adaptor names are given, all the defined adaptors are returned.
Example    : $db->get_GenericFeature("SomeFeature", "SomeOtherFeature")
Description: Returns a hash containing the named feature adaptors (or
             all feature adaptors).
Returntype : reference to a Hash containing the named
             feature adaptors (or all feature adaptors).
Exceptions : If any of the the named generic feature adaptors do not exist.
Caller     : external

add_GenericFeatureAdaptor

Arg [1]    : The name of the feature.
Arg [2]    : Adaptor object for a generic feature.
Example    : $db->add_GenericFeatureAdaptor("SomeFeature",
                            "Bio::EnsEMBL::DBSQL::SomeFeatureAdaptor")
Description: Stores the object which represents the adaptor for the
             named feature type.
Returntype : none
Exceptions :
Caller     : external

species

Arg [1]    : (optional) string $arg
             The new value of the species used by this DBAdaptor. 
Example    : $species = $dba->species()
Description: Getter/Setter for the species of to use for 
             this connection.  There is currently no point in setting 
             this value after the connection has already been established 
             by the constructor.
Returntype : string
Exceptions : none
Caller     : new
Status     : Stable

all_species

Args       : NONE
Example    : @all_species = @{$dba->all_species()};
Description: Returns the names of all species contained in the
             database to which this DBAdaptor is connected.
Returntype : array reference
Exceptions : none
Caller     : general
Status     : Stable

is_multispecies

Arg [1]    : (optional) boolean $arg
Example    : if ($dba->is_multispecies()) { }
Description: Getter/Setter for the is_multispecies boolean of
             to use for this connection.  There is currently no
             point in setting this value after the connection has
             already been established by the constructor.
Returntype : boolean
Exceptions : none
Caller     : new
Status     : Stable

species_id

Arg [1]    : (optional) string $arg
             The new value of the species_id used by this DBAdaptor
             when dealing with multi-species databases.
Example    : $species_id = $dba->species_id()
Description: Getter/Setter for the species_id of to use for this
             connection.  There is currently no point in setting
             this value after the connection has already been
             established by the constructor.
Returntype : string
Exceptions : none
Caller     : new
Status     : Stable

no_cache

Arg [1]    : (optional) int $arg
             The new value of the no cache attribute used by this DBAdaptor. 
Example    : $no_cache = $dba->no_cache();
Description: Getter/Setter for the no_cache to use for 
             this connection.  There is currently no point in setting 
             this value after the connection has already been established 
             by the constructor.
Returntype : int
Exceptions : none
Caller     : new
Status     : Stable

group

Arg [1]    : (optional) string $arg
             The new value of the group used by this DBAdaptor. 
Example    : $group = $dba->group()
Description: Getter/Setter for the group of to use for 
             this connection.  There is currently no point in setting 
             this value after the connection has already been established 
             by the constructor.
Returntype : string
Exceptions : none
Caller     : new
Status     : Stable

get_SeqRegionCache

Arg [1]    : none
Example    : my $srcache = $dba->get_SeqRegionCache();
Description: Retrieves a seq_region cache for this database
Returntype : Bio::EnsEMBL::Utils::SeqRegionCache
Exceptions : none
Caller     : SliceAdaptor, AssemblyMapperAdaptor
Status     : Stable

dnadb

Title   : dnadb
Usage   : my $dnadb = $db->dnadb();
Function: returns the database adaptor where the dna lives
          Useful if you only want to keep one copy of the dna
          on disk but have other databases with genes and features in
Returns : dna database adaptor
Args    : Bio::EnsEMBL::DBSQL::BaseAdaptor
Status  : Medium Risk.
        : Use the Registry method add_DNAAdaptor/get_DNAAdaptor instead

to_hash

Example    : my $hash = $dba->to_hash();
             my $new_dba = $dba->new(%{$hash});
Description: Provides a hash which is compatible with the 
             parameters for DBAdaptor's new() method. This can be
             useful during serialisation but be aware that Registry
Returntype : Hash
Exceptions : none
Caller     : general
Status     : New  

switch_adaptor

Arg [1]     : String name of the adaptor type to switch out
Arg [2]     : Reference The switchable adaptor implementation
Arg [3]     : (optional) CodeRef Provide a subroutine reference as a callback. The
              adaptor will be switched before your codeblock is executed and 
              the adaptor switched back to the original once your code has finished running
Arg [4]     : (optional) Boolean override any existing switchable adaptor
Example     : $dba->switch_adaptor("sequence", $my_replacement_sequence_adaptor);
              $dba->switch_adaptor("sequence", $my_other_replacement_sequence_adaptor, 1);
              $dba->switch_adaptor("sequence", $my_replacement_sequence_adaptor, sub {
                #Make calls as normal without having to do manual cleanup
              });
Returntype  : None
Description : Provides a wrapper around the Registry add_switchable_adaptor() method
              defaulting both species and group to the current DBAdaptor. Callbacks are
              also available providing automatic resource cleanup.

              The method also remembers the last switch you did. It will not remember
              multiple switches though.
Exceptions  : Thrown if no switchable adaptor instance was given

has_switched_adaptor

Arg [1]     : String name of the adaptor type to switch back in
Example     : $dba->has_switchable_adaptor("sequence"); #explicit switching back
Returntype  : Boolean indicating if the given adaptor is being actively switched
Description : Provides a wrapper around the Registry has_switchable_adaptor() method
              defaulting both species and group to the current DBAdaptor. This will
              inform if the specified adaptor is being switched out
Exceptions  : None

revert_adaptor

Arg [1]     : (optional) String name of the adaptor type to switch back in
Example     : $dba->revert_adaptor(); #implicit switching back whatever was the last switch_adaptor() call
              $dba->revert_adaptor("sequence"); #explicit switching back
Returntype  : The removed adaptor
Description : Provides a wrapper around the Registry remove_switchable_adaptor() method
              defaulting both species and group to the current DBAdaptor. This will remove
              a switchable adaptor. You can also remove the last adaptor you switched
              in without having to specify any parameter.
Exceptions  : Thrown if no switchable adaptor name was given or could be found in the internal
              last adaptor variable