libStatGen Software  1
Chromosome.cpp
1 #include <cassert>
2 #include "Chromosome.h"
3 
4 Chromosome::Chromosome(GenomeSequence* gs, unsigned int chromosomeIndex)
5 {
6  assert(gs);
7  assert(chromosomeIndex < (unsigned int)gs->getChromosomeCount());
8 
9  this->gs = gs;
10  this->chromosomeIndex = chromosomeIndex;
11  this->offset = gs->getChromosomeStart((int)chromosomeIndex);
12  this->chromosomeSize = gs->getChromosomeSize((int)chromosomeIndex);
13 }
14 
15 Chromosome::Chromosome(GenomeSequence* gs, const char* chromosomeName)
16 {
17  assert(gs);
18  this->gs = gs;
19 
20  this->chromosomeIndex = gs->getChromosome(chromosomeName);
21  assert(chromosomeIndex != INVALID_CHROMOSOME_INDEX);
22 
23  this->offset = gs->getChromosomeStart((int)chromosomeIndex);
24  this->chromosomeSize = gs->getChromosomeSize((int)chromosomeIndex);
25 }
26 
27 Chromosome::Chromosome(const char* genomseSequenceFileName, unsigned int chromosomeIndex, bool isColorSpace)
28 {
29  std::string s(genomseSequenceFileName);
30  gs = new GenomeSequence;
31  assert(gs);
32  gs->setReferenceName(s);
33  assert(!gs->open(isColorSpace));
34  this->chromosomeIndex = chromosomeIndex;
35  this->offset = gs->getChromosomeStart((int)chromosomeIndex);
36  this->chromosomeSize = gs->getChromosomeSize((int)chromosomeIndex);
37 }
38 
39 Chromosome::Chromosome(const std::string& genomseSequenceFileName, unsigned int chromosomeIndex, bool isColorSpace)
40 {
41  gs = new GenomeSequence;
42  assert(gs);
43  gs->setReferenceName(genomseSequenceFileName);
44  assert(!gs->open(isColorSpace));
45  this->chromosomeIndex = chromosomeIndex;
46  this->offset = gs->getChromosomeStart((int)chromosomeIndex);
47  this->chromosomeSize = gs->getChromosomeSize((int)chromosomeIndex);
48 }
Create/Access/Modify/Load Genome Sequences stored as binary mapped files.
int getChromosomeCount() const
Return the number of chromosomes in the genome.
genomeIndex_t getChromosomeStart(int chromosomeIndex) const
given a chromosome, return the genome base it starts in
int getChromosome(genomeIndex_t position) const
given a whole genome index, get the chromosome it is located in
bool setReferenceName(std::string referenceFilename)
set the reference name that will be used in open()
genomeIndex_t getChromosomeSize(int chromosomeIndex) const
given a chromosome, return its size in bases
bool open(bool isColorSpace=false, int flags=O_RDONLY)
open the reference specified using GenomeSequence::setReferenceName