diff clustalomega/clustal-omega-0.2.0/src/clustal-omega.h @ 0:ff1768533a07

Migrated tool version 0.2 from old tool shed archive to new tool shed repository
author clustalomega
date Tue, 07 Jun 2011 17:04:25 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clustalomega/clustal-omega-0.2.0/src/clustal-omega.h	Tue Jun 07 17:04:25 2011 -0400
@@ -0,0 +1,167 @@
+/* -*- mode: c; tab-width: 4; c-basic-offset: 4;  indent-tabs-mode: nil -*- */
+
+/*********************************************************************
+ * Clustal Omega - Multiple sequence alignment
+ *
+ * Copyright (C) 2010 University College Dublin
+ *
+ * Clustal-Omega is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is part of Clustal-Omega.
+ *
+ ********************************************************************/
+
+/*
+ *  RCS $Id: clustal-omega.h 212 2011-03-10 15:09:46Z andreas $
+ */
+
+#ifndef CLUSTALO_H
+#define CLUSTALO_H
+
+
+
+#ifdef HAVE_OPENMP
+#include <omp.h>
+#endif
+
+#include "clustal-omega-config.h"
+
+/* the following needs to be kept in sync with library_include_HEADERS of all
+ * subdir Makefile.am's 
+ */
+
+/* hhalign */
+#include "hhalign/general.h"
+#include "hhalign/hhfunc.h"
+
+
+/* clustal */
+#include "clustal/log.h"
+#include "clustal/util.h"
+#include "clustal/symmatrix.h"
+#include "clustal/tree.h"
+#include "clustal/seq.h"
+#include "clustal/mbed.h"
+#include "clustal/weights.h"
+#include "clustal/pair_dist.h"
+#include "clustal/hhalign_wrapper.h"
+
+
+
+#define CLUSTERING_UNKNOWN 0
+#define CLUSTERING_UPGMA 1
+
+/* weights will be computed if 1. but are not really used for now and they
+ * might slow things down. also, mbed's screws up branch lengths which will
+ * have a negative effect on weights 
+*/
+#define USE_WEIGHTS 0
+
+extern int iNumberOfThreads;
+
+
+/** user/commandline options
+ *
+ * changes here will have to be reflected in ParseCommandLine()
+ * and during setup of the default opts
+ *
+ */
+typedef struct {
+    /* auto: Clustal (know what) is good for you
+     */
+    bool bAutoOptions;
+
+    /* Distance matrix
+     */
+    /** distance matrix input file */
+    char *pcDistmatInfile;
+    /** distance matrix output file */
+    char *pcDistmatOutfile;
+    
+    /* Clustering / guide-tree
+     */
+    /** clustering type (from cmdline arg) */
+    int iClusteringType;
+    /** pairwise distance method */
+    int iPairDistType;
+    /** use mbed-like clustering */
+    bool bUseMbed;
+    /** use mbed-like clustering also during iteration */
+    bool bUseMbedForIteration;
+    /** guidetree output file */
+    char *pcGuidetreeOutfile;
+    /** guidetree input file */
+    char *pcGuidetreeInfile;
+    
+    /* HMMs
+     */
+    /** HMM input files. index range: 0..iHMMInputFiles */
+    char **ppcHMMInput;
+    /** number of provided HMM input files. not really a user
+       option but need for ppcHMMInput */
+    int iHMMInputFiles;
+
+    /* Iteration
+     */
+    /** number of iterations */
+    int iNumIterations;
+    /** determine number of iterations automatically */
+	bool bIterationsAuto;
+    /** maximum number of hmm iterations */
+    int iMaxHMMIterations;
+    /** max number of guidetree iterations */
+	int iMaxGuidetreeIterations;
+    
+    /** max MAC RAM (maximum amount of RAM set aside for MAC algorithm) */
+    int iMacRam; /* FS, r240 -> */
+
+    /* changes here will have to be reflected in FreeAlnOpts(),
+	 * SetDefaultAlnOpts(), AlnOptsLogicCheck() etc 
+	 */
+} opts_t;
+
+
+
+
+
+extern void 
+PrintLongVersion(char *pcStr, int iSize);
+
+extern void
+SetDefaultAlnOpts(opts_t *opts);
+
+extern void
+FreeAlnOpts(opts_t *aln_opts);
+
+extern void
+AlnOptsLogicCheck(opts_t *opts);
+
+extern void
+PrintAlnOpts(FILE *prFile, opts_t *opts);
+
+extern void
+InitClustalOmega(int iNumThreadsToUse);
+
+extern void
+SequentialAlignmentOrder(int **piOrderLR_p, int iNumSeq);
+
+extern int
+AlignmentOrder(int **piOrderLR_p, double **pdSeqWeights_p, mseq_t *prMSeq,
+               int iPairDistType, char *pcDistmatInfile, char *pcDistmatOutfile,
+               int iClusteringType, char *pcGuidetreeInfile, char *pcGuidetreeOutfile,
+               bool bUseMBed);
+
+extern int
+Align(mseq_t *prMSeq, 
+      mseq_t *prMSeqProfile,
+	  opts_t *prOpts,
+      hhalign_para rHhalignPara);
+
+extern int
+AlignProfiles(mseq_t *prMSeqProfile1, 
+			  mseq_t *prMSeqProfile2, hhalign_para rHhalignPara);
+
+#endif