1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#ifndef CHIMERASLAYER_H
#define CHIMERASLAYER_H
/*
* chimeraslayer.h
* Mothur
*
* Created by westcott on 9/25/09.
* Copyright 2009 Schloss Lab. All rights reserved.
*
*/
#include "mothurchimera.h"
#include "maligner.h"
#include "slayer.h"
//***********************************************************************/
//This class was modeled after the chimeraSlayer written by the Broad Institute
/***********************************************************************/
class ChimeraSlayer : public MothurChimera {
public:
ChimeraSlayer(string, string, bool, int, int, int, int, float, int, int, int, int, int, int, int, int, bool, int);
ChimeraSlayer(string, string, bool, map<string, int>&, int, int, int, int, float, int, int, int, int, int, int, int, int, bool, int);
ChimeraSlayer(string, string, bool, map<string, int>&, int, int, int, int, float, int, int, int, int, int, int, int, int, bool, int, bool);
~ChimeraSlayer();
int getChimeras(Sequence*);
Sequence print(ostream&, ostream&);
Sequence print(ostream&, ostream&, data_results, data_results);
void printHeader(ostream&);
int doPrep();
int getNumNoParents() { return numNoParents; }
data_results getResults() { return printResults; }
private:
Sequence querySeq;
Sequence trimQuery;
DeCalculator decalc;
SearchDatabase* databaseRight;
SearchDatabase* databaseLeft;
map<string, int> priority; //for template=self, seqname, seqAligned, abundance
set<string> chimericSeqs; //for template=self, so we don't add chimeric sequences to the userTemplate set
int numNoParents, threadID;
vector<data_struct> chimeraResults;
data_results printResults;
string chimeraFlags, fastafile;
bool realign, trimChimera;
int window, numWanted, kmerSize, match, misMatch, minSim, minCov, minBS, minSNP, parents, iters, increment;
float divR;
void printBlock(data_struct, string, ostream&);
void printBlock(data_results, data_results, bool, bool, string, ostream&);
string getBlock(data_struct, string);
string getBlock(data_results, data_results, bool, bool, string);
//int readNameFile(string);
vector<Sequence*> getTemplate(Sequence, vector<Sequence*>&);
vector<Sequence> getRefSeqs(Sequence, vector<Sequence*>&, vector<Sequence*>&);
vector<Sequence> getKmerSeqs(Sequence, vector<Sequence*>&, int);
};
/************************************************************************/
#endif
|