#include "subs_def.h" #include "indel_def.h" #define NameSize 50 #define MaxSeqLen 300 #define NMAX 20 #define LMAX 20 #define MinlnL -10000 #define Penalty -1000 /*setup_indel.c*/ void CountModuloCenter(Uint1Ptr simul_seq, int seqlen, int **MRC, short lmax); void CountModuloCenterFilter(Uint1Ptr simul_seq, int seqlen, int **MRC, short lmax, int filter/*, FILE *fout*/); OptionsBlkPtr OptionsBlkFree(OptionsBlkPtr options); OptionsBlkPtr GetOptions(char* infile, FILE *fout); /*calc_pmat.c*/ void CalculatePMat(double *PMat, OptionsBlkPtr options, FILE *fout); /*handle_cand.c*/ CandStructPtr CandDestruct(CandStructPtr cand); CandStructPtr CandStructAllocate(short nmax, int num_t); void SetCandToZero(CandStructPtr new_cand, short nmax, int num_t); void ArrayToID(CandStructPtr cand, ChainIDPtr chain_id, short lmax, short nmax, int num_t); void IDToArray(ChainIDPtr chain_id, CandStructPtr cand, short lmax, short nmax, int num_t); void CopyCandidate(CandStructPtr dist_cand, CandStructPtr src_cand, int num_t); void DisplayCandidate(CandStructPtr cand, int num_t, FILE *fout, short flag); /*mod_mcmc2.c*/ int CheckLengthChange(short *ins_array, short ni, short *del_array, short nd); void CheckCarryUp(short *array, int n, int lmax); PoolStructPtr PoolDestruct(PoolStructPtr pool); PoolStructPtr SetupPoolStruct(short lmax, short nmax, int target_d, int orig_seqlen, int num_t); void DisplayPoolStruct(PoolStructPtr pool, FILE *fout); void SetupIDarray(CandStructPtr cand, int num_t); short ChangeIndelArray(PoolStructPtr pool, CandStructPtr new_cand, short flag); void MCSelectNIND(PoolStructPtr pool, int nind_index, CandStructPtr new_cand); short SelectNewCandidate(PoolStructPtr pool, PoolConsPtr pool_cons, CandStructPtr new_cand, CandStructPtr current_cand, int current_id); short ModSelectNewCandidate(PoolStructPtr pool, CandStructPtr new_cand, CandStructPtr current_cand, int current_id); int CheckMinLength(PoolStructPtr pool, CandStructPtr new_cand); short ProcessMCMC(StockIDPtr stock_id, OptionsBlkPtr options, SubsMatrixPtr subs_matrix, FILE *fout); short ExModProcessMCMC(StockIDPtr stock_id, OptionsBlkPtr options, SubsMatrixPtr subs_matrix, FILE *fout); /*stock_id.c*/ ChainIDPtr ChainIDFree(ChainIDPtr chain_id); ChainIDPtr ChainIDNew(short nsum); StockIDPtr StockIDFree(StockIDPtr stock_id); StockIDPtr StockIDAllocate(long int max_idnum, short nmax, short select_num); long int CheckRevisit(CandStructPtr new_cand, StockIDPtr stock_id, OptionsBlkPtr options); short CompareCandidate(CandStructPtr new_cand, CandStructPtr current_cand, PoolStructPtr pool, PoolConsPtr pool_cons, short flag, FILE *fout); void StockCandidate(StockIDPtr stock_id, CandStructPtr new_cand, CandStructPtr current_cand, PoolStructPtr pool, long int visited); void DisplayStockID(StockIDPtr stock_id, OptionsBlkPtr options, FILE *fout); void CopyStockID(StockIDPtr stock_id, short nmax, long int id1, long int id2); void SortStockID(StockIDPtr stock_id, short nmax); void InitializeStockID(StockIDPtr stock_id, short nsum); void StatisticalResult(StockIDPtr stock_id, int max_setnum, short nmax, FILE *fout); short CheckMonopolyOfStockID(StockIDPtr stock_id, FILE *fout); short CompareID(ChainIDPtr chain_id1, ChainIDPtr chain_id2, short nmax); void AddID(ChainIDPtr chain_id2, ChainIDPtr chain_id1); void NewID(ChainIDPtr chain_id2, ChainIDPtr chain_id1, short nmax); void AddEachIDtoStockID(StockIDPtr stock_id, StockIDPtr each_id, short nmax); /*lkl_chaintpos.c*/ short SubstituteSimulseq(Uint1Ptr simul_seq, int seqlen, double *PMat); /*simulation*/ void FindModuloCenter(Uint1Ptr simul_seq, double *hot_seq, int seqlen, short indel, OptionsBlkPtr options); void FindModuloCenterFilter(Uint1Ptr simul_seq, double *hot_seq, int seqlen, short indel, OptionsBlkPtr options, int filter); int SelectPositions(double *hot_seq, int seqlen); void RandomInsert(int pos, short indel, double *pi, Uint1Ptr simul_seq); void DupBase(int pos, short indel, Uint1Ptr simul_seq, int seqlen); void DupModulo(int pos, short indel, Uint1Ptr simul_seq); short IndelSimulSeq(short position, Uint1Ptr simul_seq, int seqlen, short indel, OptionsBlkPtr options/*, FILE *fout*/); double EstimateAtPosvector(OptionsBlkPtr options, CandStructPtr new_cand, ScoreBlkPtr score_block, FILE *fout); short IndelSimulSeqQuick(short position, SimulStructPtr simul_struct, short indel, OptionsBlkPtr options, double *range_p/*, FILE *fout*/); double EstimateAtPosvectorQuick(OptionsBlkPtr options, CandStructPtr new_cand, ScoreBlkPtr score_block, SubsMatrixPtr subs_matrix, FILE *fout); void TrialOfNewCandidate(CandStructPtr new_cand, OptionsBlkPtr options, SubsMatrixPtr subs_matrix, FILE *fout); /*calc_score.c*/ ScoreBlkPtr ScoreBlkFree(ScoreBlkPtr score_block); ScoreBlkPtr SetupScoreblock(OptionsBlkPtr options, CandStructPtr new_cand, int count_per_cycle); void Initializelkl(ScoreBlkPtr score_block); void Scorelkl(Uint1Ptr target_seq, Uint1Ptr simul_seq, ScoreBlkPtr score_block); short CalculateScoreBlock(ScoreBlkPtr score_block, OptionsBlkPtr options, FILE *fout); /*summarize.c*/ void SummarizedStockID(StockIDPtr summarixed_id, StockIDPtr stock_id, short nmax, int num_t); /*align.c*/ AlignIDPtr AlignIDFree(AlignIDPtr align_id); AlignIDPtr AlignIDNew(short nmax); StockAlignPtr StockAlignDestruct(StockAlignPtr stock_align); StockAlignPtr StockAlignAllocate(long int max_idnum, short nmax, short select_num); void ArrayToAlign(CandStructPtr temp_cand, AlignIDPtr temp_align, int num_t); void IDdataToAlign(ChainIDPtr chain_id, AlignIDPtr temp_align); short AlignSummarizedID(StockAlignPtr stock_align, StockIDPtr summarized_id, short lmax, short nmax, int num_t); void DiplayAlignID(AlignIDPtr align_id, FILE *fout); void DisplayStockAlign(StockAlignPtr stock_align, FILE *fout); void SortStockAlign(StockAlignPtr stock_align, short nmax); void InitializeStockAlign(StockAlignPtr stock_align, short nsum); /*conserve.c*/ PoolConsPtr PoolConsDestruct(PoolConsPtr pool_cons); PoolConsPtr PoolConsAllocate(int max_setnum, int max_stored); short SelectConsNINDandPoolConsSetup(PoolConsPtr pool_cons, PoolStructPtr pool, CandStructPtr new_cand); short SelectConserveChainTPos(PoolConsPtr pool_cons, PoolStructPtr pool, CandStructPtr new_cand, CandStructPtr current_cand); /*calc_subs.c*/ SubsHistPtr SubsHistFree(SubsHistPtr subs_hist); short SetupSubsHist(SubsHistPtr subs_hist, short index, int min_len, int len_range, int num_step, double *PMat); SubsMatrixPtr SubsMatrixDestruct(SubsMatrixPtr subs_matrix); SubsMatrixPtr SubsMatrixNew(int num_step); void DisplaySubsMatrix(SubsMatrixPtr subs_matrix, FILE *fsub); SubsMatrixPtr CalculateSubsMatrix(OptionsBlkPtr options, char *subsfile); void RecalculateSubsMatrix(SubsMatrixPtr subs_matrix, OptionsBlkPtr options/*, char *subsfile*/); SimulStructPtr SimulStructFree(SimulStructPtr simul_struct); SimulStructPtr SimulStructAllocate(OptionsBlkPtr options); void InitializeSimulStruct(SimulStructPtr simul_struct, OptionsBlkPtr options); short RecalculateSimulStruct(SimulStructPtr simul_struct); void SubstituteQuick(SubsMatrixPtr subs_matrix, SimulStructPtr simul_struct, OptionsBlkPtr options); /*pseud_util.c*/ void ReadOneSequencePair(FILE *fseq, OptionsBlkPtr options, FILE *fout); void ReCalculateOptionsForNewPair(OptionsBlkPtr options, FILE *fout);