00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CGA_TOOLS_COMMAND_CALLDIFF_HPP_
00016 #define CGA_TOOLS_COMMAND_CALLDIFF_HPP_ 1
00017
00019
00020 #include "cgatools/core.hpp"
00021 #include "cgatools/command/Command.hpp"
00022 #include "cgatools/variants/Locus.hpp"
00023 #include "cgatools/variants/CallDiffResult.hpp"
00024
00025 namespace cgatools { namespace command {
00026
00027 class CallDiff : public Command
00028 {
00029 public:
00030 CallDiff(const std::string& name);
00031
00032 protected:
00033 void addOptions(po::options_description& options,
00034 po::positional_options_description& positionalOptions);
00035
00036 int run(po::variables_map& vm);
00037
00038 private:
00039
00040 typedef boost::array< std::map<std::string, std::map<
00041 std::vector<variants::CallDiffResult::MatchType>, int> >, 2 > LocusStats;
00042
00043
00044 typedef std::map< std::vector<variants::CallDiffResult::MatchType>,int> SuperlocusStats;
00045
00046 std::string getClassification(
00047 const variants::Locus& locus, const reference::CrrFile& crr) const;
00048 void dumpLocusStats(std::ostream& out,
00049 LocusStats& locusStats,
00050 bool pct) const;
00051 void dumpSuperlocusStats(std::ostream& out,
00052 SuperlocusStats& superlocusStats) const;
00053
00054 std::string referenceFileName_;
00055 std::string variantFileNameA_;
00056 std::string variantFileNameB_;
00057 std::string superlocusOutputFileName_;
00058 std::string superlocusDebugFileName_;
00059 std::string superlocusStatsFileName_;
00060 std::string locusOutputFileName_;
00061 std::string locusStatsFileName_;
00062 std::string callOutputFileName_;
00063 size_t extend3Mers_;
00064 size_t extendBases_;
00065 size_t statsColumnCount_;
00066 size_t maxHypothesisCount_;
00067 bool noReferenceCoverValidation_;
00068 };
00069
00070 } }
00071
00072 #endif // CGA_TOOLS_COMMAND_CALLDIFF_HPP_