1 #ifndef REFCHIMERATEST
2 #define REFCHIMERATEST
3 
4 /*
5  *  refchimeratest.h
6  *  Mothur
7  *
8  *  Created by Pat Schloss on 1/31/11.
9  *  Copyright 2011 Schloss Lab. All rights reserved.
10  *
11  */
12 
13 #include "sequence.hpp"
14 
15 class RefChimeraTest {
16 
17 public:
RefChimeraTest()18 	RefChimeraTest(){};
~RefChimeraTest()19     ~RefChimeraTest(){}
20     RefChimeraTest(vector<Sequence>&, bool);
21 	string getHeader();
22     int analyzeQuery(string, string, string&);
23     int getClosestRefIndex();
24     string getClosestRefAlignment();
25     string getQueryAlignment();
26 
27 private:
28 	int getAlignedMismatches(string&, vector<vector<int> >&, vector<vector<int> >&, int&);
29     int analyzeAlignedQuery(string, string, string&);
30     int analyzeUnalignedQuery(string, string, string&);
31     double alignQueryToReferences(string, string, string&, string&, double&);
32     int getUnalignedDiffs(string, string, vector<int>&, vector<int>&, vector<int>&, vector<int>&);
33 
34     int getChimera(vector<vector<int> >&, vector<vector<int> >&, int&, int&, int&, vector<int>&, vector<int>&, vector<int>&, vector<int>&);
35 	int getTrimera(vector<vector<int> >&, vector<vector<int> >&, int&, int&, int&, int&, int&, vector<int>&, vector<int>&, vector<int>&, vector<int>&);
36 	string stitchBimera(int, int, int);
37 	string stitchTrimera(int, int, int, int, int);
38 	double calcDistToChimera(string&, string&);
39 
40 	vector<string> referenceSeqs;
41 	vector<string> referenceNames;
42 	int numRefSeqs;
43 	int alignLength;
44 	int bestMatch;
45     string bestRefAlignment;
46     string bestQueryAlignment;
47 	bool aligned;
48 
49 	MothurOut* m;
50 };
51 
52 #endif
53