4 #include "MSAGuideTree.h"
6 #include "SafeVector.h"
7 #include "MultiSequence.h"
9 #include "ProbabilisticModel.h"
10 #include "SparseMatrix.h"
18 MSA(int argc, char* argv[]);
21 static void getSysTime(double * dtime);
22 MSAGuideTree* getGuideTree() {
25 int * getSeqsWeights() {
31 //do multiple sequence alignment
34 //for sequence weights
35 void createSeqsWeights(int seqsNum);
36 void releaseSeqsWeights();
38 //weights of sequences
43 string alignOutFileName;
44 std::ostream* alignOutFile;
46 SafeVector<string> ParseParams(int argc, char *argv[]);
47 void PrintParameters(const char *message, const VF &initDistrib,
48 const VF &gapOpen, const VF &gapExtend, const VVF &emitPairs,
49 const VF &emitSingle, const char *filename);
51 SafeVector<string> PostProbsParseParams(int argc, char **argv);
52 MultiSequence *doAlign(MultiSequence *sequence,
53 const ProbabilisticModel &model, int levelid);
54 void ReadParameters();
55 MultiSequence* ProcessTree(TreeNode *tree, MultiSequence *sequences,
56 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
57 const ProbabilisticModel &model);
58 MultiSequence *ComputeFinalAlignment(MSAGuideTree *tree,
59 MultiSequence *sequences,
60 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
61 const ProbabilisticModel &model,int levelid);
62 MultiSequence *AlignAlignments(MultiSequence *align1, MultiSequence *align2,
63 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
64 const ProbabilisticModel &model);
65 SafeVector<SafeVector<SparseMatrix *> > DoRelaxation(float* seqsWeights,
66 MultiSequence *sequences,
67 SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices);
68 void Relax(float weight, SparseMatrix *matXZ, SparseMatrix *matZY,
70 void Relax1(float weight, SparseMatrix *matXZ, SparseMatrix *matZY,
72 int DoIterativeRefinement(
73 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
74 const ProbabilisticModel &model, MultiSequence* &alignment);
75 void DoIterativeRefinementTreeNode(
76 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices,
77 const ProbabilisticModel &model, MultiSequence* &alignment,
79 void WriteAnnotation(MultiSequence *alignment,
80 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices);
81 int ComputeScore(const SafeVector<pair<int, int> > &active,
82 const SafeVector<SafeVector<SparseMatrix *> > &sparseMatrices);
83 int AdjustmentTest(MultiSequence *sequences,const ProbabilisticModel &model);