public ClippedGATKSAMRecord(final GATKSAMRecord read, int start, int end) {
super(read.getHeader());
this.setReferenceIndex(read.getReferenceIndex());
this.setAlignmentStart(read.getAlignmentStart() + start);
this.setMappingQuality(100);
this.setFlags(read.getFlags());
this.setMateReferenceIndex(read.getMateReferenceIndex());
this.setMateAlignmentStart(read.getMateAlignmentStart());
this.setInferredInsertSize(read.getInferredInsertSize());
this.setReadBases(Arrays.copyOfRange(read.getReadBases(), start, end));
this.setBaseQualities(Arrays.copyOfRange(read.getBaseQualities(),start,end));
this.setReadName(read.getReadName());
insertionQuals = Arrays.copyOfRange(read.getBaseInsertionQualities(),start,end);
deletionQuals = Arrays.copyOfRange(read.getBaseDeletionQualities(),start,end);
super.setReadName(null);
super.setCigarString(null);
super.setReadBases(null);
super.setBaseQualities(null);
GATKBin.setReadIndexingBin(this, -1);
}