1 /* cm_dispatch.h
2  *
3  * Functions that actually do the work for cmalign and cmsearch,
4  * in parallel and serial varieties.
5  *
6  * Eric Nawrocki
7  */
8 
9 #ifndef CMDISPATCH_INCLUDED
10 #define CMDISPATCH_INCLUDED
11 
12 #include "esl_config.h"
13 #include "config.h"
14 
15 #include "easel.h"
16 #include "esl_sqio.h"
17 
18 #include "structs.h"		/* data structures, macros, #define's   */
19 #include "funcs.h"		/* external functions                   */
20 
21 extern void
22 serial_search_database (ESL_SQFILE *dbfp, CM_t *cm, const ESL_ALPHABET *abc, CMConsensus_t *cons);
23 extern void
24 parallel_search_database (ESL_SQFILE *dbfp, CM_t *cm, const ESL_ALPHABET *abc, CMConsensus_t *cons,
25 			  int mpi_my_rank, int mpi_master_rank, int mpi_num_procs) ;
26 extern float
27 actually_search_target(CM_t *cm, ESL_DSQ *dsq, int i0, int j0, float cm_cutoff,
28 		       float cp9_cutoff, search_results_t *results, int do_filter,
29 		       int doing_cm_stats, int doing_cp9_stats, int *ret_flen);
30 extern void
31 serial_align_targets(ESL_SQFILE *seqfp, CM_t *cm, ESL_SQ ***ret_sq, Parsetree_t ***ret_tr,
32 		     char ***ret_postcode, CP9trace_t ***ret_cp9_tr, int *ret_nseq, float **ret_sc,
33 		     int bdump_level, int debug_level, int silent_mode);
34 extern void
35 parallel_align_targets(ESL_SQFILE *seqfp, CM_t *cm, ESL_SQ ***ret_sq, Parsetree_t ***ret_tr,
36 		       char ***ret_postcode, CP9trace_t ***ret_cp9_tr, int *ret_nseq,
37 		       int bdump_level, int debug_level,
38 		       int silent_mode, int mpi_my_rank, int mpi_master_rank, int mpi_num_procs);
39 extern int
40 actually_align_targets(CM_t *cm, ESL_SQ **sq, int nseq, ESL_DSQ *dsq, search_results_t *results, Parsetree_t ***ret_tr,
41 		       char ***ret_postcode, CP9trace_t ***ret_cp9_tr, float **ret_sc, int bdump_level, int debug_level,
42 		       int silent_mode);
43 
44 extern int PrintSearchInfo(FILE *fp, CM_t *cm, int cm_mode, int cp9_mode, long N);
45 
46 extern int  revcomp(const ESL_ALPHABET *abc, ESL_SQ *comp, ESL_SQ *sq);
47 extern int  read_next_seq (const ESL_ALPHABET *abc, ESL_SQFILE *dbfp, int do_revcomp, dbseq_t **ret_dbseq);
48 extern void print_results (CM_t *cm, const ESL_ALPHABET *abc, CMConsensus_t *cons, dbseq_t *dbseq,
49 			   int do_complement, int used_HMM);
50 extern void remove_hits_over_e_cutoff (CM_t *cm, search_results_t *results, ESL_SQ *sq,
51 				       int used_HMM);
52 #endif
53