src/clustal-omega.c File Reference

#include <assert.h>
#include "clustal-omega.h"
#include "clustal-omega-config.h"
#include "hhalign/general.h"
#include "hhalign/hhfunc.h"
#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"
Include dependency graph for clustal-omega.c:
This graph shows which files directly or indirectly include this file:

Defines

#define INDIRECT_HMM   0
#define USEHMMER   1
#define USEHHMAKE   (!USEHMMER)
#define SHUFFLE_INPUT_SEQ_ORDER   0
#define SORT_INPUT_SEQS   0
#define PRINT_TAIL   5

Functions

void PrintLongVersion (char *pcStr, int iSize)
 Print Long version information to pre-allocated char.
void FreeAlnOpts (opts_t *prAlnOpts)
 free aln opts members
void SetDefaultAlnOpts (opts_t *prOpts)
 Sets members of given user opts struct to default values.
void AlnOptsLogicCheck (opts_t *prOpts)
 Check logic of parsed user options. Will exit (call Log(&rLog, LOG_FATAL, )) on Fatal logic error.
void PrintAlnOpts (FILE *prFile, opts_t *prOpts)
 FIXME doc.
int HmmerVersion ()
 Returns major version of HMMER. Whichever hmmbuild version is found first in your PATH will be used.
int AlnToHHMFile (mseq_t *prMSeq, char *pcHMMOut)
 Create a HHM file from aligned sequences.
int AlnToHMMFile (mseq_t *prMSeq, const char *pcHMMOut)
 Create a HMM file from aligned sequences.
int AlnToHMM (hmm_light *prHMM, mseq_t *prMSeq)
 Convert a multiple sequence structure into a HMM.
void InitClustalOmega (int iNumThreadsRequested)
 FIXME.
void SequentialAlignmentOrder (int **piOrderLR_p, int iNumSeq)
 Defines an alignment order, which adds sequences sequentially, i.e. one at a time starting with seq 1 & 2.
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)
 Defines the alignment order by calculating a guide tree. In a first-step pairwise distances will be calculated (or read from a file). In a second step those distances will be clustered and a guide-tree created. Steps 1 and 2 will be skipped if a guide-tree file was given, in which case the guide-tree will be just read from the file.
void SetAutoOptions (opts_t *prOpts, int iNumSeq)
 Set some options automatically based on number of sequences. Might overwrite some user-set options.
int Align (mseq_t *prMSeq, mseq_t *prMSeqProfile, opts_t *prOpts)
 The main alignment function which wraps everything else.
int AlignProfiles (mseq_t *prMSeqProfile1, mseq_t *prMSeqProfile2, hhalign_para rHhalignPara)
 Align two profiles, ie two sets of prealigned sequences. Already aligned columns won't be changed.

Variables

int iNumberOfThreads

Define Documentation

#define INDIRECT_HMM   0
#define PRINT_TAIL   5
#define SHUFFLE_INPUT_SEQ_ORDER   0
#define SORT_INPUT_SEQS   0
#define USEHHMAKE   (!USEHMMER)
#define USEHMMER   1

Function Documentation

int Align ( mseq_t prMSeq,
mseq_t prMSeqProfile,
opts_t prOpts 
)

The main alignment function which wraps everything else.

Parameters:
[out] prMSeq *the* multiple sequences structure
[in] prMSeqProfile optional profile to align against
[in] prOpts alignment options to use
Returns:
0 on success, -1 on failure

Warning:
old structure used to be initialised like this: hmm_light rHMM = {0};

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 
)

Defines the alignment order by calculating a guide tree. In a first-step pairwise distances will be calculated (or read from a file). In a second step those distances will be clustered and a guide-tree created. Steps 1 and 2 will be skipped if a guide-tree file was given, in which case the guide-tree will be just read from the file.

Parameters:
[out] piOrderLR_p order in which nodes/profiles are to be merged/aligned
[out] pdSeqWeights_p Sequence weights
[out] pdSeqWeights_p Sequence weights
[in] prMSeq The sequences from which the alignment order is to be calculated
[in] iPairDistType Method of pairwise distance comparison
[in] pcDistmatInfile If not NULL distances will be read from this file instead of being calculated
[in] pcDistmatOutfile If not NULL computed pairwise distances will be written to this file
[in] iClusteringType Clustering method to be used to cluster the pairwise distances
[in] pcGuidetreeInfile If not NULL guidetree will be read from this file. Skips pairwise distance and guidetree computation
[in] pcGuidetreeOutfile If not NULL computed guidetree will be written to this file
[in] bUseMbed If TRUE, fast mBed guidetree computation will be employed
Returns:
Non-zero on error
int AlignProfiles ( mseq_t prMSeqProfile1,
mseq_t prMSeqProfile2,
hhalign_para  rHhalignPara 
)

Align two profiles, ie two sets of prealigned sequences. Already aligned columns won't be changed.

Parameters:
[out] prMSeqProfile1 First profile/aligned set of sequences. Merged alignment will be found in here.
[in] prMSeqProfile2 First profile/aligned set of sequences
[in] rHhalignPara FIXME
Returns:
0 on success, -1 on failure
void AlnOptsLogicCheck ( opts_t prOpts  ) 

Check logic of parsed user options. Will exit (call Log(&rLog, LOG_FATAL, )) on Fatal logic error.

Parameters:
[in] prOpts Already parsed user options
int AlnToHHMFile ( mseq_t prMSeq,
char *  pcHMMOut 
)

Create a HHM file from aligned sequences.

Warning:
Should be eliminated in the future as building routine should not create intermediate files
Parameters:
[in] prMSeq Aligned mseq_t
[in] pcHMMOut HMM output file name
Returns:
Non-zero on error
int AlnToHMM ( hmm_light *  prHMM,
mseq_t prMSeq 
)

Convert a multiple sequence structure into a HMM.

Parameters:
[out] prHMM Pointer to preallocted HMM which will be set here
[in] prMSeq Pointer to an alignment
Returns:
0 on error, non-0 otherwise
See also:
AlnToHMMFile()

Warning:
the following probably won't work on windows: missing /tmp/. Should be ok on Cygwin though

int AlnToHMMFile ( mseq_t prMSeq,
const char *  pcHMMOut 
)

Create a HMM file from aligned sequences.

Warning:
Should be replaced in the future by some internal HMM building routine that does not call external programs
Parameters:
[in] prMSeq Aligned mseq_t
[in] pcHMMOut HMM output file name
Returns:
Non-zero on error
void FreeAlnOpts ( opts_t prAlnOpts  ) 

free aln opts members

int HmmerVersion (  ) 

Returns major version of HMMER. Whichever hmmbuild version is found first in your PATH will be used.

Returns:
-1 on error, major hmmer version otherwise
void InitClustalOmega ( int  iNumThreadsRequested  ) 

FIXME.

void PrintAlnOpts ( FILE *  prFile,
opts_t prOpts 
)

FIXME doc.

void PrintLongVersion ( char *  pcStr,
int  iSize 
)

Print Long version information to pre-allocated char.

Note:
short version information is equivalent to PACKAGE_VERSION
Parameters:
[out] pcStr char pointer to write to preallocated to hold iSize chars.
[in] iSize size of pcStr
void SequentialAlignmentOrder ( int **  piOrderLR_p,
int  iNumSeq 
)

Defines an alignment order, which adds sequences sequentially, i.e. one at a time starting with seq 1 & 2.

Parameters:
[out] piOrderLR_p order in which nodes/profiles are to be merged/aligned
[in] iNumSeq Number of sequences
See also:
TraverseTree()
void SetAutoOptions ( opts_t prOpts,
int  iNumSeq 
)

Set some options automatically based on number of sequences. Might overwrite some user-set options.

Parameters:
[out] prOpts Pointer to alignment options structure
[in] iNumSeq Number of sequences to align
void SetDefaultAlnOpts ( opts_t prOpts  ) 

Sets members of given user opts struct to default values.

Parameters:
[out] prOpts User opt struct to initialise

Variable Documentation

Generated on Fri Aug 31 05:32:52 2012 for Clustal Omega by  doxygen 1.6.3