1 /* $Id: samflags.h 214301 2018-03-19 23:36:38Z twu $ */ 2 #ifndef SAMFLAGS_INCLUDED 3 #define SAMFLAGS_INCLUDED 4 5 #define PAIRED_READ 0x0001 /* 1 */ 6 #define PAIRED_MAPPING 0x0002 /* 2 */ 7 #define QUERY_UNMAPPED 0x0004 /* 4 */ 8 #define MATE_UNMAPPED 0x0008 /* 8 */ 9 #define QUERY_MINUSP 0x0010 /* 16 */ 10 #define MATE_MINUSP 0x0020 /* 32 */ 11 #define FIRST_READ_P 0x0040 /* 64 */ 12 #define SECOND_READ_P 0x0080 /* 128 */ 13 #define NOT_PRIMARY 0x0100 /* 256 */ 14 #define BAD_READ_QUALITY 0x0200 /* 512 */ 15 #define DUPLICATE_READ 0x0400 /* 1024 */ 16 #define SUPPLEMENTARY 0x0800 /* 2048 */ 17 18 19 /* 83 = first read, minus strand for paired */ 20 /* 99 = first read, plus strand for paired */ 21 /* 147 = second read, minus strand for paired */ 22 /* 163 = second read, plus strand for paired */ 23 24 /* For forcing a read to be primary */ 25 #define SET_PRIMARY 0xFEFF /* do a logical-and (&) with this */ 26 27 28 /* XO tag for output type */ 29 #define ABBREV_NOMAPPING_1 "NM" 30 #define ABBREV_NOMAPPING_2 "NM" 31 32 #define ABBREV_UNPAIRED_UNIQ "UU" 33 #define ABBREV_UNPAIRED_TRANSLOC "UT" 34 #define ABBREV_UNPAIRED_MULT "UM" 35 36 #define ABBREV_UNPAIRED_CIRCULAR "UC" 37 #define ABBREV_UNPAIRED_MULT_XS "UX" 38 39 40 #define ABBREV_HALFMAPPING_UNIQ "HU" 41 #define ABBREV_HALFMAPPING_TRANSLOC "HT" 42 #define ABBREV_HALFMAPPING_MULT "HM" 43 44 #define ABBREV_PAIRED_UNIQ_INV "PI" 45 #define ABBREV_PAIRED_UNIQ_SCR "PS" 46 #define ABBREV_PAIRED_UNIQ_LONG "PL" 47 #define ABBREV_PAIRED_MULT "PM" 48 49 #define ABBREV_CONCORDANT_UNIQ "CU" 50 #define ABBREV_CONCORDANT_TRANSLOC "CT" 51 #define ABBREV_CONCORDANT_MULT "CM" 52 53 #define ABBREV_HALFMAPPING_CIRCULAR "HC" 54 #define ABBREV_PAIRED_UNIQ_CIRCULAR "PC" 55 #define ABBREV_CONCORDANT_CIRCULAR "CC" 56 57 #define ABBREV_HALFMAPPING_MULT_XS "HX" 58 #define ABBREV_PAIRED_MULT_XS "PX" 59 #define ABBREV_CONCORDANT_MULT_XS "CX" 60 61 62 typedef enum {OUTPUT_FILE, /* 0: specified by the --output-file option */ 63 64 OUTPUT_NONE, /* 1: used when omit_concordant_uniq_p or omit_concordant_mult_p is set */ 65 66 OUTPUT_NM, /* 2: nomapping */ 67 68 OUTPUT_UU, /* 3: unpaired_uniq */ 69 OUTPUT_UT, /* 4: unpaired_transloc */ 70 OUTPUT_UM, /* 5: unpaired_mult (N_SPLIT_OUTPUTS_SINGLE_STD) */ 71 72 OUTPUT_UC, /* 6: unpaired_circular (N_SPLIT_OUTPUTS_SINGLE_TOCIRC) */ 73 OUTPUT_UX, /* 7: unpaired_mult_xs (N_SPLIT_OUTPUTS_SINGLE) */ 74 75 76 OUTPUT_HU, /* 8: halfmapping_uniq */ 77 OUTPUT_HT, /* 9: halfmapping_transloc */ 78 OUTPUT_HM, /* 10: halfmapping_mult */ 79 80 OUTPUT_PI, /* 11: paired_uniq_inv */ 81 OUTPUT_PS, /* 12: paired_uniq_scr */ 82 OUTPUT_PL, /* 13: paired_uniq_long */ 83 OUTPUT_PM, /* 14: paired_mult */ 84 OUTPUT_CU, /* 15: concordant_uniq */ 85 OUTPUT_CT, /* 16: concordant_transloc */ 86 OUTPUT_CM, /* 17: concordant_mult (N_SPLIT_OUTPUTS_STD) */ 87 88 OUTPUT_HC, /* 18: halfmapping_circular */ 89 OUTPUT_PC, /* 19: paired_uniq_circular */ 90 OUTPUT_CC, /* 20: concordant_circular (N_SPLIT_OUTPUTS_TOCIRC) */ 91 92 OUTPUT_HX, /* 21: halfmapping_mult_xs */ 93 OUTPUT_PX, /* 22: paired_mult_xs */ 94 OUTPUT_CX} /* 23: concordant_mult_xs (N_SPLIT_OUTPUTS) */ 95 SAM_split_output_type; 96 97 /* output 0 is stdout */ 98 /* Code checks for split_output = 1 to N_SPLIT_OUTPUTS inclusive */ 99 #define N_SPLIT_OUTPUTS_SINGLE_STD 5 100 #define N_SPLIT_OUTPUTS_SINGLE_TOCIRC 6 101 #define N_SPLIT_OUTPUTS_SINGLE 7 102 103 #define N_SPLIT_OUTPUTS_STD 17 104 #define N_SPLIT_OUTPUTS_TOCIRC 20 105 #define N_SPLIT_OUTPUTS 23 106 107 108 109 110 /* GSNAP outputs */ 111 #if 0 112 FILE *fp_nomapping; /* NM */ 113 114 FILE *fp_unpaired_uniq; /* UU */ 115 FILE *fp_unpaired_transloc; /* UT */ 116 FILE *fp_unpaired_mult; /* UM */ 117 118 FILE *fp_unpaired_circular; /* UC */ 119 FILE *fp_unpaired_mult_xs_1; /* UX */ 120 FILE *fp_unpaired_mult_xs_2; /* UX */ 121 122 FILE *fp_halfmapping_uniq; /* HU */ 123 FILE *fp_halfmapping_transloc; /* HT */ 124 FILE *fp_halfmapping_mult; /* HM */ 125 126 FILE *fp_paired_uniq_inv; /* PI */ 127 FILE *fp_paired_uniq_scr; /* PS */ 128 FILE *fp_paired_uniq_long; /* PL */ 129 FILE *fp_paired_mult; /* PM */ 130 131 FILE *fp_concordant_uniq; /* CU */ 132 FILE *fp_concordant_transloc; /* CT */ 133 FILE *fp_concordant_mult; /* CM */ 134 135 FILE *fp_halfmapping_circular; /* HC */ 136 FILE *fp_paired_uniq_circular; /* PC */ 137 FILE *fp_concordant_circular; /* CC */ 138 139 FILE *fp_halfmapping_mult_xs_1; /* HX */ 140 FILE *fp_halfmapping_mult_xs_2; /* HX */ 141 FILE *fp_paired_mult_xs_1; /* PX */ 142 FILE *fp_paired_mult_xs_2; /* PX */ 143 FILE *fp_concordant_mult_xs_1; /* CX */ 144 FILE *fp_concordant_mult_xs_2; /* CX */ 145 #endif 146 147 /* GMAP outputs */ 148 #if 0 149 FILE *fp_nomapping; /* NM */ 150 151 FILE *fp_uniq; /* UU */ 152 FILE *fp_transloc; /* UT */ 153 FILE *fp_mult; /* UM */ 154 155 FILE *fp_circular; /* UC */ 156 FILE *fp_mult_xs; /* UX */ 157 #endif 158 159 160 #endif 161 162