00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef CLUSTALO_H
00022 #define CLUSTALO_H
00023
00024
00025
00026 #ifdef HAVE_OPENMP
00027 #include <omp.h>
00028 #endif
00029
00030 #include "clustal-omega-config.h"
00031
00032
00033
00034
00035
00036
00037 #include "hhalign/general.h"
00038 #include "hhalign/hhfunc.h"
00039
00040
00041
00042 #include "clustal/log.h"
00043 #include "clustal/util.h"
00044 #include "clustal/symmatrix.h"
00045 #include "clustal/tree.h"
00046 #include "clustal/seq.h"
00047 #include "clustal/mbed.h"
00048 #include "clustal/weights.h"
00049 #include "clustal/pair_dist.h"
00050 #include "clustal/hhalign_wrapper.h"
00051
00052
00053
00054 #define CLUSTERING_UNKNOWN 0
00055 #define CLUSTERING_UPGMA 1
00056
00057
00058
00059
00060
00061 #define USE_WEIGHTS 0
00062
00063 extern int iNumberOfThreads;
00064
00065
00072 typedef struct {
00073
00074
00075 bool bAutoOptions;
00076
00077
00078
00080 char *pcDistmatInfile;
00082 char *pcDistmatOutfile;
00083
00084
00085
00087 int iClusteringType;
00089 int iPairDistType;
00091 bool bUseMbed;
00093 bool bUseMbedForIteration;
00095 char *pcGuidetreeOutfile;
00097 char *pcGuidetreeInfile;
00098
00099
00100
00102 char **ppcHMMInput;
00105 int iHMMInputFiles;
00106
00107
00108
00110 int iNumIterations;
00112 bool bIterationsAuto;
00114 int iMaxHMMIterations;
00116 int iMaxGuidetreeIterations;
00117
00118 hhalign_para rHhalignPara;
00119
00120
00121
00122
00123 } opts_t;
00124
00125
00126
00127 extern void
00128 PrintLongVersion(char *pcStr, int iSize);
00129
00130 extern void
00131 SetDefaultAlnOpts(opts_t *opts);
00132
00133 extern void
00134 FreeAlnOpts(opts_t *aln_opts);
00135
00136 extern void
00137 AlnOptsLogicCheck(opts_t *opts);
00138
00139 extern void
00140 PrintAlnOpts(FILE *prFile, opts_t *opts);
00141
00142 extern void
00143 InitClustalOmega(int iNumThreadsToUse);
00144
00145 extern void
00146 SequentialAlignmentOrder(int **piOrderLR_p, int iNumSeq);
00147
00148 extern int
00149 AlignmentOrder(int **piOrderLR_p, double **pdSeqWeights_p, mseq_t *prMSeq,
00150 int iPairDistType, char *pcDistmatInfile, char *pcDistmatOutfile,
00151 int iClusteringType, char *pcGuidetreeInfile, char *pcGuidetreeOutfile,
00152 bool bUseMBed);
00153
00154 extern int
00155 Align(mseq_t *prMSeq,
00156 mseq_t *prMSeqProfile,
00157 opts_t *prOpts);
00158
00159 extern int
00160 AlignProfiles(mseq_t *prMSeqProfile1,
00161 mseq_t *prMSeqProfile2, hhalign_para rHhalignPara);
00162
00163 #endif