All Classes Namespaces Functions Pages
halGenome.h
/*
* Copyright (C) 2012 by Glenn Hickey (hickey@soe.ucsc.edu)
*
* Released under the MIT license, see LICENSE.txt
*/
#ifndef _HALGENOME_H
#define _HALGENOME_H
#include <vector>
#include <string>
#include "halDefs.h"
#include "halSegmentedSequence.h"
#include "halSequence.h"
namespace hal {
class Genome : public SegmentedSequence
{
public:
virtual const std::string& getName() const = 0;
virtual void setDimensions(
const std::vector<hal::Sequence::Info>& sequenceDimensions,
bool storeDNAArrays = true) = 0;
virtual void updateTopDimensions(
const std::vector<hal::Sequence::UpdateInfo>& sequenceDimensions) = 0;
virtual void updateBottomDimensions(
const std::vector<hal::Sequence::UpdateInfo>& sequenceDimensions) = 0;
virtual hal_size_t getNumSequences() const = 0;
virtual Sequence* getSequence(const std::string& name) = 0;
virtual const Sequence* getSequence(const std::string& name) const = 0;
virtual Sequence* getSequenceBySite(hal_size_t position) = 0;
virtual const Sequence* getSequenceBySite(hal_size_t position) const = 0;
virtual SequenceIteratorPtr getSequenceIterator(
hal_index_t position = 0) = 0;
virtual SequenceIteratorConstPtr getSequenceIterator(
hal_index_t position = 0) const = 0;
virtual SequenceIteratorConstPtr getSequenceEndIterator() const = 0;
virtual MetaData* getMetaData() = 0;
virtual const MetaData* getMetaData() const = 0;
virtual Genome* getParent() = 0;
virtual const Genome* getParent() const = 0;
virtual Genome* getChild(hal_size_t childIdx) = 0;
virtual const Genome* getChild(hal_size_t childIdx) const = 0;
virtual hal_size_t getNumChildren() const = 0;
virtual hal_index_t getChildIndex(const Genome* child) const = 0;
virtual bool containsDNAArray() const = 0;
virtual const Alignment* getAlignment() const = 0;
protected:
virtual ~Genome() = 0;
};
inline Genome::~Genome() {}
}
#endif
hal::Genome::getChildIndex
virtual hal_index_t getChildIndex(const Genome *child) const =0
hal::Genome
Definition: halGenome.h:24
hal::Genome::updateBottomDimensions
virtual void updateBottomDimensions(const std::vector< hal::Sequence::UpdateInfo > &sequenceDimensions)=0
hal::Genome::getNumSequences
virtual hal_size_t getNumSequences() const =0
hal::Genome::getSequenceBySite
virtual Sequence * getSequenceBySite(hal_size_t position)=0
hal::Genome::getSequenceIterator
virtual SequenceIteratorPtr getSequenceIterator(hal_index_t position=0)=0
hal::Genome::containsDNAArray
virtual bool containsDNAArray() const =0
hal::Genome::getParent
virtual Genome * getParent()=0
hal::MetaData
Definition: halMetaData.h:21
hal::SegmentedSequence
Definition: halSegmentedSequence.h:23
hal::Genome::getName
virtual const std::string & getName() const =0
hal::Genome::~Genome
virtual ~Genome()=0
Definition: halGenome.h:132
hal::Genome::getSequenceEndIterator
virtual SequenceIteratorConstPtr getSequenceEndIterator() const =0
hal::Genome::updateTopDimensions
virtual void updateTopDimensions(const std::vector< hal::Sequence::UpdateInfo > &sequenceDimensions)=0
hal::Genome::getAlignment
virtual const Alignment * getAlignment() const =0
hal::Genome::getSequence
virtual Sequence * getSequence(const std::string &name)=0
hal::Genome::getMetaData
virtual MetaData * getMetaData()=0
hal::Genome::getNumChildren
virtual hal_size_t getNumChildren() const =0
hal::Genome::setDimensions
virtual void setDimensions(const std::vector< hal::Sequence::Info > &sequenceDimensions, bool storeDNAArrays=true)=0
hal::Sequence
Definition: halSequence.h:20
hal::Alignment
Definition: halAlignment.h:21
hal::Genome::getChild
virtual Genome * getChild(hal_size_t childIdx)=0