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 
00023 namespace cgatools { namespace variants {
00024 
00026     class PhasedAllele
00027     {
00028     public:
00030         PhasedAllele()
00031             : pos_(1, 0)
00032         {
00033         }
00034 
00036         void addCall(const Call& call, const reference::CrrFile& crr);
00037 
00042         void addSequence(const Call& call, const std::string& sequence);
00043 
00045         bool hasHapLink(const std::string& hapLink) const;
00046 
00048         const std::string& allele() const
00049         {
00050             return allele_;
00051         }
00052 
00055         const std::vector<uint32_t>& pos() const
00056         {
00057             return pos_;
00058         }
00059 
00061         const std::vector<const Call*>& calls() const
00062         {
00063             return calls_;
00064         }
00065 
00066     private:
00067         std::string allele_;
00068         std::vector<uint32_t> pos_; 
00069         std::vector<const Call*> calls_;
00070     };
00071 
00072 } } 
00073 
00074 #endif // CGATOOLS_VARIANTS_PHASEDALLELE_HPP_