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 SomaticScoreCalc;
00028
00029 class CallDiff : public Command
00030 {
00031 public:
00032 CallDiff(const std::string& name);
00033
00034 protected:
00035 void addOptions(po::options_description& options,
00036 po::positional_options_description& positionalOptions);
00037
00038 int run(po::variables_map& vm);
00039
00040 private:
00041
00042 typedef boost::array< std::map<std::string, std::map<
00043 std::vector<variants::cdmt::MatchType>, int> >, 2 > LocusStats;
00044
00045
00046 typedef std::map< std::vector<variants::cdmt::MatchType>,int> SuperlocusStats;
00047
00048
00049 typedef std::map< uint32_t, std::vector<variants::cdmt::MatchType> > LocusDiffClassStore;
00050
00051 bool isLohVar(
00052 const variants::CallDiffResult& dr,
00053 const std::vector<variants::cdmt::MatchType>& mtLocus) const;
00054 std::string getClassification(
00055 const variants::Locus& locus, const reference::CrrFile& crr) const;
00056 void dumpLocusStats(std::ostream& out,
00057 LocusStats& locusStats,
00058 bool pct) const;
00059 void dumpSuperlocusStats(std::ostream& out,
00060 SuperlocusStats& superlocusStats) const;
00061 void writeVariantOutput(const reference::CrrFile& crr,
00062 const std::string& inpFn, const std::string& outFn,
00063 const LocusDiffClassStore& ldc,
00064 SomaticScoreCalc* somatic,
00065 const std::set<uint32_t>* lohLoci) const;
00066
00067 std::string referenceFileName_;
00068 std::string variantFileNameA_;
00069 std::string variantFileNameB_;
00070 std::string oPrefix_;
00071 std::string reports_;
00072 size_t extend3Mers_;
00073 size_t extendBases_;
00074 size_t statsColumnCount_;
00075 size_t maxHypothesisCount_;
00076 bool noReferenceCoverValidation_;
00077 bool addVarFlags_;
00078 bool eaf_;
00079 std::string exportRootA_;
00080 std::string exportRootB_;
00081 std::string calibPrefix_;
00082 std::string somaticScoreDebugInput_;
00083 };
00084
00085 } }
00086
00087 #endif // CGA_TOOLS_COMMAND_CALLDIFF_HPP_