X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=chimera.h;fp=chimera.h;h=e37d9f9af93cdbc808a6eb7bc7fe7f1ebe4df20a;hp=8eec3cd03f16a0613f1c05e37e386dde7008c5be;hb=7b80945ef716dd72d00563a5a4d692394f7f84c3;hpb=502a5ed3b2c5798b390ece3595efa3a714ad3f75 diff --git a/chimera.h b/chimera.h index 8eec3cd..e37d9f9 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; @@ -102,7 +147,9 @@ 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; }