18 #ifndef __AlignmentBase_H__
19 #define __AlignmentBase_H__
25 namespace Victor {
namespace Align2{
56 unsigned int size()
const;
80 virtual string getTemplate(
unsigned int index = 0)
const;
83 virtual char getTemplatePos(
unsigned int p,
unsigned int index = 0)
const;
96 virtual bool isConserved(
unsigned int p,
unsigned int index = 9999)
const;
99 virtual bool isInsertion(
unsigned int p,
unsigned int index = 0)
const;
102 virtual bool isDeletion(
unsigned int p)
const;
105 virtual bool isGap(
unsigned int p,
unsigned int index = 0)
const;
118 vector<int> CeTemplate, vector<int> seqTarget, vector<int>
seqTemplate);
121 static void saveFasta(
string t,
string tName, ostream &output);
124 virtual void saveFasta(ostream &output)
const;
127 static void saveClustal(
string t,
string tName, ostream &output,
143 virtual void setTarget(
string t,
string tName =
"target");
152 virtual void setTemplate(
string t,
string tName =
"template");
156 unsigned int index = 0);
159 virtual void swapTemplate(
unsigned int index1,
unsigned int index2);
195 static unsigned int getOrigPos(
const string &s,
unsigned int p);
198 static unsigned int getNewPos(
const string &s,
unsigned int p);
201 vector<string>
getTokens(
const string &text);
204 string deleteChar(
const string &s,
unsigned int n);
252 ERROR(
"AlignmentBase::getTargetPos() Invalid position requested.", exception);
264 ERROR(
"AlignmentBase::getTemplateName() Invalid template requested.", exception);
271 ERROR(
"AlignmentBase::getTemplate() Invalid template requested.", exception);
278 ERROR(
"AlignmentBase::getTemplatePos() Invalid template requested.", exception);
280 ERROR(
"AlignmentBase::getTemplatePos() Invalid position requested.", exception);
291 output <<
">" << tName <<
"\n";
293 for (
unsigned int i = 0; i < t.length(); i++) {
294 if ((i != 0) && ((i % 60) == 0))
307 for (
int i = 0; i < (17 -
static_cast<int> (tName.length())); ++i)
310 unsigned int max = ((from + 60) < t.length()) ? from + 60 : t.length();
311 for (
unsigned int i = from; i < max; i++)
324 ERROR(
"AlignmentBase::setTarget() Target length does not match template.", exception);
332 ERROR(
"AlignmentBase::getTargetPos() Invalid position requested.", exception);
344 ERROR(
"AlignmentBase::getTemplatePos() Invalid template requested.", expection);
346 ERROR(
"AlignmentBase::getTemplatePos() Invalid position requested.", exception);
virtual double calculatePairwiseIdentity(const string &seq1, const string &seq2)
Calculate pairwise identity between seq1 and seq2.
Definition: AlignmentBase.cc:73
virtual string getTarget() const
Return target sequence.
Definition: AlignmentBase.h:245
unsigned int getLength()
Return length of alignment.
Definition: AlignmentBase.h:235
vector< string > seqTemplate
Template sequences.
Definition: AlignmentBase.h:214
virtual bool isGap(unsigned int p, unsigned int index=0) const
Check for gap at position p.
Definition: AlignmentBase.cc:186
vector< string > getTokens(const string &text)
Return vector of words of a line of text.
Definition: AlignmentBase.cc:794
virtual int getTemplateAminoAcidOffset(unsigned int index=0) const
Return template index aa offset (counting from zero).
Definition: AlignmentBase.h:285
AlignmentBase & operator=(const AlignmentBase &orig)
Assignment operator.
Definition: AlignmentBase.cc:48
virtual void setTemplatePos(unsigned int p, char res, unsigned int index=0)
Set template index residue to res.
Definition: AlignmentBase.h:342
virtual vector< int > shiftMatchSubset(vector< int > inputVector, int newStartPos)
Return a new vector with positions shifted, depending on new position.
Definition: AlignmentBase.cc:235
vector< int > startAaTemplates
Start templates aa offsets.
Definition: AlignmentBase.h:216
void insertCharacter(unsigned int p, char c)
Insert character c in target and all templates at position p.
Definition: AlignmentBase.cc:377
AlignmentBase()
Default constructor.
Definition: AlignmentBase.cc:29
virtual int getTargetAminoAcidOffset() const
Return target aa offset (only needed for alignment, default = 0).
Definition: AlignmentBase.h:257
static unsigned int getNewPos(const string &s, unsigned int p)
Return position of original index if '-' are now present.
Definition: AlignmentBase.cc:771
virtual void setTargetAminoAcidOffset(int orig)
Set target aa offset (only needed for alignment, default = 0).
Definition: AlignmentBase.h:337
virtual AlignmentBase * newCopy()
Construct a new "deep copy" of this object.
Definition: AlignmentBase.cc:341
void insertDash(unsigned int p)
Insert character '-' in target and all templates at position p.
Definition: AlignmentBase.cc:390
string target
Target sequence.
Definition: AlignmentBase.h:213
virtual char getTemplatePos(unsigned int p, unsigned int index=0) const
Return template index position p.
Definition: AlignmentBase.h:276
virtual string getTemplate(unsigned int index=0) const
Return template index sequence.
Definition: AlignmentBase.h:269
virtual void addAlignment(const AlignmentBase &other)
Combine two multiple sequence alignments of same target.
Definition: AlignmentBase.cc:463
virtual vector< vector< int > > getMatchSubset()
Definition: AlignmentBase.cc:200
string deleteChar(const string &s, unsigned int n)
Delete n-th character.
Definition: AlignmentBase.cc:819
virtual void copy(const AlignmentBase &orig)
Copy orig object to this object ("deep copy").
Definition: AlignmentBase.cc:322
virtual void setTarget(string t, string tName="target")
Set target to t.
Definition: AlignmentBase.h:321
Abstract base class for all sorts of alignments.
Definition: AlignmentBase.h:32
static string getPureSequence(const string &s)
Return sequence without '-' characters.
Definition: AlignmentBase.cc:721
virtual void setTemplate(string t, string tName="template")
Set template to t.
Definition: AlignmentBase.cc:351
static unsigned int getOrigPos(const string &s, unsigned int p)
Return position of index if '-' would not be there (counting from zero).
Definition: AlignmentBase.cc:741
int startAaTarget
Start target aa offset.
Definition: AlignmentBase.h:215
void purgeTargetInsertions()
Delete all gaps from target and all templates.
Definition: AlignmentBase.cc:411
virtual void setTargetPos(unsigned int p, char res)
Set target residue to res.
Definition: AlignmentBase.h:330
unsigned int size() const
Return size of alignment.
Definition: AlignmentBase.h:230
static void saveClustal(string t, string tName, ostream &output, unsigned int from)
Save single line in CLUSTAL format.
Definition: AlignmentBase.h:303
virtual double calculateIdentity()
Calculate overall identity.
Definition: AlignmentBase.cc:100
virtual void clearAlignment()
Clear alignment data.
Definition: AlignmentBase.h:364
vector< string > seqTemplateName
Template names.
Definition: AlignmentBase.h:212
string targetName
Target name.
Definition: AlignmentBase.h:211
virtual bool isInsertion(unsigned int p, unsigned int index=0) const
Check for insertion at position p.
Definition: AlignmentBase.cc:155
unsigned int getSequenceLength(const string &seq)
Return length of seq.
Definition: AlignmentBase.cc:63
virtual string getTemplateName(unsigned int index=0) const
Return template index name.
Definition: AlignmentBase.h:262
virtual void clearTemplate()
Clear template data.
Definition: AlignmentBase.h:357
virtual string getTargetName() const
Return target name.
Definition: AlignmentBase.h:240
virtual ~AlignmentBase()
Destructor.
Definition: AlignmentBase.cc:37
virtual bool isDeletion(unsigned int p) const
Check for deletion at position p.
Definition: AlignmentBase.cc:170
virtual void setTemplateAminoAcidOffset(unsigned int index, int val)
Set template index aa offset (counting from zero).
Definition: AlignmentBase.h:351
virtual void swapTemplate(unsigned int index1, unsigned int index2)
Swap templates index1 and index2.
Definition: AlignmentBase.cc:364
virtual bool isConserved(unsigned int p, unsigned int index=9999) const
Check for conservation. If index is 9999 check on all templates.
Definition: AlignmentBase.cc:134
void deletePos(unsigned int p)
Delete character (or '-') from target and all templates at position p.
Definition: AlignmentBase.cc:398
virtual char getTargetPos(unsigned int p) const
Return target position p.
Definition: AlignmentBase.h:250
virtual double matchPositionVector(vector< int > CeTarget, vector< int > CeTemplate, vector< int > seqTarget, vector< int > seqTemplate)
Companion class to the previous.
Definition: AlignmentBase.cc:262
virtual void cutTemplate(unsigned int index)
Remove all templates below index.
Definition: AlignmentBase.cc:426
static void saveFasta(string t, string tName, ostream &output)
Save single sequence in FASTA format.
Definition: AlignmentBase.h:290