libStatGen Software 1
Chromosome.cpp
1#include <cassert>
2#include "Chromosome.h"
3
4Chromosome::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
15Chromosome::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
27Chromosome::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
39Chromosome::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