         if (refStart < 0)
         {
             start = 0;
-            stop = getReadCoordinateForReferenceCoordinate(read_index, uint32(refStop));
+            stop = getReadCoordinateForReferenceCoordinate(read_index, uint32(refStop), AdaptorTail::left);
         } else {
-            start = getReadCoordinateForReferenceCoordinate(read_index, uint32(refStart));
+            start = getReadCoordinateForReferenceCoordinate(read_index, uint32(refStart), AdaptorTail::right);
             stop = ctx.cigar.read_window_clipped[read_index].y - ctx.cigar.read_window_clipped[read_index].x - 1;
         }
 

        }
    }

    CUDA_HOST_DEVICE int getReadCoordinateForReferenceCoordinate(const uint32 read_index, uint32 ref_coord)
    {
        const CRQ_index idx = batch.crq_index(read_index);


                if (read_coord == uint16(-1))
                {
                    // if there is no read coordinate, we must be in a deletion
                    // move forward/backward (depending on which tail we're locating) until we find a valid clipping point

                    if (tail == AdaptorTail::right)
                    {
                        while(ev < cigar_stop)
                        {
                            read_coord = ctx.cigar.cigar_event_read_coordinates[ev];

                            if (read_coord != uint16(-1))
                                break;

                            ev++;
                        }
                    } else {
                        while (ev > cigar_start)
                        {
                            read_coord = ctx.cigar.cigar_event_read_coordinates[ev];

                            if (read_coord != uint16(-1))
                                break;

                            ev--;
                        }
                    }

                    // if we get here, then we failed to find a clipping coordinate
                    // this should not happen unless the read is malformed
                    if (tail == AdaptorTail::right && ev == cigar_stop ||
                        tail == AdaptorTail::left && ev == cigar_start)
                        return -1;
                }

