private static CramCompressionRecord createMappedRecord(int i) { final CramCompressionRecord record = new CramCompressionRecord(); record.readBases = "AAA".getBytes(); record.qualityScores = "!!!".getBytes(); record.readLength = 3; record.readName = "" + i; record.sequenceId = 0; record.alignmentStart = i + 1; record.setLastSegment(true); record.setSegmentUnmapped(false); record.readFeatures = Collections.emptyList(); return record; }
static List<CramCompressionRecord> getUnmappedNoStartRecords() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); record.setSegmentUnmapped(true); record.alignmentStart = SAMRecord.NO_ALIGNMENT_START; record.setLastSegment(true); records.add(record); } return records; }
@Test public void testUnmappedNoRefBuild() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = new CramCompressionRecord(); record.readBases = "AAA".getBytes(); record.qualityScores = "!!!".getBytes(); record.readLength = 3; record.readName = "" + i; record.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; record.alignmentStart = i + 1; record.setLastSegment(true); record.readFeatures = Collections.emptyList(); record.setSegmentUnmapped(true); records.add(record); } final CompressionHeader header = new CompressionHeaderFactory().build(records, null, true); final Slice slice = Slice.buildSlice(records, header); Assert.assertEquals(slice.nofRecords, 10); Assert.assertEquals(slice.sequenceId, SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX); Assert.assertEquals(slice.alignmentStart, Slice.NO_ALIGNMENT_START); Assert.assertEquals(slice.alignmentSpan, Slice.NO_ALIGNMENT_SPAN); }
@Test public void testUnmappedNoStartBuild() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = new CramCompressionRecord(); record.readBases = "AAA".getBytes(); record.qualityScores = "!!!".getBytes(); record.readLength = 3; record.readName = "" + i; record.sequenceId = i; record.alignmentStart = SAMRecord.NO_ALIGNMENT_START; record.setLastSegment(true); record.readFeatures = Collections.emptyList(); record.setSegmentUnmapped(true); records.add(record); } final CompressionHeader header = new CompressionHeaderFactory().build(records, null, true); final Slice slice = Slice.buildSlice(records, header); Assert.assertEquals(slice.nofRecords, 10); Assert.assertEquals(slice.sequenceId, SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX); Assert.assertEquals(slice.alignmentStart, Slice.NO_ALIGNMENT_START); Assert.assertEquals(slice.alignmentSpan, Slice.NO_ALIGNMENT_SPAN); }
single.sequenceId = 0; single.alignmentStart = 1; single.setLastSegment(true); single.readFeatures = Collections.emptyList(); single.setSegmentUnmapped(false); unmapped.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; unmapped.alignmentStart = SAMRecord.NO_ALIGNMENT_START; unmapped.setLastSegment(true); unmapped.readFeatures = Collections.emptyList(); unmapped.setSegmentUnmapped(true);
@Test public void testMultiRefBuild() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = new CramCompressionRecord(); record.readBases = "AAA".getBytes(); record.qualityScores = "!!!".getBytes(); record.readLength = 3; record.readName = "" + i; record.sequenceId = i; record.alignmentStart = i + 1; record.setLastSegment(true); record.readFeatures = Collections.emptyList(); if (i % 2 == 0) { record.setSegmentUnmapped(true); } else { record.setSegmentUnmapped(false); } records.add(record); } final CompressionHeader header = new CompressionHeaderFactory().build(records, null, true); final Slice slice = Slice.buildSlice(records, header); Assert.assertEquals(slice.nofRecords, 10); Assert.assertEquals(slice.sequenceId, Slice.MULTI_REFERENCE); Assert.assertEquals(slice.alignmentStart, Slice.NO_ALIGNMENT_START); Assert.assertEquals(slice.alignmentSpan, Slice.NO_ALIGNMENT_SPAN); }
@Test public void testSingleRefBuild() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = new CramCompressionRecord(); record.readBases = "AAA".getBytes(); record.qualityScores = "!!!".getBytes(); record.readLength = 3; record.readName = "" + i; record.sequenceId = 0; record.alignmentStart = i + 1; record.setLastSegment(true); record.readFeatures = Collections.emptyList(); if (i % 2 == 0) { record.setSegmentUnmapped(true); } else { record.setSegmentUnmapped(false); } records.add(record); } final CompressionHeader header = new CompressionHeaderFactory().build(records, null, true); final Slice slice = Slice.buildSlice(records, header); Assert.assertEquals(slice.nofRecords, 10); Assert.assertEquals(slice.sequenceId, 0); Assert.assertEquals(slice.alignmentStart, 1); Assert.assertEquals(slice.alignmentSpan, 12); }
record0.sequenceId = 0; record0.alignmentStart = 1; record0.setLastSegment(true); record0.readFeatures = Collections.emptyList(); record0.setSegmentUnmapped(false); record1.sequenceId = 1; record1.alignmentStart = 1; record1.setLastSegment(true); record1.readFeatures = Collections.emptyList(); record1.setSegmentUnmapped(false); unmapped.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; unmapped.alignmentStart = SAMRecord.NO_ALIGNMENT_START; unmapped.setLastSegment(true); unmapped.readFeatures = Collections.emptyList(); unmapped.setSegmentUnmapped(true);
cramRecord.setNegativeStrand(record.getReadNegativeStrandFlag()); cramRecord.setFirstSegment(record.getReadPairedFlag() && record.getFirstOfPairFlag()); cramRecord.setLastSegment(record.getReadPairedFlag() && record.getSecondOfPairFlag()); cramRecord.setSecondaryAlignment(record.isSecondaryAlignment()); cramRecord.setVendorFiltered(record.getReadFailsVendorQualityCheckFlag()); else cramRecord.readGroupID = -1; if (!record.getReadPairedFlag()) cramRecord.setLastSegment(false); else { if (record.getFirstOfPairFlag()) cramRecord.setLastSegment(false); else if (record.getSecondOfPairFlag()) cramRecord.setLastSegment(true);
cramRecord.setNegativeStrand(record.getReadNegativeStrandFlag()); cramRecord.setFirstSegment(record.getReadPairedFlag() && record.getFirstOfPairFlag()); cramRecord.setLastSegment(record.getReadPairedFlag() && record.getSecondOfPairFlag()); cramRecord.setSecondaryAlignment(record.isSecondaryAlignment()); cramRecord.setVendorFiltered(record.getReadFailsVendorQualityCheckFlag()); else cramRecord.readGroupID = -1; if (!record.getReadPairedFlag()) cramRecord.setLastSegment(false); else { if (record.getFirstOfPairFlag()) cramRecord.setLastSegment(false); else if (record.getSecondOfPairFlag()) cramRecord.setLastSegment(true);