Mercurial > repos > clustalomega > clustalomega
comparison clustalomega/clustal-omega-1.0.2/src/clustal-omega.h @ 1:bc707542e5de
Uploaded
author | clustalomega |
---|---|
date | Thu, 21 Jul 2011 13:35:08 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:ff1768533a07 | 1:bc707542e5de |
---|---|
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 |