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 struct Call;
00029
00032 class Allele
00033 {
00034 public:
00037 Allele()
00038 : locus_(0)
00039 {
00040 }
00041
00044 Allele(const Locus* locus)
00045 : locus_(locus)
00046 {
00047 }
00048
00051 const std::vector<size_t>& getCallOffsets() const
00052 {
00053 return callOffsets_;
00054 }
00055
00056 const Call& getCall(size_t index) const;
00057
00060 std::string getAlleleSequence() const;
00061
00064 std::string getRefSequence() const;
00065
00068 const std::string& getHapLink() const;
00069
00071 uint32_t getMinScore() const;
00072
00075 bool hasNoCalls() const;
00076
00078 void clearCalls();
00079
00081 void addCallOffset(size_t offset);
00082
00084 void setLocus(const Locus* locus);
00085
00086 private:
00087 const Locus* locus_;
00088 std::vector<size_t> callOffsets_;
00089 };
00090
00091 } }
00092
00093 #endif // CGATOOLS_VARIANTS_ALLELE_HPP_