00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGATOOLS_VARIANTS_CALLDIFFRESULT_HPP_
00016 #define CGATOOLS_VARIANTS_CALLDIFFRESULT_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021 #include "cgatools/variants/Call.hpp"
00022
00023 namespace cgatools { namespace variants {
00024
00026 struct CallDiffResult
00027 {
00030 enum MatchType
00031 {
00032 REF_IDENTICAL = 0,
00033 ALT_IDENTICAL = 1,
00034 REF_CONSISTENT = 2,
00035 ALT_CONSISTENT = 3,
00036 ONLY_A = 4,
00037 ONLY_B = 5,
00038 MISMATCH = 6,
00039 PHASE_MISMATCH = 7,
00040 PLOIDY_MISMATCH = 8,
00041 MATCH_TYPE_LAST = 9
00042 };
00043
00047 static MatchType mergeMatchTypes(MatchType mtA, MatchType mtB);
00048
00050 static const char* getMatchTypeString(MatchType mt);
00051
00054 static std::string getMatchTypeString(const std::vector<MatchType>& mt);
00055
00059 static std::string getSimpleMatchTypeString(const std::vector<MatchType>& mt);
00060
00063 size_t lhsOffset_;
00064
00067 size_t rhsOffset_;
00068
00070 std::vector<MatchType> matchType_;
00071
00074 boost::array<std::vector< std::vector< std::pair<MatchType, const Call*> > >, 2> callClass_;
00075
00077 std::vector<size_t> perm_;
00078 };
00079
00080 } }
00081
00082 #endif // CGATOOLS_VARIANTS_CALLDIFFRESULT_HPP_