Clustal Omega  1.2.0
seq.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Clustal Omega - Multiple sequence alignment
3  *
4  * Copyright (C) 2010 University College Dublin
5  *
6  * Clustal-Omega is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of the
9  * License, or (at your option) any later version.
10  *
11  * This file is part of Clustal-Omega.
12  *
13  ********************************************************************/
14 
15 /*
16  * RCS $Id: seq.h 283 2013-06-10 17:42:14Z fabian $
17  */
18 
19 #ifndef CLUSTALO_SEQ_H
20 #define CLUSTALO_SEQ_H
21 
22 #include "squid/squid.h"
23 
24 #include "util.h"
25 
26 
32 #define SEQTYPE_UNKNOWN kOtherSeq
33 #define SEQTYPE_DNA kDNA
34 #define SEQTYPE_RNA kRNA
35 #define SEQTYPE_PROTEIN kAmino
36 
37 /* Alphabets are defined in squid.h: AMINO_ALPHABET, DNA_ALPHABET,
38  * RNA_ALPHABET (all uppercase)
39  */
40 #define AMINOACID_ANY 'X'
41 #define NUCLEOTIDE_ANY 'N'
42 
47 typedef struct {
48  int nseqs;
49  int seqtype;
50  char *filename;
51  bool aligned;
57  char **seq;
58 
63  char **orig_seq;
64 
67  int *tree_order;
68 
113  SQINFO *sqinfo;
114 } mseq_t;
115 
116 extern void
117 AliStat(mseq_t *prMSeq, bool bSampling, bool bReportAll);
118 
119 extern void
120 AddSeq(mseq_t **prMSeqDest_p, char *pcSeqName, char *pcSeqRes);
121 
122 extern void
123 SeqSwap(mseq_t *mseq, int i, int j);
124 
125 extern void
126 DealignMSeq(mseq_t *mseq);
127 
128 extern const char *
129 SeqTypeToStr(int seqtype);
130 
131 extern int
132 ReadSequences(mseq_t *prMSeq_p, char *pcSeqFile,
133  int iSeqType, int iSeqFmt, bool bIsProfile,
134  int iMaxNumSeq, int iMaxSeqLen);
135 
136 extern void
137 NewMSeq(mseq_t **mseq);
138 
139 extern void
140 FreeMSeq(mseq_t **mseq);
141 
142 extern void
143 CopyMSeq(mseq_t **prMSeqDest_p, mseq_t *prMSeqSrc);
144 
145 extern void
146 LogSqInfo(SQINFO *sqinfo);
147 
148 extern int
149 FindSeqName(char *seqname, mseq_t *mseq);
150 
151 extern int
152 WriteAlignment(mseq_t *mseq, const char *aln_outfile, int msafile_format, int iWrap, bool bResno);
153 
154 extern void
155 DealignSeq(char *seq);
156 
157 extern void
158 ShuffleMSeq(mseq_t *prMSeq);
159 
160 extern void
161 SortMSeqByLength(mseq_t *prMSeq, const char cOrder);
162 
163 void
164 JoinMSeqs(mseq_t **prMSeqDest_p, mseq_t *prMSeqToAdd);
165 
166 bool
167 SeqsAreAligned(mseq_t *prMSeq, bool bIsProfile);
168 
169 #endif