/* $Id: method.h 226364 2023-03-07 02:58:57Z twu $ */
#ifndef METHOD_INCLUDED
#define METHOD_INCLUDED

#include "filestring.h"


/* Keep in order of calls to single_read in stage1hr-single.c and paired_read in stage1hr-paired.c */
/* Separate categories for tr, RNA, and DNA alignment allow us to order each task separately */
typedef enum {METHOD_INIT,

	      /* Transcriptome-guided genomic alignment */
	      TR__TR_EXACT, /* from Transcriptome_search_ends */
	      TR__TR_EXT, /* from Tr_extension_search */
	      TR__KMER_EXACT1, /* both ends, from Kmer_search_exact */
	      TR__EXT, /* ext, from Extension_search */

	      TR__TR_COMPLETE, /* from Transcriptome_search_complete */
	      TR__TR_APPROX, /* from Transcriptome_search_ends */

	      TR__SEGMENT1, /* seg1, from Segment_search_genome */
	      TR__KMER_EXACT2, /* both ends, from Kmer_search_exact */
	      TR__KMER_APPROX, /* both ends, from Kmer_search_approx */

	      /* RNA */
	      RNA__KMER_EXACT1, /* both ends, from Kmer_search_exact */
	      RNA__EXT, /* ext, from Extension_search */

	      RNA__SEGMENT1, /* seg1, from Segment_search_genome */
	      RNA__KMER_EXACT2, /* both ends, from Kmer_search_exact */
	      RNA__KMER_APPROX, /* both ends, from Kmer_search_approx */

	      /* DNA */
	      /* Candidates for removal: DNA__SEGMENT1, DNA__KMER_EXACT2, DNA__KMER_APPROX */
	      DNA__KMER_EXACT1, /* both ends, from Kmer_search_exact */
	      DNA__EXT, /* ext, from Extension_search */

	      DNA__SEGMENT1, /* seg1, from Segment_search_genome */
	      DNA__KMER_COMPLETE,
	      DNA__KMER_EXACT2, /* both ends, from Kmer_search_exact */
	      DNA__KMER_APPROX, /* both ends, from Kmer_search_approx */

	      SEGMENT2,	      /* seg2, from Segment_search_genome (TR__ or RNA__) */
	      FUSION}    /* fusion, from path-fusion */ Method_T;

extern char *
Method_string (Method_T method);
extern void
Method_samprint (Filestring_T fp, Method_T method);
extern void
Method_print (Filestring_T fp, Method_T method);

#endif

