@Test public void testUnmappedValidateRef() { Slice slice = new Slice(); slice.alignmentStart = SAMRecord.NO_ALIGNMENT_START; slice.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; Assert.assertTrue(slice.validateRefMD5(null)); Assert.assertTrue(slice.validateRefMD5(new byte[0])); Assert.assertTrue(slice.validateRefMD5(new byte[1024])); }
public boolean validateRefMD5(final byte[] ref) { if(sequenceId == Slice.MULTI_REFERENCE) throw new SAMException("Cannot verify a slice with multiple references on a single reference."); if (sequenceId == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) return true; alignmentBordersSanityCheck(ref); if (!validateRefMD5(ref, alignmentStart, alignmentSpan, refMD5)) { final int shoulderLength = 10; final String excerpt = getBrief(alignmentStart, alignmentSpan, ref, shoulderLength); if (validateRefMD5(ref, alignmentStart, alignmentSpan - 1, refMD5)) { log.warn(String.format("Reference MD5 matches partially for slice %d:%d-%d, %s", sequenceId, alignmentStart, alignmentStart + alignmentSpan - 1, excerpt)); return true; } log.error(String.format("Reference MD5 mismatch for slice %d:%d-%d, %s", sequenceId, alignmentStart, alignmentStart + alignmentSpan - 1, excerpt)); return false; } return true; }
public boolean validateRefMD5(final byte[] ref) { if(sequenceId == Slice.MULTI_REFERENCE) throw new SAMException("Cannot verify a slice with multiple references on a single reference."); if (sequenceId == SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX) return true; alignmentBordersSanityCheck(ref); if (!validateRefMD5(ref, alignmentStart, alignmentSpan, refMD5)) { final int shoulderLength = 10; final String excerpt = getBrief(alignmentStart, alignmentSpan, ref, shoulderLength); if (validateRefMD5(ref, alignmentStart, alignmentSpan - 1, refMD5)) { log.warn(String.format("Reference MD5 matches partially for slice %d:%d-%d, %s", sequenceId, alignmentStart, alignmentStart + alignmentSpan - 1, excerpt)); return true; } log.error(String.format("Reference MD5 mismatch for slice %d:%d-%d, %s", sequenceId, alignmentStart, alignmentStart + alignmentSpan - 1, excerpt)); return false; } return true; }
@Test public void test_validateRef() { byte[] ref = "AAAAA".getBytes(); final byte[] md5 = SequenceUtil.calculateMD5(ref, 0, Math.min(5, ref.length)); Slice slice = new Slice(); slice.sequenceId = 0; slice.alignmentSpan = 5; slice.alignmentStart = 1; slice.setRefMD5(ref); Assert.assertEquals(slice.refMD5, md5); Assert.assertTrue(slice.validateRefMD5(ref)); }
if (!s.validateRefMD5(ref)) { log.error(String .format("Reference sequence MD5 mismatch for slice: seq id %d, start %d, span %d, expected MD5 %s",
continue; if (!slice.validateRefMD5(refs)) { final String msg = String.format( "Reference sequence MD5 mismatch for slice: sequence id %d, start %d, span %d, expected MD5 %s",
continue; if (!slice.validateRefMD5(refs)) { final String msg = String.format( "Reference sequence MD5 mismatch for slice: sequence id %d, start %d, span %d, expected MD5 %s",