                     // mark the read bp where a deletion begins
                     if (!negative_strand)
                     {
-                        ctx.cigar.is_deletion[idx.read_start + current_bp_idx] = 1;
+                        del_vector[idx.read_start + current_bp_idx] = 1;
                     } else {
                         uint16 off = current_bp_idx + 1;
                         if (off < idx.read_len)
                         {
-                            ctx.cigar.is_deletion[idx.read_start + off] = 1;
+                            del_vector[idx.read_start + off] = 1;
                         }
                     }
 


                    if (off >= 0 && off <= read_window_clipped.y)
                    {
                        ctx.cigar.is_insertion[idx.read_start + off] = 1;
                    }

                    num_errors++;

template <target_system system>
struct compute_error_vectors : public lambda<system>
{
    LAMBDA_INHERIT_MEMBERS;

    typename vector<system, uint8>::view snp_vector;
    typename vector<system, uint8>::view ins_vector;
    typename vector<system, uint8>::view del_vector;

    compute_error_vectors(typename firepony_context<system>::view ctx,
                          const typename alignment_batch_device<system>::const_view batch,
                          typename vector<system, uint8>::view snp_vector,
                          typename vector<system, uint8>::view ins_vector,
                          typename vector<system, uint8>::view del_vector)
        : lambda<system>(ctx, batch),
          snp_vector(snp_vector),
          ins_vector(ins_vector),
          del_vector(del_vector)
    { }

    CUDA_HOST_DEVICE void operator() (const uint32 read_index)
    {
