00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGATOOLS_VARIANTS_ALLELE_HPP_
00016 #define CGATOOLS_VARIANTS_ALLELE_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021
00022 #include <string>
00023 #include <vector>
00024
00025 namespace cgatools { namespace variants {
00026
00027 class Locus;
00028
00031 class Allele
00032 {
00033 public:
00036 Allele()
00037 : locus_(0)
00038 {
00039 }
00040
00043 Allele(const Locus* locus)
00044 : locus_(locus)
00045 {
00046 }
00047
00050 const std::vector<size_t>& getCallOffsets() const
00051 {
00052 return callOffsets_;
00053 }
00054
00057 std::string getAlleleSequence() const;
00058
00061 std::string getRefSequence() const;
00062
00065 const std::string& getHapLink() const;
00066
00069 bool hasNoCalls() const;
00070
00072 void clearCalls();
00073
00075 void addCallOffset(size_t offset);
00076
00078 void setLocus(const Locus* locus);
00079
00080 private:
00081 const Locus* locus_;
00082 std::vector<size_t> callOffsets_;
00083 };
00084
00085 } }
00086
00087 #endif // CGATOOLS_VARIANTS_ALLELE_HPP_