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
|