+++ /dev/null
-/* -*- mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
-
-/*********************************************************************
- * Clustal Omega - Multiple sequence alignment
- *
- * Copyright (C) 2010 University College Dublin
- *
- * Clustal-Omega is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This file is part of Clustal-Omega.
- *
- ********************************************************************/
-
-/*
- * RCS $Id: hhhalfalignment.h 143 2010-10-14 13:11:14Z andreas $
- */
-
-/////////////////////////////////////////////////////////////////////////////////////
-// Class representing a2m/a3m-formatted alignment corresponding to one HMM
-/////////////////////////////////////////////////////////////////////////////////////
-
-
-class HalfAlignment
-{
-public:
- HalfAlignment(int maxseqdis=MAXSEQDIS);
- ~HalfAlignment();
-
- // Initialize HalfAlignment; create index arrays s [],l[], m[]
- void Set(char* name, char** seq_in, char** sname_in, int n_in, int L_in, int n1, int n2, int n3, int n4, int nc, int L_in2/*<--FS*/);
-
- // Free memory in HalfAlignment arrays s[][], l[][], and m[][]
- void Unset();
-
- // Align query (HalfAlignment) to template (i.e. hit) match state structure
- void AlignToTemplate(Hit& hit);
-
- // Write the a2m/a3m query alignment into alnfile
- void Print(char* outfile);
-
- // Fill in insert states following match state i
- void AddInserts(int i);
-
- // Fill up alignment with gaps '.' to generate flush end (all h[k] equal)
- void FillUpGaps();
-
- // Fill in insert states following match state i and fill up gaps with '.'
- void AddInsertsAndFillUpGaps(int i);
-
- // Add gap column '.' or character column
- void AddChar(char c);
-
- // Add match state column i as is
- void AddColumn(int i);
-
- // Add match state column i as insert state
- void AddColumnAsInsert(int i);
-
- // Build alignment in FASTA format
- void BuildFASTA();
-
- // Build alignment in A2M format
- void BuildA2M();
-
- // Build alignment in A3M format
- void BuildA3M();
-
- // Transform alignment sequences from A2M to FASTA ( lowercase to uppercase and '.' to '-')
- void ToFASTA();
-
- // Remove all characters c from template sequences
- void RemoveChars(char c);
-
-private:
- friend class FullAlignment;
-
- int n; //number of sequences in half-alignment
- char** seq; //sequences (in ASCII) in alignment
- char** sname; //names of sequences in alignment
- int nss_dssp; //index of sequence with dssp sec structure states
- int nsa_dssp; //index of sequence with dssp solvent accessiblity states
- int nss_pred; //index of sequence with predicted sec structure states
- int nss_conf; //index of sequence with prediction confidence values
- int ncons; //index of consensus sequence
-
- int pos; //After FillUpGaps() all h[k] have value pos
- int L; //number of match states in corresponding profile
- int* h; //h[k] = next position of sequence k to be written
- char** s; //s[k][h] = column h, sequence k of output alignment
- int** l; //counts non-gap residues: l[k][i] = index of last residue AT OR BEFORE match state i in seq k
- int** m; //counts positions: m[k][i] = position of match state i in string seq[k]
-/* int h[MAXSEQ]; //h[k] = next position of sequence k to be written */
-/* char* s[MAXSEQ]; //s[k][h] = column h, sequence k of output alignment */
-/* int* l[MAXSEQ]; //counts non-gap residues: l[k][i] = index of last residue AT OR BEFORE match state i in seq k */
-/* int* m[MAXSEQ]; //counts positions: m[k][i] = position of match state i in string seq[k] */
-};
-
-