halapi hierarchichalalignmentformatapi

- Main Page
- Namespaces
- Classes
- Files

- File List

All Classes Namespaces Functions Pages
halGenome.h
1 /*
2 * Copyright (C) 2012 by Glenn Hickey (hickey@soe.ucsc.edu)
3 *
4 * Released under the MIT license, see LICENSE.txt
5 */
6
7 #ifndef _HALGENOME_H
8 #define _HALGENOME_H
9
10 #include <vector>
11 #include <string>
12 #include "halDefs.h"
13 #include "halSegmentedSequence.h"
14 #include "halSequence.h"
15
16 namespace hal {
17
24 class Genome : public SegmentedSequence
25 {
26 public:
28 virtual const std::string& getName() const = 0;
29
41 virtual void setDimensions(
42 const std::vector<hal::Sequence::Info>& sequenceDimensions,
43 bool storeDNAArrays = true) = 0;
44
50 virtual void updateTopDimensions(
51 const std::vector<hal::Sequence::UpdateInfo>& sequenceDimensions) = 0;
52
58 virtual void updateBottomDimensions(
59 const std::vector<hal::Sequence::UpdateInfo>& sequenceDimensions) = 0;
60
62 virtual hal_size_t getNumSequences() const = 0;
63
65 virtual Sequence* getSequence(const std::string& name) = 0;
66
68 virtual const Sequence* getSequence(const std::string& name) const = 0;
69
71 virtual Sequence* getSequenceBySite(hal_size_t position) = 0;
72
74 virtual const Sequence* getSequenceBySite(hal_size_t position) const = 0;
75
78 virtual SequenceIteratorPtr getSequenceIterator(
79 hal_index_t position = 0) = 0;
80
83 virtual SequenceIteratorConstPtr getSequenceIterator(
84 hal_index_t position = 0) const = 0;
85
88 virtual SequenceIteratorConstPtr getSequenceEndIterator() const = 0;
89
91 virtual MetaData* getMetaData() = 0;
92
94 virtual const MetaData* getMetaData() const = 0;
95
97 virtual Genome* getParent() = 0;
98
100 virtual const Genome* getParent() const = 0;
101
104 virtual Genome* getChild(hal_size_t childIdx) = 0;
105
108 virtual const Genome* getChild(hal_size_t childIdx) const = 0;
109
111 virtual hal_size_t getNumChildren() const = 0;
112
115 virtual hal_index_t getChildIndex(const Genome* child) const = 0;
116
119 virtual bool containsDNAArray() const = 0;
120
124 virtual const Alignment* getAlignment() const = 0;
125
126 protected:
127
129 virtual ~Genome() = 0;
130 };
131
132 inline Genome::~Genome() {}
133
134 }
135 #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