5f9691856204ac8ee77795e1b9a89f82f825d2cd angie Fri Jun 1 14:39:34 2012 -0700 Feature #6152 (Variant Annotation Integrator): added getHeader methodto annoStreamer so formatters can include primary source's header in output -- header is a crucial part of some formats e.g. VCF. diff --git src/lib/annoFormatTab.c src/lib/annoFormatTab.c index 25d0e67..8961d28 100644 --- src/lib/annoFormatTab.c +++ src/lib/annoFormatTab.c @@ -34,31 +34,35 @@ if (isFirst && i == 0) fputc('#', f); else fputc('\t', f); fputs(col->def->name, f); } } static void aftInitialize(struct annoFormatter *vSelf, struct annoGratorQuery *query) /* Print header, regardless of whether we get any data after this. */ { vSelf->query = query; struct annoFormatTab *self = (struct annoFormatTab *)vSelf; if (self->needHeader) { - printHeaderColumns(self->f, query->primarySource, TRUE); + struct annoStreamer *primary = query->primarySource; + char *primaryHeader = primary->getHeader(primary); + if (isNotEmpty(primaryHeader)) + printf("# Header from primary input:\n%s", primaryHeader); + printHeaderColumns(self->f, primary, TRUE); struct annoStreamer *grator = (struct annoStreamer *)(query->integrators); for (; grator != NULL; grator = grator->next) printHeaderColumns(self->f, grator, FALSE); fputc('\n', self->f); self->needHeader = FALSE; } } static double wigRowAvg(struct annoRow *row) /* Return the average value of floats in row->data. */ { float *vector = row->data; int len = row->end - row->start; double sum = 0.0; int i;