X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=chimera.h;h=f82734675dcbe23f7d38e7465b42d3b6fe4e0239;hb=d8ed98e71c2da5b39b8a778e2c694a4ddff677eb;hp=8eec3cd03f16a0613f1c05e37e386dde7008c5be;hpb=4b6e3f7b5543822a2cca4fb076ab6af2ce8ca62d;p=mothur.git diff --git a/chimera.h b/chimera.h index 8eec3cd..f827346 100644 --- a/chimera.h +++ b/chimera.h @@ -13,7 +13,52 @@ #include "mothur.h" #include "sequence.hpp" - +/***********************************************************************/ +struct data_struct { + float divr_qla_qrb; + float divr_qlb_qra; + float qla_qrb; + float qlb_qra; + float qla; + float qrb; + float ab; + float qa; + float qb; + float lab; + float rab; + float qra; + float qlb; + int winLStart; + int winLEnd; + int winRStart; + int winREnd; + Sequence querySeq; + Sequence parentA; + Sequence parentB; + float bsa; + float bsb; + float bsMax; + float chimeraMax; + +}; +/***********************************************************************/ +struct data_results { + vector results; + string flag; + map spotMap; + Sequence trimQuery; + + data_results(vector d, string f, map s, Sequence t) : results(d), flag(f), spotMap(s), trimQuery(t) {} + data_results() {} +}; +/***********************************************************************/ +//sorts lowest to highest first by bsMax, then if tie by chimeraMax +inline bool compareDataStruct(data_struct left, data_struct right){ + if (left.bsMax < right.bsMax) { return true; } + else if (left.bsMax == right.bsMax) { + return (left.chimeraMax < right.chimeraMax); + }else { return false; } +} /***********************************************************************/ struct Preference { string name; @@ -32,6 +77,7 @@ struct score_struct { int score; int row; int col; +// int mismatches; }; /***********************************************************************/ struct trace_struct { @@ -102,10 +148,13 @@ class Chimera { virtual int getChimeras(Sequence*){ return 0; } virtual int getChimeras(){ return 0; } virtual Sequence* print(ostream&, ostream&){ return NULL; } + virtual Sequence* print(ostream&, ostream&, data_results, data_results) { return NULL; } virtual int print(ostream&, ostream&, string){ return 0; } + virtual data_results getResults() { data_results results; return results; } #ifdef USE_MPI virtual Sequence* print(MPI_File&, MPI_File&){ return 0; } + virtual Sequence* print(MPI_File&, MPI_File&, data_results, data_results){ return NULL; } virtual int print(MPI_File&, MPI_File&, string){ return 0; } #endif