pf.h
2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef PFUNC_PF_H__
#define PFUNC_PF_H__
#include "pairsPr.h"
#include "sumexp.h"
#include "sumexp_pk.h"
#ifdef __cplusplus
extern "C" {
#endif
/*
pfuncFull: Calculates the partition function.
Arguments:
InputSeq is the sequence, including '+' characters to demarcate strand breaks.
Complexity = 3 is the multi-stranded, pseudoknot-free method [ O(N^3)]
Complexity = 5 is the single-stranded, pseudoknot algorithm [ O(N^5)]
naType is chosen from the enum list given above, and chooses the parameter set
dangles = 0, no dangle energies
dangles = 1, mfold treatment of dangles
dangles = 2, dangle energies are always summed, regardless of nearby structures
(same as the Vienna package -D2 option)
temperature = the temperature in celsius
calcPairs = 1 indicates that pair probabilities are calculated and stored in global pairPr
calcPairs = 0 skips pair probability calculations
Ignores the possibility of symmetry
*/
DBL_TYPE pfuncFull( int inputSeq[], int complexity, int naType, int dangles,
DBL_TYPE temperature, int calcPairs,
DBL_TYPE sodiumconc, DBL_TYPE magnesiumconc, int uselongsalt);
DBL_TYPE pfuncFullWithBonuses(int inputSeq[], int complexity, int naType,
int dangles, DBL_TYPE temperature, int calc_pairs, int perm_sym,
DBL_TYPE sodium_conc, DBL_TYPE magnesium_conc, int use_long_salt,
DBL_TYPE * bonuses);
//pfuncFullWithSym is the Same as pfuncFull, but divides
//the result by permSym to account for symmetries
DBL_TYPE pfuncFullWithSym( int inputSeq[], int complexity, int naType,
int dangles, DBL_TYPE temperature, int calcPairs, int permSymmetry,
DBL_TYPE sodiumconc, DBL_TYPE magnesiumconc, int uselongsalt);
DBL_TYPE pfuncFullWithSymHelper( int inputSeq[], int seqlength, int nStrands,
int complexity, int naType,
int dangles, DBL_TYPE temperature, int calcPairs,
int permSymmetry, DBL_TYPE sodiumconc,
DBL_TYPE magnesiumconc, int uselongsalt);
/* pfunc
Calls pfuncFull, and assumes complexity = 3, DNA parameters, T = 37, dangles = 1,
calcPairs = 1, [Na+] = 1.0, [Mg++] = 0.0, and short helix model for salt correction
*/
DBL_TYPE pfunc( int seq[]);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif