Change Eclipse configuration
[jabaws.git] / website / archive / binaries / mac / src / clustalo / src / hhalign / hhfullalignment.h
1 /* -*- mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
3 /*********************************************************************
4  * Clustal Omega - Multiple sequence alignment
5  *
6  * Copyright (C) 2010 University College Dublin
7  *
8  * Clustal-Omega is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of the
11  * License, or (at your option) any later version.
12  *
13  * This file is part of Clustal-Omega.
14  *
15  ********************************************************************/
16
17 /*
18  * RCS $Id: hhfullalignment.h 243 2011-05-31 13:49:19Z fabian $
19  */
20
21 //////////////////////////////////////////////////////////////////////////////
22 // Class for output alignment of query against template sequences
23 //////////////////////////////////////////////////////////////////////////////
24
25 class FullAlignment
26 {
27 public:
28   FullAlignment(int maxseqdis=MAXSEQDIS);
29   ~FullAlignment();
30   void FreeMemory();
31   int Build(HMM& q, Hit& hit);
32   void PrintHeader(FILE* outf, HMM& q, Hit& hit);
33   void PrintHHR(FILE* outf, Hit& hit);
34   void PrintA2M(FILE* outf, Hit& hit);
35   void PrintFASTA(FILE* outf, Hit& hit);
36   void PrintA3M(FILE* outf, Hit& hit);
37   void OverWriteSeqs(char **ppcFirstProf, char **ppcSecndProf);
38   int identities;      // number of identical residues in query and template sequence
39   float score_sim;     // substitution matrix similarity score between query and template
40
41 private:
42   HalfAlignment* qa; //query and template parts of the alignment
43   HalfAlignment* ta; //query and template parts of the alignment
44   char symbol[LINELEN];         //symbol[h] = symbol (= - . + |) indicating match score for col h of alignment    
45   void ClearSymbols()      {for (int h=0; h<LINELEN-1; h++) symbol[h]=' ';}
46   void AddColumns(int i, int j, char prev_state, char state, float S);
47   void AddGaps();
48   int ScoreChr(float S) {return (S<-1.5?'=':(S<-0.5?'-':(S<0.5?'.':(S<1.5?'+':'|'))));}
49 };