Clustal Omega
1.0.3
|
00001 /* -*- mode: c; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */ 00002 00003 /********************************************************************* 00004 * Clustal Omega - Multiple sequence alignment 00005 * 00006 * Copyright (C) 2010 University College Dublin 00007 * 00008 * Clustal-Omega is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU General Public License as 00010 * published by the Free Software Foundation; either version 2 of the 00011 * License, or (at your option) any later version. 00012 * 00013 * This file is part of Clustal-Omega. 00014 * 00015 ********************************************************************/ 00016 00017 /* 00018 * RCS $Id: clustal-omega.h 212 2011-03-10 15:09:46Z andreas $ 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 /* the following needs to be kept in sync with library_include_HEADERS of all 00033 * subdir Makefile.am's 00034 */ 00035 00036 /* hhalign */ 00037 #include "hhalign/general.h" 00038 #include "hhalign/hhfunc.h" 00039 00040 00041 /* clustal */ 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 /* weights will be computed if 1. but are not really used for now and they 00058 * might slow things down. also, mbed's screws up branch lengths which will 00059 * have a negative effect on weights 00060 */ 00061 #define USE_WEIGHTS 0 00062 00063 extern int iNumberOfThreads; 00064 00065 00072 typedef struct { 00073 /* auto: Clustal (know what) is good for you 00074 */ 00075 bool bAutoOptions; 00076 00077 /* Distance matrix 00078 */ 00080 char *pcDistmatInfile; 00082 char *pcDistmatOutfile; 00083 00084 /* Clustering / guide-tree 00085 */ 00087 int iClusteringType; 00089 int iPairDistType; 00091 bool bUseMbed; 00093 bool bUseMbedForIteration; 00095 char *pcGuidetreeOutfile; 00097 char *pcGuidetreeInfile; 00098 00099 /* HMMs 00100 */ 00102 char **ppcHMMInput; 00105 int iHMMInputFiles; 00106 00107 /* Iteration 00108 */ 00110 int iNumIterations; 00112 bool bIterationsAuto; 00114 int iMaxHMMIterations; 00116 int iMaxGuidetreeIterations; 00117 00119 int iMacRam; /* FS, r240 -> */ 00120 00121 /* changes here will have to be reflected in FreeAlnOpts(), 00122 * SetDefaultAlnOpts(), AlnOptsLogicCheck() etc 00123 */ 00124 } opts_t; 00125 00126 00127 00128 00129 00130 extern void 00131 PrintLongVersion(char *pcStr, int iSize); 00132 00133 extern void 00134 SetDefaultAlnOpts(opts_t *opts); 00135 00136 extern void 00137 FreeAlnOpts(opts_t *aln_opts); 00138 00139 extern void 00140 AlnOptsLogicCheck(opts_t *opts); 00141 00142 extern void 00143 PrintAlnOpts(FILE *prFile, opts_t *opts); 00144 00145 extern void 00146 InitClustalOmega(int iNumThreadsToUse); 00147 00148 extern void 00149 SequentialAlignmentOrder(int **piOrderLR_p, int iNumSeq); 00150 00151 extern int 00152 AlignmentOrder(int **piOrderLR_p, double **pdSeqWeights_p, mseq_t *prMSeq, 00153 int iPairDistType, char *pcDistmatInfile, char *pcDistmatOutfile, 00154 int iClusteringType, char *pcGuidetreeInfile, char *pcGuidetreeOutfile, 00155 bool bUseMBed); 00156 00157 extern int 00158 Align(mseq_t *prMSeq, 00159 mseq_t *prMSeqProfile, 00160 opts_t *prOpts, 00161 hhalign_para rHhalignPara); 00162 00163 extern int 00164 AlignProfiles(mseq_t *prMSeqProfile1, 00165 mseq_t *prMSeqProfile2, hhalign_para rHhalignPara); 00166 00167 #endif