void est_map_4way(int *n_ind, int *n_mar, int *geno, double *rf1, double *rf2, double *error_prob, double *loglik, int *maxit, double *tol, int *sexsp, int *verbose) { if(*sexsp) est_map(*n_ind, *n_mar, 4, geno, rf1, rf2, *error_prob, init_4way, emit_4way, step_4way, nrec_4way1, nrec_4way2, loglik, *maxit, *tol, *sexsp, *verbose); else est_map(*n_ind, *n_mar, 4, geno, rf1, rf2, *error_prob, init_4way, emit_4way, step_4way, nrec_4way, nrec_4way, loglik, *maxit, *tol, *sexsp, *verbose); }
void est_map_f2(int *n_ind, int *n_mar, int *geno, double *rf, double *error_prob, double *loglik, int *maxit, double *tol, int *verbose) { est_map(*n_ind, *n_mar, 4, geno, rf, rf, *error_prob, init_f2b, emit_f2b, step_f2b, nrec_f2b, nrec_f2b, loglik, *maxit, *tol, 0, *verbose); }
/* for estimating map, must do things with recombination fractions on the RIL scale */ void est_map_ri8IRIP3(int *n_ind, int *n_mar, int *geno, double *rf, double *error_prob, double *loglik, int *maxit, double *tol, int *verbose) { est_map(*n_ind, *n_mar, 8, geno, rf, rf, *error_prob, init_ri8selfIRIP3, emit_ri8selfIRIP3, step_ri8selfIRIP3, nrec_bc, nrec_bc, loglik, *maxit, *tol, 0, *verbose); }
/* for estimating map, must do things with recombination fractions on the RIL scale */ void est_map_ri8self(int *n_ind, int *n_mar, int *geno, double *rf, double *error_prob, double *loglik, int *maxit, double *tol, int *verbose) { int i; /* expand rf */ for(i=0; i< *n_mar-1; i++) rf[i] = rf[i]*(1.0-rf[i])/(1.0+2.0*rf[i]); est_map(*n_ind, *n_mar, 8, geno, rf, rf, *error_prob, init_ri8self, emit_ri8self, step_special_ri8self, nrec_bc, nrec_bc, loglik, *maxit, *tol, 0, *verbose); /* contract rf */ for(i=0; i< *n_mar-1; i++) rf[i] = 2.0-rf[i]-sqrt(rf[i]*rf[i]-5.0*rf[i]+4.0); }