forked from mothur/mothur
-
Notifications
You must be signed in to change notification settings - Fork 0
/
chimerarealigner.h
59 lines (42 loc) · 1.1 KB
/
chimerarealigner.h
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
#ifndef CHIMERAREALIGNER_H
#define CHIMERAREALIGNER_H
/*
* chimerarealigner.h
* Mothur
*
* Created by westcott on 2/12/10.
* Copyright 2010 Schloss Lab. All rights reserved.
*
*/
#include "chimera.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