Clustal Omega  1.1.0
clustal-omega.h
Go to the documentation of this file.
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: clustal-omega.h 212 2011-03-10 15:09:46Z andreas $
19  */
20 
21 #ifndef CLUSTALO_H
22 #define CLUSTALO_H
23 
24 
25 
26 #ifdef HAVE_OPENMP
27 #include <omp.h>
28 #endif
29 
30 #include "clustal-omega-config.h"
31 
32 /* the following needs to be kept in sync with library_include_HEADERS of all
33  * subdir Makefile.am's
34  */
35 
36 /* hhalign */
37 #include "hhalign/general.h"
38 #include "hhalign/hhfunc.h"
39 
40 
41 /* clustal */
42 #include "clustal/log.h"
43 #include "clustal/util.h"
44 #include "clustal/symmatrix.h"
45 #include "clustal/tree.h"
46 #include "clustal/seq.h"
47 #include "clustal/mbed.h"
48 #include "clustal/weights.h"
49 #include "clustal/pair_dist.h"
51 
52 
53 
54 #define CLUSTERING_UNKNOWN 0
55 #define CLUSTERING_UPGMA 1
56 
57 /* weights will be computed if 1. but are not really used for now and they
58  * might slow things down. also, mbed's screws up branch lengths which will
59  * have a negative effect on weights
60 */
61 #define USE_WEIGHTS 0
62 
63 extern int iNumberOfThreads;
64 
65 
72 typedef struct {
73  /* auto: Clustal (know what) is good for you
74  */
76 
77  /* Distance matrix
78  */
83 
84  /* Clustering / guide-tree
85  */
91  bool bUseMbed;
98 
99  /* HMMs
100  */
102  char **ppcHMMInput;
106 
107  /* Iteration
108  */
117 
118  hhalign_para rHhalignPara;
119 
120  /* changes here will have to be reflected in FreeAlnOpts(),
121  * SetDefaultAlnOpts(), AlnOptsLogicCheck() etc
122  */
123 } opts_t;
124 
125 
126 
127 extern void
128 PrintLongVersion(char *pcStr, int iSize);
129 
130 extern void
132 
133 extern void
134 FreeAlnOpts(opts_t *aln_opts);
135 
136 extern void
138 
139 extern void
140 PrintAlnOpts(FILE *prFile, opts_t *opts);
141 
142 extern void
143 InitClustalOmega(int iNumThreadsToUse);
144 
145 extern void
146 SequentialAlignmentOrder(int **piOrderLR_p, int iNumSeq);
147 
148 extern int
149 AlignmentOrder(int **piOrderLR_p, double **pdSeqWeights_p, mseq_t *prMSeq,
150  int iPairDistType, char *pcDistmatInfile, char *pcDistmatOutfile,
151  int iClusteringType, char *pcGuidetreeInfile, char *pcGuidetreeOutfile,
152  bool bUseMBed);
153 
154 extern int
155 Align(mseq_t *prMSeq,
156  mseq_t *prMSeqProfile,
157  opts_t *prOpts);
158 
159 extern int
160 AlignProfiles(mseq_t *prMSeqProfile1,
161  mseq_t *prMSeqProfile2, hhalign_para rHhalignPara);
162 
163 #endif