@Test(expectedExceptions = IllegalStateException.class) public void testStrandlessReadsFailSetStrand() { final byte [] bases = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; final byte [] quals = {20 , 20 , 20 , 20 , 20 , 20 , 20 , 20 }; GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(bases, quals, "6M"); read.setIsStrandless(true); read.setReadNegativeStrandFlag(true); } }
@Test public void testStrandlessReads() { final byte [] bases = {'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'}; final byte [] quals = {20 , 20 , 20 , 20 , 20 , 20 , 20 , 20 }; GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(bases, quals, "6M"); Assert.assertEquals(read.isStrandless(), false); read.setReadNegativeStrandFlag(false); Assert.assertEquals(read.isStrandless(), false); Assert.assertEquals(read.getReadNegativeStrandFlag(), false); read.setReadNegativeStrandFlag(true); Assert.assertEquals(read.isStrandless(), false); Assert.assertEquals(read.getReadNegativeStrandFlag(), true); read.setReadNegativeStrandFlag(true); read.setIsStrandless(true); Assert.assertEquals(read.isStrandless(), true); Assert.assertEquals(read.getReadNegativeStrandFlag(), false, "negative strand flag should return false even through its set for a strandless read"); }
public final static List<GATKSAMRecord> createPair(SAMFileHeader header, String name, int readLen, int leftStart, int rightStart, boolean leftIsFirst, boolean leftIsNegative) { GATKSAMRecord left = ArtificialSAMUtils.createArtificialRead(header, name, 0, leftStart, readLen); GATKSAMRecord right = ArtificialSAMUtils.createArtificialRead(header, name, 0, rightStart, readLen); left.setReadPairedFlag(true); right.setReadPairedFlag(true); left.setProperPairFlag(true); right.setProperPairFlag(true); left.setFirstOfPairFlag(leftIsFirst); right.setFirstOfPairFlag(!leftIsFirst); left.setReadNegativeStrandFlag(leftIsNegative); left.setMateNegativeStrandFlag(!leftIsNegative); right.setReadNegativeStrandFlag(!leftIsNegative); right.setMateNegativeStrandFlag(leftIsNegative); left.setMateAlignmentStart(right.getAlignmentStart()); right.setMateAlignmentStart(left.getAlignmentStart()); left.setMateReferenceIndex(0); right.setMateReferenceIndex(0); int isize = rightStart + readLen - leftStart; left.setInferredInsertSize(isize); right.setInferredInsertSize(-isize); return Arrays.asList(left, right); }
read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); read.setMateAlignmentStart(start + nClips); tests.add(new Object[]{nClips, goodBases, 0, read}); } else { read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); read.setMateAlignmentStart(start - 1);
@Test(enabled = true) public void testHardClippingBeforeMergeResultingInCompletelyContainedSecondRead() { final String adapter = "NNNN"; final int minReadSize = 7; final GATKSAMRecord readLeftAdapter = makeOverlappingRead(adapter, 30, Utils.dupString("A", 10), Utils.dupBytes((byte)30, 10), "", 30, 10); final GATKSAMRecord readRightAdapter = makeOverlappingRead("", 30, Utils.dupString("A", minReadSize), Utils.dupBytes((byte)30, minReadSize), adapter, 30, 10); readLeftAdapter.setCigarString(adapter.length() + "S10M"); readLeftAdapter.setProperPairFlag(true); readLeftAdapter.setFirstOfPairFlag(true); readLeftAdapter.setReadNegativeStrandFlag(true); readLeftAdapter.setMateAlignmentStart(10); readRightAdapter.setCigarString(minReadSize + "M4S"); readRightAdapter.setProperPairFlag(true); readRightAdapter.setFirstOfPairFlag(false); readRightAdapter.setReadNegativeStrandFlag(false); final int insertSize = minReadSize; readLeftAdapter.setInferredInsertSize(insertSize); readRightAdapter.setInferredInsertSize(-insertSize); final GATKSAMRecord actual = FragmentUtils.mergeOverlappingPairedFragments(readLeftAdapter, readRightAdapter); Assert.assertNull(actual); }
myStart = BEFORE; read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); boundary = get.getAdaptor(read); myStart = AFTER; read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); boundary = get.getAdaptor(read); myStart = AFTER; read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); boundary = get.getAdaptor(read); myStart = BEFORE; read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); boundary = get.getAdaptor(read); read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); boundary = get.getAdaptor(read); Assert.assertEquals(boundary, ReadUtils.CANNOT_COMPUTE_ADAPTOR_BOUNDARY); read.setReadNegativeStrandFlag(false);
readLeftAdapter.setReadPairedFlag(true); readLeftAdapter.setFirstOfPairFlag(true); readLeftAdapter.setReadNegativeStrandFlag(true); readLeftAdapter.setMateNegativeStrandFlag(false); readLeftAdapter.setMateAlignmentStart(readRightAdapter.getAlignmentStart()); readRightAdapter.setReadPairedFlag(true); readRightAdapter.setFirstOfPairFlag(false); readRightAdapter.setReadNegativeStrandFlag(false); readRightAdapter.setMateNegativeStrandFlag(true); readRightAdapter.setMateAlignmentStart(readLeftAdapter.getAlignmentStart());
read.setInferredInsertSize(80); read.setFirstOfPairFlag(true); read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); bad.setReadNegativeStrandFlag(true); tests.add( new Object[]{ "read and mate both on negative strand", bad, false }); bad.setReadNegativeStrandFlag(true); bad.setMateNegativeStrandFlag(false); bad.setMateAlignmentStart(1000);
/** * Creates and writes an artificial read given the appropriate data * * @param readBases the bases * @param contig the contig * @param start the read start * @param cigar the cigar string * @param sample the sample name (used to get the right read group) * @param isNegStrand should this read be on the negative strand? */ private void writeRead(final byte[] readBases, final String contig, final int start, final String cigar, final String sample, final boolean isNegStrand) { final GATKSAMRecord read = new GATKSAMRecord(header); read.setBaseQualities(readQuals); read.setReadBases(readBases); read.setReadName("" + readNameCounter++); read.setCigarString(cigar); read.setReadPairedFlag(false); read.setAlignmentStart(start); read.setMappingQuality(60); read.setReferenceName(contig); read.setReadNegativeStrandFlag(isNegStrand); read.setAttribute("RG", sampleRG(sample).getReadGroupId()); readWriter.addAlignment(read); }
read.setMappingQuality(artificialMappingQuality); read.setReferenceName(loc.getContig()); read.setReadNegativeStrandFlag(false); read.setReadGroup(sampleRG(sample));
rg.setPlatform("illumina"); read.setReadGroup(rg); read.setReadNegativeStrandFlag(rnd.nextBoolean()); final byte[] mQuals = read.getBaseQualities(EventType.BASE_SUBSTITUTION); final byte[] iQuals = read.getBaseQualities(EventType.BASE_INSERTION);
@Test(enabled = true) public void testSimpleCycles() { short readLength = 10; GATKSAMRecord read = ReadUtils.createRandomRead(readLength); read.setReadPairedFlag(true); read.setReadGroup(new GATKSAMReadGroupRecord("MY.ID")); read.getReadGroup().setPlatform("illumina"); ReadCovariates readCovariates = new ReadCovariates(read.getReadLength(), 1); covariate.recordValues(read, readCovariates); verifyCovariateArray(readCovariates.getMismatchesKeySet(), 1, (short) 1); read.setReadNegativeStrandFlag(true); covariate.recordValues(read, readCovariates); verifyCovariateArray(readCovariates.getMismatchesKeySet(), readLength, -1); read.setSecondOfPairFlag(true); covariate.recordValues(read, readCovariates); verifyCovariateArray(readCovariates.getMismatchesKeySet(), -readLength, 1); read.setReadNegativeStrandFlag(false); covariate.recordValues(read, readCovariates); verifyCovariateArray(readCovariates.getMismatchesKeySet(), -1, -1); }
private GATKSAMRecord createReadOffContig(final SAMFileHeader header, final boolean negStrand, final int pre, final int post) { final int contigLen = header.getSequence(0).getSequenceLength(); final int readLen = pre + contigLen + post; final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "read1", 0, 1, readLen); read.setAlignmentStart(1); read.setCigar(TextCigarCodec.decode(pre + "S" + contigLen + "M" + post + "S")); read.setBaseQualities(Utils.dupBytes((byte) 30, readLen)); read.setReadBases(Utils.dupBytes((byte)'A', readLen)); read.setMappingQuality(60); read.setMateAlignmentStart(1); read.setProperPairFlag(true); read.setReadPairedFlag(true); read.setInferredInsertSize(30); read.setReadNegativeStrandFlag(negStrand); read.setMateNegativeStrandFlag(! negStrand); read.setReadGroup(new GATKSAMReadGroupRecord("foo")); return read; }