File: chimeraslayer.h

package info (click to toggle)
mothur 1.48.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 13,684 kB
  • sloc: cpp: 161,854; makefile: 122; sh: 31
file content (73 lines) | stat: -rwxr-xr-x 2,446 bytes parent folder | download | duplicates (4)
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