enums.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <climits>
12 #include <limits>
13 #include <string>
14 #include "interop/util/cstdint.h"
15 
17 #define INTEROP_UNKNOWN 0x800
18 
19 
26 #define INTEROP_ENUM_METRIC_FEATURE_TYPE \
27  INTEROP_TUPLE_ASSIGN(TileFeature, 0x01), \
28  INTEROP_TUPLE_ASSIGN(CycleFeature, 0x02), \
29  INTEROP_TUPLE_ASSIGN(ReadFeature, 0x04), \
30  INTEROP_TUPLE_ASSIGN(BaseFeature, 0x08), \
31  INTEROP_TUPLE_ASSIGN(ChannelFeature, 0x10), \
32  INTEROP_TUPLE_ASSIGN(LaneFeature, 0x20), \
33  INTEROP_TUPLE_ASSIGN(DiskFeature, 0x400), \
34  INTEROP_TUPLE1(UnknownMetricFeature)
35 //NOTE: if we add any more features above, we should update the unknown metric value below
36 
42 #define INTEROP_ENUM_METRIC_TYPES \
43  INTEROP_TUPLE7(Intensity, "Intensity", Extraction, CycleFeature|ChannelFeature, extraction_metric, max_intensity, channel)\
44  INTEROP_TUPLE7(FWHM, "FWHM", Extraction, CycleFeature|ChannelFeature, extraction_metric, focus_score, channel)\
45  INTEROP_TUPLE7(BasePercent, "% Base", CorrectedInt, CycleFeature|BaseFeature, corrected_intensity_metric, percent_base, base)\
46  INTEROP_TUPLE7(PercentNoCall, "% NoCall", CorrectedInt, CycleFeature, corrected_intensity_metric, percent_nocall, Void)\
47  INTEROP_TUPLE7(Q20Percent, "% >=Q20", Q, CycleFeature, q_collapsed_metric, percent_over_q20, Void)\
48  INTEROP_TUPLE7(Q30Percent, "% >=Q30", Q, CycleFeature, q_collapsed_metric, percent_over_q30, Void)\
49  INTEROP_TUPLE7(AccumPercentQ20, "% >=Q20 (Accumulated)", Q, CycleFeature, q_collapsed_metric, cumulative_percent_over_q20, Void)\
50  INTEROP_TUPLE7(AccumPercentQ30, "% >=Q30 (Accumulated)", Q, CycleFeature, q_collapsed_metric, cumulative_percent_over_q30, Void)\
51  INTEROP_TUPLE7(QScore, "Median QScore", Q, CycleFeature, q_collapsed_metric, median_qscore_flt, Void)\
52  INTEROP_TUPLE7(Clusters, "Density", Tile, TileFeature, tile_metric, cluster_density_k, Void)\
53  INTEROP_TUPLE7(ClustersPF, "Density PF", Tile, TileFeature, tile_metric, cluster_density_pf_k, Void)\
54  INTEROP_TUPLE7(ClusterCount, "Cluster Count", Tile, TileFeature, tile_metric, cluster_count_m, Void)\
55  INTEROP_TUPLE7(ClusterCountPF, "Clusters PF", Tile, TileFeature, tile_metric, cluster_count_pf_m, Void)\
56  INTEROP_TUPLE7(ErrorRate, "Error Rate", Error, CycleFeature, error_metric, error_rate, Void)\
57  INTEROP_TUPLE7(PercentPhasing, "Legacy Phasing Rate", Tile, ReadFeature, tile_metric, percent_phasing_at, read)\
58  INTEROP_TUPLE7(PercentPrephasing, "Legacy Prephasing Rate", Tile, ReadFeature, tile_metric, percent_prephasing_at, read)\
59  INTEROP_TUPLE7(PercentAligned, "% Aligned", Tile, ReadFeature, tile_metric, percent_aligned_at, read)\
60  INTEROP_TUPLE7(Phasing, "Phasing Weight", EmpiricalPhasing, CycleFeature, phasing_metric, phasing_weight, Void)\
61  INTEROP_TUPLE7(PrePhasing, "Prephasing Weight", EmpiricalPhasing, CycleFeature, phasing_metric, prephasing_weight, Void)\
62  INTEROP_TUPLE7(CorrectedIntensity, "Corrected Int", CorrectedInt, CycleFeature|BaseFeature, corrected_intensity_metric, corrected_int_all_float, base)\
63  INTEROP_TUPLE7(CalledIntensity, "Called Int", CorrectedInt, CycleFeature|BaseFeature, corrected_intensity_metric, corrected_int_called, base)\
64  INTEROP_TUPLE7(SignalToNoise, "Signal to Noise", CorrectedInt, CycleFeature, corrected_intensity_metric, signal_to_noise, Void)\
65  INTEROP_TUPLE7(OccupiedCountK, "Occupied Count (K)", ExtendedTile, TileFeature, extended_tile_metric, cluster_count_occupied_k, Void)\
66  INTEROP_TUPLE7(PercentOccupied, "% Occupied", ExtendedTile, TileFeature, extended_tile_metric, percent_occupied, Void)\
67  INTEROP_TUPLE7(PercentPF, "% PF", Tile, TileFeature, tile_metric, percent_pf, Void)\
68  INTEROP_TUPLE4(MetricTypeCount, "!!!!BAD!!!!", UnknownMetricGroup, UnknownMetricFeature)\
69  INTEROP_TUPLE1(UnknownMetricType)
70 
77 #define INTEROP_ENUM_METRIC_GROUPS \
78  INTEROP_TUPLE2(CorrectedInt, CycleFeature|BaseFeature|DiskFeature), \
79  INTEROP_TUPLE2(Error, CycleFeature|DiskFeature), \
80  INTEROP_TUPLE2(Extraction, CycleFeature|ChannelFeature|DiskFeature), \
81  INTEROP_TUPLE2(Image, CycleFeature|ChannelFeature|DiskFeature), \
82  INTEROP_TUPLE2(Index, ReadFeature|DiskFeature), \
83  INTEROP_TUPLE2(Q, CycleFeature|DiskFeature), \
84  INTEROP_TUPLE2(Tile, TileFeature|DiskFeature), \
85  INTEROP_TUPLE2(QByLane, LaneFeature), \
86  INTEROP_TUPLE2(QCollapsed, CycleFeature), \
87  INTEROP_TUPLE2(EmpiricalPhasing, CycleFeature|DiskFeature), \
88  INTEROP_TUPLE2(DynamicPhasing, CycleFeature), \
89  INTEROP_TUPLE2(ExtendedTile, TileFeature|DiskFeature), \
90  INTEROP_TUPLE2(SummaryRun, DiskFeature), \
91  INTEROP_TUPLE1(MetricCount),\
92  INTEROP_TUPLE1(UnknownMetricGroup)
93 
94 
100 #define INTEROP_ENUM_METRIC_DATA_TYPES \
101  INTEROP_TUPLE1(IdType),\
102  INTEROP_TUPLE1(ValueType),\
103  INTEROP_TUPLE1(StructType),\
104  INTEROP_TUPLE1(ChannelArray),\
105  INTEROP_TUPLE1(BaseArray),\
106  INTEROP_TUPLE1(MetricDataCount),\
107  INTEROP_TUPLE1(UnknownMetricData)
108 
114 #define INTEROP_ENUM_TILE_NAMING_METHODS \
115 \
116  INTEROP_TUPLE1(FourDigit), \
117 \
118  INTEROP_TUPLE1(FiveDigit), \
119 \
120  INTEROP_TUPLE1(Absolute), \
121 \
122  INTEROP_TUPLE1(TileNamingMethodCount), \
123  INTEROP_TUPLE1(UnknownTileNamingMethod)
124 
131 #define INTEROP_ENUM_DNA_BASE_TYPES \
132  \
133  INTEROP_TUPLE_ASSIGN(NC, -1), \
134  \
135  INTEROP_TUPLE1(A), \
136  \
137  INTEROP_TUPLE1(C), \
138  \
139  INTEROP_TUPLE1(G), \
140  \
141  INTEROP_TUPLE1(T), \
142  \
143  INTEROP_TUPLE1(NUM_OF_BASES), \
144  \
145  INTEROP_TUPLE1(NUM_OF_BASES_AND_NC), \
146  \
147  INTEROP_TUPLE1(UnknownBase)
148 
154 #define INTEROP_ENUM_SURFACE_TYPES \
155  INTEROP_TUPLE1(SentinelSurface), \
156  INTEROP_TUPLE1(Top), \
157  INTEROP_TUPLE1(Bottom), \
158  INTEROP_TUPLE1(UnknownSurface)
159 
160 
166 #define INTEROP_ENUM_INSTRUMENT_TYPES \
167  INTEROP_TUPLE1(HiSeq), \
168  INTEROP_TUPLE1(HiScan), \
169  INTEROP_TUPLE1(MiSeq), \
170  INTEROP_TUPLE1(NextSeq), \
171  INTEROP_TUPLE1(MiniSeq), \
172  INTEROP_TUPLE1(NovaSeq), \
173  INTEROP_TUPLE1(iSeq), \
174  INTEROP_TUPLE1(NextSeq1k2k), \
175  INTEROP_TUPLE1(InstrumentCount), \
176  INTEROP_TUPLE1(UnknownInstrument)
177 
183 #define INTEROP_ENUM_METRIC_BASE_TYPES \
184 \
185  INTEROP_TUPLE1(BaseTileType),\
186 \
187  INTEROP_TUPLE1(BaseCycleType),\
188 \
189  INTEROP_TUPLE1(BaseReadType),\
190 \
191  INTEROP_TUPLE1(BaseLaneType),\
192 \
193  INTEROP_TUPLE1(BaseRunType), \
194  INTEROP_TUPLE1(BaseMetricCount),\
195  INTEROP_TUPLE1(UnknownBaseType)
196 
197 
203 #define INTEROP_ENUM_PLOT_COLORS \
204 \
205  INTEROP_TUPLE1(Red), /*#FF0000*/\
206 \
207  INTEROP_TUPLE1(Green), /*#00FF00*/\
208 \
209  INTEROP_TUPLE1(Blue), /*#0000FF*/\
210 \
211  INTEROP_TUPLE1(Black), /*#000000*/\
212  INTEROP_TUPLE1(PlotColorCount), \
213  INTEROP_TUPLE1(UnknownColor)
214 
220 #define INTEROP_ENUM_PLOT_TYPES \
221 \
222  INTEROP_TUPLE1(FlowcellPlot),\
223 \
224  INTEROP_TUPLE1(ByCyclePlot),\
225 \
226  INTEROP_TUPLE1(ByLanePlot),\
227 \
228  INTEROP_TUPLE1(QHistogramPlot),\
229 \
230  INTEROP_TUPLE1(QHeatmapPlot),\
231 \
232  INTEROP_TUPLE1(SampleQCPlot),\
233 \
234  INTEROP_TUPLE1(UnknownPlotType)
235 
241 #define INTEROP_ENUM_BAR_PLOT_OPTIONS \
242 \
243  INTEROP_TUPLE1(Centered), \
244 \
245  INTEROP_TUPLE1(Shifted), \
246  INTEROP_TUPLE1(UnknownBarPlotOption)
247 
249 // Define x-macros
251 
252 
254 #define INTEROP_TUPLE7(X, Unused1, Unused2, Unused3, Unused4, Unused5, Unused6) X,
255 
256 #define INTEROP_TUPLE4(X, Y, Z, A) X,
257 
258 #define INTEROP_TUPLE3(X, Y, Z) X
259 
260 #define INTEROP_TUPLE1(X) X
261 
262 #define INTEROP_TUPLE2(X, V) X
263 
264 #define INTEROP_TUPLE_ASSIGN(X, V) X=V
265 
266 
267 
268 namespace illumina { namespace interop { namespace constants
269 {
270 
279  enum common
280  {
282  };
285  {
287  };
290  {
292  };
295  {
297  };
300  {
302  };
305  {
307  };
310  {
312  };
315  {
317  };
320  {
322  };
325  {
327  };
330  {
332  };
335  {
337  };
340  {
342  };
345 }}}
346 
347 #undef INTEROP_TUPLE1
348 #undef INTEROP_TUPLE2
349 #undef INTEROP_TUPLE3
350 #undef INTEROP_TUPLE4
351 #undef INTEROP_TUPLE7
352 #undef INTEROP_TUPLE_ASSIGN
353 
354 
metric_base_type
Definition: enums.h:314
#define INTEROP_ENUM_METRIC_DATA_TYPES
Definition: enums.h:100
#define INTEROP_ENUM_BAR_PLOT_OPTIONS
Definition: enums.h:241
metric_type
Definition: enums.h:284
Definition: enum_description.h:15
#define INTEROP_ENUM_METRIC_FEATURE_TYPE
Definition: enums.h:26
#define INTEROP_ENUM_PLOT_COLORS
Definition: enums.h:203
bar_plot_options
Definition: enums.h:324
plot_types
Definition: enums.h:339
#define INTEROP_ENUM_INSTRUMENT_TYPES
Definition: enums.h:166
#define INTEROP_ENUM_SURFACE_TYPES
Definition: enums.h:154
metric_group
Definition: enums.h:289
#define INTEROP_ENUM_METRIC_BASE_TYPES
Definition: enums.h:183
metric_feature_type
Definition: enums.h:334
#define INTEROP_ENUM_METRIC_GROUPS
Definition: enums.h:77
#define INTEROP_ENUM_PLOT_TYPES
Definition: enums.h:220
metric_data
Definition: enums.h:329
#define INTEROP_ENUM_DNA_BASE_TYPES
Definition: enums.h:131
#define INTEROP_ENUM_TILE_NAMING_METHODS
Definition: enums.h:114
#define INTEROP_UNKNOWN
Definition: enums.h:17
#define INTEROP_ENUM_METRIC_TYPES
Definition: enums.h:42
instrument_type
Definition: enums.h:309
tile_naming_method
Definition: enums.h:294
dna_bases
Definition: enums.h:299
common
Definition: enums.h:279
plot_colors
Definition: enums.h:319
surface_type
Definition: enums.h:304