File: chimerarealigner.h

package info (click to toggle)
mothur 1.48.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,676 kB
  • sloc: cpp: 161,854; makefile: 119; sh: 31
file content (59 lines) | stat: -rwxr-xr-x 1,130 bytes parent folder | download | duplicates (6)
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
#ifndef CHIMERAREALIGNER_H
#define CHIMERAREALIGNER_H

/*
 *  chimerarealigner.h
 *  Mothur
 *
 *  Created by westcott on 2/12/10.
 *  Copyright 2010 Schloss Lab. All rights reserved.
 *
 */

#include "mothurchimera.h"
#include "alignment.hpp"

/***********************************************************/

struct AlignCell {
	int score;
	char direction;
	AlignCell() : score(0), direction('x') {};
};

/***********************************************************/

struct  bases {
	int A, T, G, C, Gap, Chars;
	bases() : A(0), T(0), G(0), C(0), Gap(0), Chars(0){};
};

/***********************************************************/


class ChimeraReAligner  {
	
public:
	ChimeraReAligner();	 
	~ChimeraReAligner();
	
	void reAlign(Sequence*, vector<string>);
				
private:
	void buildTemplateProfile(vector<string>);
	void createAlignMatrix(int, int);
	void fillAlignMatrix(string);
	int calcMatchScore(bases, char);
	string getNewAlignment(string);

	int alignmentLength;
	vector<bases> profile;
	vector<vector<AlignCell> > alignMatrix;

	MothurOut* m;
};

/***********************************************************/

#endif