libStatGen Software  1
Chromosome.h
1 #ifndef _CHROMOSOME_H_
2 #define _CHROMOSOME_H_
3 
4 #include "GenomeSequence.h"
5 
6 class Chromosome{
7 public:
8  explicit Chromosome(GenomeSequence* gs, unsigned int chrosomeIndex);
9  explicit Chromosome(GenomeSequence* gs, const char* chromosomeName);
10  explicit Chromosome(const char* genomseSequenceFileName, unsigned int chromosomeIndex, bool isColorSpace);
11  explicit Chromosome(const std::string& genomseSequenceFileName, unsigned int chromosomeIndex, bool isColorSpace);
12  genomeIndex_t Length() const
13  {
14  return chromosomeSize;
15  }
16  // 0-based index
17  inline char operator[](genomeIndex_t index) const
18  {
19  index += offset;
20  return (*gs)[index];
21  }
22  const char* Name() const {
23  return gs->getChromosomeName(this->chromosomeIndex);
24  }
25 private:
26  GenomeSequence* gs;
27  int chromosomeIndex;
28  genomeIndex_t offset; // chromosome index 0 corresponds (*gs)[offset]
29  genomeIndex_t chromosomeSize; // return the length of the chromosome
30 };
31 
32 #endif /* _CHROMOSOME_H_ */
GenomeSequence
Create/Access/Modify/Load Genome Sequences stored as binary mapped files.
Definition: GenomeSequence.h:99
Chromosome
Definition: Chromosome.h:6