+++ /dev/null
-/**
- * Author: Mark Larkin
- *
- * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.
- */
-/**
- * The reason why we have 2 different types of profiles is because one of them
- * (ProfileWithSub) has the substitution matrix information already in it. This
- * increases the performance when aligning 2 profile columns.
- */
-#ifndef PROFILEBASE_H
-#define PROFILEBASE_H
-
-#include "../alignment/Alignment.h"
-
-namespace clustalw
-{
-
-class ProfileBase
-{
- public:
- /* Functions */
- ProfileBase(int prfLen, int firstS, int lastS);
- void calcGapCoeff(SeqArray* seqArray, vector<int>* gaps, bool useStructPenalties,
- vector<char>* gapPenaltyMask, int gapCoef, int lenCoef);
- const SeqArray* getProfilePtr(){return &profile;};
- void resetProfile(){for(int i = 0; i < (int)profile.size();i++)
- {
- profile[i].clear();
- }
- profile.clear();
- };
- /* Attributes */
-
- protected:
- /* Functions */
- void calcVPenalties(SeqArray* aln, vector<int>* weight);
- void calcResidueSpecificPen(SeqArray* aln, vector<int>* weight);
- void calcHydrophilicPen(SeqArray* aln, vector<int>* weight);
- int localPenalty(int penalty, int n, vector<int>* resWeight, vector<int>* hydWeight,
- vector<int>* vWeight);
- float percentId(vector<int>* s1, vector<int>* s2);
-
- /* Attributes */
- vector<vector<int> > profile;
-
- /* number of residues used for a window for the variable zone
- penalties */
- int vwindow;
- /* vll is the lower limit for the variable zone penalties
- (vll < pen < 1.0) */
- int vll;
-
- /* "Pascarella and Argos" residue specific gap modification
- factors. See Table 1 in the ClustalW 1994 NAR paper
- http://www.ncbi.nlm.nih.gov/pubmed/7984417
- */
- string pascarellaRes;
- vector<int> pascarellaProb;
-
- vector<vector<int> > vlut;
- static const int numLetters = 26;
- float reducedGap;
- bool nVarPen;
- bool nHydPen;
- bool nPrefPen;
- int gdist;
- int prfLength;
- int firstSeq, lastSeq;
- private:
- /* Functions */
-
- /* Attributes */
-
-};
-
-}
-#endif