#include <cstdlib>
#include <cassert>
-#include "wiggle.h"
-
+#include <stdint.h>
#include "sam/bam.h"
#include "sam/sam.h"
+#include "wiggle.h"
+
void add_bam_record_to_wiggle(const bam1_t *b, Wiggle& wiggle) {
- float w = bam_aux2f(bam_aux_get(b, "ZW"));
+ uint8_t *p_tag = bam_aux_get(b, "ZW");
+ float w = (p_tag != NULL ? bam_aux2f(p_tag) : 1.0);
int pos = b->core.pos;
uint32_t *p = bam1_cigar(b);
bam1_t *b = bam_init1();
Wiggle wiggle;
while (samread(bam_in, b) >= 0) {
+ if (b->core.flag & 0x0004) continue;
+
if (b->core.tid != cur_tid) {
if (cur_tid >= 0) processor.process(wiggle);
cur_tid = b->core.tid;