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::DensityFeatureAdaptor

SYNOPSIS

my $dfa = $database_adaptor->get_DensityFeatureAdaptor();

my $interpolate   = 1;
my $blocks_wanted = 50;

@dense_feats = @{
  $dfa->fetch_all_by_Slice( $slice, 'SNPDensity', $blocks_wanted,
    $interpolate );
  }

DESCRIPTION

Density Feature Adaptor - An adaptor responsible for the creation of density features from the database.

METHODS

new

Arg [1]    : list of args @args
             Superclass constructor arguments
Example    : none
Description: Constructor which just initializes internal cache structures
Returntype : Bio::EnsEMBL::DBSQL::DensityFeatureAdaptor
Exceptions : none
Caller     : implementing subclass constructors
Status     : Stable

fetch_all_by_Slice

Arg [1]    : Bio::EnsEMBL::Slice $slice - The slice representing the region
             to retrieve density features from.
Arg [2]    : string $logic_name - The logic name of the density features to
             retrieve.
Arg [3]    : int $num_blocks (optional; default = 50) - The number of
             features that are desired. The ratio between the size of these
             features and the size of the features in the database will be
             used to determine which database features will be used.
Arg [4]    : boolean $interpolate (optional; default = 0) - A flag indicating
             whether the features in the database should be interpolated to
             fit them to the requested number of features.  If true the
             features will be interpolated to provide $num_blocks features.
             This will not guarantee that exactly $num_blocks features are
             returned due to rounding etc. but it will be close.
Arg [5]    : float $max_ratio - The maximum ratio between the size of the
             requested features (as determined by $num_blocks) and the actual
             size of the features in the database.  If this value is exceeded
             then an empty list will be returned.  This can be used to
             prevent excessive interpolation of the database values.
Example    : #interpolate:
             $feats = $dfa->fetch_all_by_Slice($slice,'SNPDensity', 10, 1);
             #do not interpoloate, get what is in the database:
             $feats = $dfa->fetch_all_by_Slice($slice,'SNPDensity', 50);
             #interpolate, but not too much
             $feats = $dfa->fetch_all_by_Slice($slice,'SNPDensity',50,1,5.0);
Description: Retrieves a set of density features which overlap the region
             of this slice. Density features are a discrete representation
             of a continuous value along a sequence, such as a density or
             percent coverage.  Density Features may be stored in chunks of
             different sizes in the database, and interpolated to fit the
             desired size for the requested region.  For example the database
             may store a single density value for each 1KB and also for each
             1MB.  When fetching for an entire chromosome the 1MB density
             chunks will be used if the requested number of blocks is not
             very high.
             Note that features which have been interpolated are not stored
             in the database and as such will have no dbID or adaptor set.
Returntype : Bio::EnsEMBL::DensityFeature
Exceptions : warning on invalid $num_blocks argument
             warning if no features with logic_name $logic_name exist
             warning if density_type table has invalid block_size value
Caller     : general
Status     : Stable

fetch_all_by_Slice_constraint

Arg [1]    : Bio::EnsEMBL::Slice $slice
             the slice from which to obtain features
Arg [2]    : (optional) string $constraint
             An SQL query constraint (i.e. part of the WHERE clause)
Example    : $fs = $a->fetch_all_by_Slice_constraint($slc, 'density_type_id = 88');
Description: Returns a listref of features created from the database which 
             are on the Slice defined by $slice and fulfill the SQL 
             constraint defined by $constraint. 
             Note that this is a re-implementation of a method with the same name
             in the BaseFeatureAdaptor.
             This was necessary to remove the use of symliked sequences for density features
Returntype : listref of Bio::EnsEMBL::SeqFeatures in Slice coordinates
Exceptions : thrown if $slice is not defined
Caller     : Bio::EnsEMBL::Slice
Status     : Stable

list_dbIDs

Arg [1]    : none
Example    : @feature_ids = @{$density_feature_adaptor->list_dbIDs()};
Description: Gets an array of internal ids for all density features in the
             current db
Arg[1]     : <optional> int. not set to 0 for the ids to be sorted by the seq_region.
Returntype : list of ints
Exceptions : none
Caller     : ?
Status     : Stable

store

Arg [1]    : list of Bio::EnsEMBL::DensityFeatures @df
             the simple features to store in the database
Example    : $density_feature_adaptor->store(1234, @density_feats);
Description: Stores a list of density feature objects in the database
Returntype : none
Exceptions : thrown if @df is not defined, if any of the features do not
             have an attached slice.
             or if any elements of @df are not Bio::EnsEMBL::SeqFeatures 
Caller     : general
Status     : Stable

fetch_Featureset_by_Slice

Arg [1-5]  : see
             Bio::EnsEMBL::DBSQL::DensityFeatureAdaptor::fetch_all_by_Slice()
             for argument documentation
Example    : $featureset = $dfa->fetch_FeatureSet_by_Slice($slice,'SNPDensity', 10, 1);
Description: wrapper around
             Bio::EnsEMBL::DBSQL::DensityFeatureAdaptor::fetch_all_by_Slice()
             which returns a Bio::EnsEMBL::DensityFeatureSet and also caches
             results
Returntype : Bio::EnsEMBL::DensityFeatureSet
Exceptions : none
Caller     : general
Status     : Stable