static List<CramCompressionRecord> getMultiRefRecords() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); record.sequenceId = i; if (i % 2 == 0) { record.setSegmentUnmapped(true); } records.add(record); } return records; }
static List<CramCompressionRecord> getSingleRefRecords(final int recordCount) { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < recordCount; i++) { final CramCompressionRecord record = createMappedRecord(i); if (i % 2 == 0) { record.setSegmentUnmapped(true); } records.add(record); } return records; }
static List<CramCompressionRecord> getUnmappedNoRefRecords() { final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); record.setSegmentUnmapped(true); record.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; records.add(record); } return records; }
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; }
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; }
private static CramCompressionRecord createRecord(int recordIndex, int seqId, int start) { byte[] bases = "AAAAA".getBytes(); int readLength = bases.length; final CramCompressionRecord record = new CramCompressionRecord(); record.setSegmentUnmapped(false); record.setMultiFragment(false); record.sequenceId = seqId; record.alignmentStart =start; record.readBases = record.qualityScores = bases; record.readName = Integer.toString(recordIndex); record.readLength = readLength; record.readFeatures = Collections.emptyList(); return record; } @Test
@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); }
@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 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.setLastSegment(true); single.readFeatures = Collections.emptyList(); single.setSegmentUnmapped(false); unmapped.setLastSegment(true); unmapped.readFeatures = Collections.emptyList(); unmapped.setSegmentUnmapped(true);
@Test public void multiRefWithUnmappedNoStart() { final ContainerFactory factory = new ContainerFactory(getSAMFileHeaderForTests(), 10); final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); if (i % 2 == 0) { record.setSegmentUnmapped(true); record.alignmentStart = SAMRecord.NO_ALIGNMENT_START; } records.add(record); } final Container container = factory.buildContainer(records); assertContainerState(container, 10, Slice.MULTI_REFERENCE, Slice.NO_ALIGNMENT_START, Slice.NO_ALIGNMENT_SPAN); }
@Test public void singleRefWithUnmappedNoRef() { final ContainerFactory factory = new ContainerFactory(getSAMFileHeaderForTests(), 10); final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); if (i % 2 == 0) { record.setSegmentUnmapped(true); record.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; } records.add(record); } final Container container = factory.buildContainer(records); assertContainerState(container, 10, Slice.MULTI_REFERENCE, Slice.NO_ALIGNMENT_START, Slice.NO_ALIGNMENT_SPAN); }
@Test public void singleRefWithUnmappedNoStart() { final ContainerFactory factory = new ContainerFactory(getSAMFileHeaderForTests(), 10); final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); if (i % 2 == 0) { record.setSegmentUnmapped(true); record.alignmentStart = SAMRecord.NO_ALIGNMENT_START; } records.add(record); } final Container container = factory.buildContainer(records); assertContainerState(container, 10, Slice.MULTI_REFERENCE, Slice.NO_ALIGNMENT_START, Slice.NO_ALIGNMENT_SPAN); }
@Test public void multiRefWithUnmappedNoRef() { final ContainerFactory factory = new ContainerFactory(getSAMFileHeaderForTests(), 10); final List<CramCompressionRecord> records = new ArrayList<>(); for (int i = 0; i < 10; i++) { final CramCompressionRecord record = createMappedRecord(i); if (i % 2 == 0) { record.setSegmentUnmapped(true); record.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; } records.add(record); } final Container container = factory.buildContainer(records); assertContainerState(container, 10, Slice.MULTI_REFERENCE, Slice.NO_ALIGNMENT_START, Slice.NO_ALIGNMENT_SPAN); }
CramCompressionRecord r = new CramCompressionRecord(); r.alignmentStart = 1; r.setSegmentUnmapped(true); Assert.assertEquals(r.getAlignmentEnd(), SAMRecord.NO_ALIGNMENT_START); r.alignmentStart = 1; r.readLength = readLength; r.setSegmentUnmapped(false); Assert.assertEquals(r.getAlignmentEnd(), r.readLength + r.alignmentStart - 1); r.alignmentStart = 1; r.readLength = readLength; r.setSegmentUnmapped(false); r.readFeatures = new ArrayList<>(); String softClip = "AAA"; r.alignmentStart = 1; r.readLength = readLength; r.setSegmentUnmapped(false); r.readFeatures = new ArrayList<>(); int deletionLength = 5; r.alignmentStart = 1; r.readLength = readLength; r.setSegmentUnmapped(false); r.readFeatures = new ArrayList<>(); String insertion = "CCCCCCCCCC"; r.alignmentStart = 1;
static List<Container> getMultiRefContainersForStateTest() { final ContainerFactory factory = new ContainerFactory(getSAMFileHeaderForTests(), 10); final List<Container> testContainers = new ArrayList<>(3); final List<CramCompressionRecord> records = new ArrayList<>(); final CramCompressionRecord record0 = createMappedRecord(0); record0.sequenceId = 0; records.add(record0); final Container container0 = factory.buildContainer(records); final CramCompressionRecord record1 = createMappedRecord(1); record1.sequenceId = 1; records.add(record1); final Container container1 = factory.buildContainer(records); final CramCompressionRecord unmapped = createMappedRecord(2); unmapped.alignmentStart = SAMRecord.NO_ALIGNMENT_START; unmapped.sequenceId = SAMRecord.NO_ALIGNMENT_REFERENCE_INDEX; unmapped.setSegmentUnmapped(true); records.add(unmapped); final Container container2 = factory.buildContainer(records); testContainers.add(container0); testContainers.add(container1); testContainers.add(container2); return testContainers; }
record0.setLastSegment(true); record0.readFeatures = Collections.emptyList(); record0.setSegmentUnmapped(false); record1.setLastSegment(true); record1.readFeatures = Collections.emptyList(); record1.setSegmentUnmapped(false); unmapped.setLastSegment(true); unmapped.readFeatures = Collections.emptyList(); unmapped.setSegmentUnmapped(true);
cramRecord.setSegmentUnmapped(record.getReadUnmappedFlag()); cramRecord.setNegativeStrand(record.getReadNegativeStrandFlag()); cramRecord.setFirstSegment(record.getReadPairedFlag() && record.getFirstOfPairFlag());
cramRecord.setSegmentUnmapped(record.getReadUnmappedFlag()); cramRecord.setNegativeStrand(record.getReadNegativeStrandFlag()); cramRecord.setFirstSegment(record.getReadPairedFlag() && record.getFirstOfPairFlag());