1
|
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"
|
|
50 #include "clustal/hhalign_wrapper.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
|
|
66 /** user/commandline options
|
|
67 *
|
|
68 * changes here will have to be reflected in ParseCommandLine()
|
|
69 * and during setup of the default opts
|
|
70 *
|
|
71 */
|
|
72 typedef struct {
|
|
73 /* auto: Clustal (know what) is good for you
|
|
74 */
|
|
75 bool bAutoOptions;
|
|
76
|
|
77 /* Distance matrix
|
|
78 */
|
|
79 /** distance matrix input file */
|
|
80 char *pcDistmatInfile;
|
|
81 /** distance matrix output file */
|
|
82 char *pcDistmatOutfile;
|
|
83
|
|
84 /* Clustering / guide-tree
|
|
85 */
|
|
86 /** clustering type (from cmdline arg) */
|
|
87 int iClusteringType;
|
|
88 /** pairwise distance method */
|
|
89 int iPairDistType;
|
|
90 /** use mbed-like clustering */
|
|
91 bool bUseMbed;
|
|
92 /** use mbed-like clustering also during iteration */
|
|
93 bool bUseMbedForIteration;
|
|
94 /** guidetree output file */
|
|
95 char *pcGuidetreeOutfile;
|
|
96 /** guidetree input file */
|
|
97 char *pcGuidetreeInfile;
|
|
98
|
|
99 /* HMMs
|
|
100 */
|
|
101 /** HMM input files. index range: 0..iHMMInputFiles */
|
|
102 char **ppcHMMInput;
|
|
103 /** number of provided HMM input files. not really a user
|
|
104 option but need for ppcHMMInput */
|
|
105 int iHMMInputFiles;
|
|
106
|
|
107 /* Iteration
|
|
108 */
|
|
109 /** number of iterations */
|
|
110 int iNumIterations;
|
|
111 /** determine number of iterations automatically */
|
|
112 bool bIterationsAuto;
|
|
113 /** maximum number of hmm iterations */
|
|
114 int iMaxHMMIterations;
|
|
115 /** max number of guidetree iterations */
|
|
116 int iMaxGuidetreeIterations;
|
|
117
|
|
118 /** max MAC RAM (maximum amount of RAM set aside for MAC algorithm) */
|
|
119 int iMacRam; /* FS, r240 -> */
|
|
120
|
|
121 /* changes here will have to be reflected in FreeAlnOpts(),
|
|
122 * SetDefaultAlnOpts(), AlnOptsLogicCheck() etc
|
|
123 */
|
|
124 } opts_t;
|
|
125
|
|
126
|
|
127
|
|
128
|
|
129
|
|
130 extern void
|
|
131 PrintLongVersion(char *pcStr, int iSize);
|
|
132
|
|
133 extern void
|
|
134 SetDefaultAlnOpts(opts_t *opts);
|
|
135
|
|
136 extern void
|
|
137 FreeAlnOpts(opts_t *aln_opts);
|
|
138
|
|
139 extern void
|
|
140 AlnOptsLogicCheck(opts_t *opts);
|
|
141
|
|
142 extern void
|
|
143 PrintAlnOpts(FILE *prFile, opts_t *opts);
|
|
144
|
|
145 extern void
|
|
146 InitClustalOmega(int iNumThreadsToUse);
|
|
147
|
|
148 extern void
|
|
149 SequentialAlignmentOrder(int **piOrderLR_p, int iNumSeq);
|
|
150
|
|
151 extern int
|
|
152 AlignmentOrder(int **piOrderLR_p, double **pdSeqWeights_p, mseq_t *prMSeq,
|
|
153 int iPairDistType, char *pcDistmatInfile, char *pcDistmatOutfile,
|
|
154 int iClusteringType, char *pcGuidetreeInfile, char *pcGuidetreeOutfile,
|
|
155 bool bUseMBed);
|
|
156
|
|
157 extern int
|
|
158 Align(mseq_t *prMSeq,
|
|
159 mseq_t *prMSeqProfile,
|
|
160 opts_t *prOpts,
|
|
161 hhalign_para rHhalignPara);
|
|
162
|
|
163 extern int
|
|
164 AlignProfiles(mseq_t *prMSeqProfile1,
|
|
165 mseq_t *prMSeqProfile2, hhalign_para rHhalignPara);
|
|
166
|
|
167 #endif
|