#ifndef __SUBS_DEF_H #define __SUBS_DEF_H #include "indel_std.h" #define MinRange 0 #define Step 1 #define NumStep 15 /* To shorten the computation time for simulation of substitution, we do not apply the substitution matrix (P_mat_ij) in a site-by-site manner. Instead, we count A,G,C,T nucleotides beforehand and calculate, based on binominal distribution,the probabilities that, for example, one, two, three.... 'A' s undergo substitution. subs_hist stores this distribution for one base type, while subs_matrix stores the distributions for four base types.*/ typedef struct _subs_hist { short index; int min_len; int len_range; double **hist; double *PMatEach; } SubsHist, *SubsHistPtr; typedef struct _subs_matrix { int num_step; SubsHistPtr PNTR subs_hist_array; } SubsMatrix, *SubsMatrixPtr; /* simul_struct records intermediate and the final sequences that appear during simulation runs. */ typedef struct _simul_struct { int seqlen; Uint1Ptr simul_seq; int *num_base; short **pos_base; short *pos_record; } SimulStruct, *SimulStructPtr; #endif