1 /* $Id: compo_mode_condition.h,v 1.8 2010/03/26 14:54:33 kazimird Exp $
2  * ===========================================================================
3  *
4  *                            PUBLIC DOMAIN NOTICE
5  *               National Center for Biotechnology Information
6  *
7  *  This software/database is a "United States Government Work" under the
8  *  terms of the United States Copyright Act.  It was written as part of
9  *  the author's official duties as a United States Government employee and
10  *  thus cannot be copyrighted.  This software/database is freely available
11  *  to the public for use. The National Library of Medicine and the U.S.
12  *  Government have not placed any restriction on its use or reproduction.
13  *
14  *  Although all reasonable efforts have been taken to ensure the accuracy
15  *  and reliability of the software and data, the NLM and the U.S.
16  *  Government do not and cannot warrant the performance or results that
17  *  may be obtained by using this software or data. The NLM and the U.S.
18  *  Government disclaim all warranties, express or implied, including
19  *  warranties of performance, merchantability or fitness for any particular
20  *  purpose.
21  *
22  *  Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================*/
25 /**
26  * @file compo_mode_condition.h
27  * Declarations of functions used to choose the mode for
28  * composition-based statistics.
29  *
30  * @author Alejandro Schaffer, Yi-Kuo Yu
31  */
32 
33 #ifndef __COMPO_MODE_CONDITION__
34 #define __COMPO_MODE_CONDITION__
35 
36 #include <algo/blast/core/blast_export.h>
37 #include <algo/blast/composition_adjustment/composition_constants.h>
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 
44 /**
45  * Choose how the relative entropy should be constrained based on
46  * properties of the two sequences to be aligned.
47  *
48  * @param length1     length of the first sequence
49  * @param length2     length of the second sequence
50  * @param probArray1  arrays of probabilities for the first sequence, in
51  *                    a 20 letter amino-acid alphabet
52  * @param probArray2  arrays of probabilities for the other sequence
53  * @param matrixName  name of the scoring matrix
54  * @param composition_adjust_mode   requested mode of composition adjustment
55  */
56 NCBI_XBLAST_EXPORT
57 EMatrixAdjustRule
58 Blast_ChooseMatrixAdjustRule(int length1, int length2,
59                              const double * probArray1,
60                              const double * probArray2,
61                              const char * matrixName,
62                              ECompoAdjustModes composition_adjust_mode);
63 
64 #ifdef __cplusplus
65 }
66 #endif
67 
68 #endif
69