halapi
hierarchichalalignmentformatapi
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
hal::HDF5Alignment Class Reference

#include <hdf5Alignment.h>

Inheritance diagram for hal::HDF5Alignment:
hal::Alignment

List of all members.

Public Member Functions

void createNew (const std::string &alignmentPath)
void open (const std::string &alignmentPath, bool readOnly)
void close ()
GenomeaddLeafGenome (const std::string &name, const std::string &parentName, double branchLength)
GenomeaddRootGenome (const std::string &name, double branchLength)
void removeGenome (const std::string &name)
const GenomeopenConstGenome (const std::string &name) const
GenomeopenGenome (const std::string &name)
std::string getRootName () const
std::string getParentName (const std::string &name) const
double getBranchLength (const std::string &parentName, const std::string &childName) const
std::vector< std::string > getChildNames (const std::string &name) const
std::vector< std::string > getLeafNamesBelow (const std::string &name) const
hal_size_t getNumGenomes () const
MetaDatagetMetaData ()
const MetaDatagetMetaData () const
std::string getNewickTree () const

Protected Member Functions

 HDF5Alignment (const H5::FileCreatPropList &fileCreateProps, const H5::FileAccPropList &fileAccessProps, const H5::DSetCreatPropList &datasetCreateProps)
void loadTree ()
void writeTree ()
void addGenomeToTree (const std::string &name, const std::pair< std::string, double > &parentName, const std::vector< std::pair< std::string, double > > &childNames)

Protected Attributes

H5::H5File * _file
H5::FileCreatPropList _cprops
H5::FileAccPropList _aprops
H5::DSetCreatPropList _dcprops
int _flags
HDF5MetaData_metaData
stTree * _tree
std::map< std::string, stTree * > _nodeMap
bool _dirty
std::map< std::string,
HDF5Genome * > 
_openGenomes

Static Protected Attributes

static const H5std_string MetaGroupName = "Meta"
static const H5std_string TreeGroupName = "Phylogeny"
static const H5std_string GenomesGroupName = "Genomes"

Friends

AlignmentPtr hdf5AlignmentInstance ()
AlignmentConstPtr hdf5AlignmentInstanceReadOnly ()
AlignmentPtr hdf5AlignmentInstance (const H5::FileCreatPropList &fileCreateProps, const H5::FileAccPropList &fileAccessProps, const H5::DSetCreatPropList &datasetCreateProps)
AlignmentConstPtr hdf5AlignmentInstanceReadOnly (const H5::FileCreatPropList &fileCreateProps, const H5::FileAccPropList &fileAccessProps, const H5::DSetCreatPropList &datasetCreateProps)

Detailed Description

HDF5 implementation of hal::Alignment


Member Function Documentation

Genome * HDF5Alignment::addLeafGenome ( const std::string &  name,
const std::string &  parentName,
double  branchLength 
) [virtual]

Add a new genome to the alignment

Parameters:
namename of new genome in alignment (must be unique)
parentname of parent genome in tree (must exist)
branchLengthdistance between new genome and parent

Implements hal::Alignment.

Genome * HDF5Alignment::addRootGenome ( const std::string &  name,
double  branchLength 
) [virtual]

Add a new genome as root to the alignment. The previous root (if exists) will be a child of the new genome

Parameters:
namename of new genome in alignment (must be unique)
branchLengthdistance between new genome and previous root (if exists)

Implements hal::Alignment.

void HDF5Alignment::close ( ) [virtual]

Close the alignment

Implements hal::Alignment.

void HDF5Alignment::createNew ( const std::string &  alignmentPath) [virtual]

Create new alignment (overwriting any existing alignments)

Parameters:
alignmentPathlocation on disk

Implements hal::Alignment.

double HDF5Alignment::getBranchLength ( const std::string &  parentName,
const std::string &  childName 
) const [virtual]

Get the branch length between two genomes in the phylogeny

Parameters:
parentNamename of parent genome
childNamename of child genome

Implements hal::Alignment.

vector< string > HDF5Alignment::getChildNames ( const std::string &  name) const [virtual]

Get names of child genomes in the phylogeny (empty vector for leaves)

Parameters:
nameName of genome

Implements hal::Alignment.

vector< string > HDF5Alignment::getLeafNamesBelow ( const std::string &  name) const [virtual]

Get the names of all leaves below a given genome

Parameters:
nameName of genome

Implements hal::Alignment.

MetaData * HDF5Alignment::getMetaData ( ) [virtual]

Get Alignment's metadata

Implements hal::Alignment.

const MetaData * HDF5Alignment::getMetaData ( ) const [virtual]

Get read-only instance of Alignment's metadata

Implements hal::Alignment.

string HDF5Alignment::getNewickTree ( ) const [virtual]

Get a newick-formatted phylogeny to the alignment

Implements hal::Alignment.

hal_size_t HDF5Alignment::getNumGenomes ( ) const [virtual]

Get the number of genomes (including internal ancestors) in the alignment

Implements hal::Alignment.

string HDF5Alignment::getParentName ( const std::string &  name) const [virtual]

Get name of parent genome in the phylogeny (empty string for root)

Parameters:
nameName of genome

Implements hal::Alignment.

string HDF5Alignment::getRootName ( ) const [virtual]

Get name of root genome (empty string for empty alignment)

Implements hal::Alignment.

void hal::HDF5Alignment::open ( const std::string &  alignmentPath,
bool  readOnly 
) [virtual]

Open an existing alignment

Parameters:
alignmentPathlocation on disk
readOnlyaccess flag

Implements hal::Alignment.

void HDF5Alignment::removeGenome ( const std::string &  name) [virtual]

Remove a genome from the alignment

Parameters:
pathPath of genome to remove

Implements hal::Alignment.


Friends And Related Function Documentation

AlignmentPtr hdf5AlignmentInstance ( ) [friend]

Get an instance of an HDF5-implemented Alignment with default parameters for everything

AlignmentPtr hdf5AlignmentInstance ( const H5::FileCreatPropList &  fileCreateProps,
const H5::FileAccPropList &  fileAccessProps,
const H5::DSetCreatPropList &  datasetCreateProps 
) [friend]

Get an instance of an HDF5-implemented Alignment while specifying

Parameters:
fileCreatePropsFile creation properties. fairly low-level and should generally be set to H5::FileCreatPropList::DEFAULT
fileAccessPropsFile access properties. Contains cache-related stuff
datasetCreatePropsCompression and chunking parameters among others
AlignmentConstPtr hdf5AlignmentInstanceReadOnly ( ) [friend]

Get read-only instance of an HDF5-implemented Alignment with default parameters for everything

AlignmentConstPtr hdf5AlignmentInstanceReadOnly ( const H5::FileCreatPropList &  fileCreateProps,
const H5::FileAccPropList &  fileAccessProps,
const H5::DSetCreatPropList &  datasetCreateProps 
) [friend]

Get a read-only instance of an HDF5-implemented Alignment while specifying

Parameters:
fileCreatePropsFile creation properties. fairly low-level and should generally be set to H5::FileCreatPropList::DEFAULT
fileAccessPropsFile access properties. Contains cache-related stuff
datasetCreatePropsCompression and chunking parameters among others

Member Data Documentation

const H5std_string HDF5Alignment::MetaGroupName = "Meta" [static, protected]

default group name for MetaData attributes, will be a subgroup of the top level of the file, ie /Meta


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Friends