 
                     if (reference_bp != read_bp)
                     {
-                        ctx.cigar.is_snp[idx.read_start + current_bp_idx] = 1;
+                        snp_vector[idx.read_start + current_bp_idx] = 1;
 
                         // if we are inside the clipped read window, count this error
                         if (current_bp_idx >= read_window_clipped.x && current_bp_idx <= read_window_clipped.y)


    // expand the cigar ops into temp storage (xxxnsubtil: same as above, active read list is ignored)
    parallel<system>::for_each(thrust::make_counting_iterator(0),
                     thrust::make_counting_iterator(0) + batch.device.cigars.size(),
                     cigar_op_expand<system>(context, batch.device));

    // pack the cigar into a 2-bit vector
    pack_to_2bit(ctx.cigar_events, context.temp_storage);

#ifdef CUDA_DEBUG
    parallel<system>::for_each(firepony_context.active_read_list.begin(),
                     firepony_context.active_read_list.end(),
                     sanity_check_cigar_events<system>(firepony_context, batch.device));
#endif

    // now expand the coordinates per read

    ctx.is_deletion.resize(batch.device.reads.size());
    ctx.num_errors.resize(batch.device.num_reads);

    // initialize num_errors to zero
    thrust::fill(ctx.num_errors.begin(), ctx.num_errors.end(), 0);

    // cigar_events_read_index is initialized to -1; this means that all reads are considered inactive
