1 #ifndef BCF_PROB1_H 2 #define BCF_PROB1_H 3 4 #include "bcf.h" 5 6 struct __bcf_p1aux_t; 7 typedef struct __bcf_p1aux_t bcf_p1aux_t; 8 9 typedef struct { 10 int rank0, perm_rank; // NB: perm_rank is always set to -1 by bcf_p1_cal() 11 int ac; // ML alternative allele count 12 double f_exp, f_flat, p_ref_folded, p_ref, p_var_folded, p_var; 13 double cil, cih; 14 double cmp[3], p_chi2, lrt; // used by contrast2() 15 } bcf_p1rst_t; 16 17 #define MC_PTYPE_FULL 1 18 #define MC_PTYPE_COND2 2 19 #define MC_PTYPE_FLAT 3 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 bcf_p1aux_t *bcf_p1_init(int n, uint8_t *ploidy); 26 void bcf_p1_init_prior(bcf_p1aux_t *ma, int type, double theta); 27 void bcf_p1_init_subprior(bcf_p1aux_t *ma, int type, double theta); 28 void bcf_p1_destroy(bcf_p1aux_t *ma); 29 int bcf_p1_cal(const bcf1_t *b, int do_contrast, bcf_p1aux_t *ma, bcf_p1rst_t *rst); 30 int bcf_p1_call_gt(const bcf_p1aux_t *ma, double f0, int k); 31 void bcf_p1_dump_afs(bcf_p1aux_t *ma); 32 int bcf_p1_read_prior(bcf_p1aux_t *ma, const char *fn); 33 int bcf_p1_set_n1(bcf_p1aux_t *b, int n1); 34 void bcf_p1_set_folded(bcf_p1aux_t *p1a); // only effective when set_n1() is not called 35 36 int bcf_em1(const bcf1_t *b, int n1, int flag, double x[10]); 37 38 #ifdef __cplusplus 39 } 40 #endif 41 42 #endif 43