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.setMateNegativeStrandFlag(false); read.setMateAlignmentStart(start + nClips); read.setInferredInsertSize(readLength); } else { read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); read.setMateAlignmentStart(start - 1); read.setInferredInsertSize(goodBases);
read.setFirstOfPairFlag(true); read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); bad.setMateNegativeStrandFlag(false); tests.add( new Object[]{ "read and mate both on positive strand", bad, false }); bad.setMateNegativeStrandFlag(false); bad.setMateAlignmentStart(1000); tests.add( new Object[]{ "negative strand read ends before mate starts", bad, false });
readLeftAdapter.setFirstOfPairFlag(true); readLeftAdapter.setReadNegativeStrandFlag(true); readLeftAdapter.setMateNegativeStrandFlag(false); readLeftAdapter.setMateAlignmentStart(readRightAdapter.getAlignmentStart()); readRightAdapter.setCigarString(common.length() + "M4S"); readRightAdapter.setFirstOfPairFlag(false); readRightAdapter.setReadNegativeStrandFlag(false); readRightAdapter.setMateNegativeStrandFlag(true); readRightAdapter.setMateAlignmentStart(readLeftAdapter.getAlignmentStart());
read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); boundary = get.getAdaptor(read); Assert.assertEquals(boundary, myStart + fragmentSize); read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(false); read.setMateNegativeStrandFlag(true); boundary = get.getAdaptor(read); Assert.assertEquals(boundary, myStart + fragmentSize); read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); boundary = get.getAdaptor(read); Assert.assertEquals(boundary, mateStart - 1); read.setAlignmentStart(myStart); read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); boundary = get.getAdaptor(read); Assert.assertEquals(boundary, mateStart - 1); read.setInferredInsertSize(0); read.setReadNegativeStrandFlag(true); read.setMateNegativeStrandFlag(false); boundary = get.getAdaptor(read); Assert.assertEquals(boundary, ReadUtils.CANNOT_COMPUTE_ADAPTOR_BOUNDARY);
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; }