00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGATOOLS_VARIANTS_PHASEDALLELE_HPP_
00016 #define CGATOOLS_VARIANTS_PHASEDALLELE_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021 #include "cgatools/variants/Call.hpp"
00022 #include "cgatools/variants/Locus.hpp"
00023
00024 namespace cgatools { namespace variants {
00025
00027 class PhasedAllele
00028 {
00029 public:
00031 PhasedAllele()
00032 : pos_(1, 0)
00033 {
00034 }
00035
00037 void addCall(const Call& call, const Locus& locus, const reference::CrrFile& crr);
00038
00043 void addSequence(const Call& call, const Locus& locus, const std::string& sequence);
00044
00046 bool hasHapLink(const std::string& hapLink) const;
00047
00049 const std::string& allele() const
00050 {
00051 return allele_;
00052 }
00053
00056 const std::vector<uint32_t>& pos() const
00057 {
00058 return pos_;
00059 }
00060
00062 const std::vector<const Call*>& calls() const
00063 {
00064 return calls_;
00065 }
00066
00068 const std::vector<const Locus*>& loci() const
00069 {
00070 return loci_;
00071 }
00072
00073 private:
00074 std::string allele_;
00075 std::vector<uint32_t> pos_;
00076 std::vector<const Call*> calls_;
00077 std::vector<const Locus*> loci_;
00078 };
00079
00080 } }
00081
00082 #endif // CGATOOLS_VARIANTS_PHASEDALLELE_HPP_