Package org.broadinstitute.gatk.utils.sam

Examples of org.broadinstitute.gatk.utils.sam.GATKSAMRecord


        Assert.assertEquals(result, read.getSoftStart() < refWindowEnd && read.getSoftStart() + readLength > refWindowEnd);
    }

    @Test
    public void clipDownstreamAtBorderTest() {
        final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "basicRead", 0, 5, 10);
        read.setCigarString("10M");
        Assert.assertEquals(PairHMMIndelErrorModel.mustClipDownstream(read, 13), true);
        Assert.assertEquals(PairHMMIndelErrorModel.mustClipDownstream(read, 14), false);
    }
View Full Code Here


    }

    @Test
    public void testSecondaryAlignmentsDoNotInterfere() {
        final List<GATKSAMRecord> properReads = ArtificialSAMUtils.createPair(header, "foo", 1, 10, 30, true, false);
        final GATKSAMRecord read1 = properReads.get(0);
        read1.setAlignmentStart(8); // move the read
        read1.setFlags(99);   // first in proper pair, mate negative strand

        final GATKSAMRecord read2Primary = properReads.get(1);
        read2Primary.setFlags(147);   // second in pair, mate unmapped, not primary alignment

        Assert.assertEquals(read1.getInferredInsertSize(), 21);

        final GATKSAMRecord read2NonPrimary = new GATKSAMRecord(read2Primary);
        read2NonPrimary.setFlags(393);   // second in proper pair, on reverse strand

        final ConstrainedMateFixingManager manager = new ConstrainedMateFixingManager(null, genomeLocParser, 1000, 1000, 1000);
        manager.addRead(read1, true, false);
        manager.addRead(read2NonPrimary, false, false);
        manager.addRead(read2Primary, false, false);
View Full Code Here

    }

    @Test
    public void testSecondaryAlignmentsDoNotCauseAccidentalRemovalOfMate() {
        final List<GATKSAMRecord> properReads = ArtificialSAMUtils.createPair(header, "foo", 1, 530, 1594, true, false);
        final GATKSAMRecord read1 = properReads.get(0);
        read1.setFlags(99);   // first in proper pair, mate negative strand

        final GATKSAMRecord read2Primary = properReads.get(1);
        read2Primary.setFlags(147);   // second in pair, mate unmapped, not primary alignment
        read2Primary.setAlignmentStart(1596); // move the read

        final GATKSAMRecord read2NonPrimary = new GATKSAMRecord(read2Primary);
        read2NonPrimary.setReadName("foo");
        read2NonPrimary.setFlags(393);   // second in proper pair, on reverse strand
        read2NonPrimary.setAlignmentStart(451);
        read2NonPrimary.setMateAlignmentStart(451);

        final ConstrainedMateFixingManager manager = new ConstrainedMateFixingManager(null, genomeLocParser, 10000, 200, 10000);
        manager.addRead(read2NonPrimary, false, false);
        manager.addRead(read1, false, false);
View Full Code Here

public class HaplotypeBAMWriterUnitTest extends BaseTest {
    private final static boolean DEBUG = false;
    final SAMFileHeader header = ArtificialSAMUtils.createArtificialSamHeader(1, 1, 1000);

    private GATKSAMRecord makeRead(final String baseString) {
        final GATKSAMRecord read = ArtificialSAMUtils.createArtificialRead(header, "myRead", 0, 1, 10);
        final byte[] bases = baseString.getBytes();
        read.setReadBases(bases.clone());
        read.setBaseQualities(Utils.dupBytes((byte)30, read.getReadLength()));
        return read;
    }
View Full Code Here

        final String hapBases = "ACTGAAGGTTCC";
        final Haplotype allM = makeHaplotype(hapBases, hapBases.length() + "M");

        // make sure we get back a cigar of the right length
        for ( int i = -1; i < hapBases.length(); i++ ) {
            final GATKSAMRecord read = makeRead(hapBases);
            if ( i != -1 ) read.getReadBases()[i] = (byte)'A';
            tests.add(new Object[]{read, allM, 10, 10, allM.getCigar().toString()});
        }

        // make sure insertions at the front are correctly handled
        for ( int padFront = 1; padFront < 10; padFront++ ) {
            final GATKSAMRecord read = makeRead(Utils.dupString("N", padFront) + hapBases);
            tests.add(new Object[]{read, allM, 10, 10, padFront + "I" + allM.getCigar().toString()});
        }

        // make sure insertions at the back are correctly handled
        for ( int padBack = 1; padBack < 10; padBack++ ) {
            final GATKSAMRecord read = makeRead(hapBases + Utils.dupString("N", padBack));
            tests.add(new Object[]{read, allM, 10, 10, allM.getCigar().toString() + padBack + "I"});
        }

        // make sure refStart and hapStart are respected
        for ( int refStart = 1; refStart < 10; refStart++ ) {
            for ( int hapStart = refStart; hapStart < 10 + refStart; hapStart++ ) {
                final Haplotype hap = new Haplotype(allM.getBases());
                hap.setCigar(allM.getCigar());
                hap.setAlignmentStartHapwrtRef(hapStart);

                final GATKSAMRecord read = makeRead(new String(hap.getBases()));
                tests.add(new Object[]{read, hap, refStart, refStart + hapStart, allM.getCigar().toString()});
            }
        }

        // example case of bad alignment because SW doesn't necessarily left-align indels
        {
            final String hap = "ACTGTGGGTTCCTCTTATTTTATTTCTACATCAATGTTCATATTTAACTTATTATTTTATCTTATTTTTAAATTTCTTTTATGTTGAGCCTTGATGAAAGCCATAGGTTCTCTCATATAATTGTATGTGTATGTATGTATATGTACATAATATATACATATATGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTGTATTACATAATATATACATATATGTATATATTATGTATATGTACATAATATATACATATATG";
            final String hapCigar = "399M";
            final String readBases = "ATGTACATAATATATACATATATGTATATGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTACATAATATATACGTATATGTATGTGTATGTGTATTACATAATATATACATATATGTATATATTATGTATATGTACATAATAT";
            final GATKSAMRecord read = makeRead(readBases);
            final int refStart = 10130100;
            final int hapStart = 500;
            final String badCigar = "31M6D211M";
            final String goodCigar = "28M6D214M";
            final Haplotype badHap = new Haplotype(hap.getBytes());
View Full Code Here


    @Test(dataProvider = "ReadAlignedToRefData", enabled = true)
    public void testReadAlignedToRef(final GATKSAMRecord read, final Haplotype haplotype, final int refStart, final int expectedReadStart, final String expectedReadCigar) throws Exception {
        final HaplotypeBAMWriter writer = new CalledHaplotypeBAMWriter(new MockDestination());
        final GATKSAMRecord originalReadCopy = (GATKSAMRecord)read.clone();

        if ( expectedReadCigar == null ) {
            Assert.assertNull(AlignmentUtils.createReadAlignedToRef(read, haplotype, refStart, true));
        } else {
            final Cigar expectedCigar = TextCigarCodec.getSingleton().decode(expectedReadCigar);
            final GATKSAMRecord alignedRead = AlignmentUtils.createReadAlignedToRef(read, haplotype, refStart, true);

            Assert.assertEquals(alignedRead.getReadName(), originalReadCopy.getReadName());
            Assert.assertEquals(alignedRead.getAlignmentStart(), expectedReadStart);
            Assert.assertEquals(alignedRead.getReadBases(), originalReadCopy.getReadBases());
            Assert.assertEquals(alignedRead.getBaseQualities(), originalReadCopy.getBaseQualities());
            Assert.assertEquals(alignedRead.getAlignmentStart(), expectedReadStart);
            Assert.assertEquals(alignedRead.getCigar(), expectedCigar);
            Assert.assertNotNull(alignedRead.getAttribute("HC"));
        }

        Assert.assertEquals(read, originalReadCopy, "createReadAlignedToRef seems be modifying the original read!");
    }
View Full Code Here

            haplotype.setAlignmentStartHapwrtRef(align.getAlignmentStart2wrt1());
            haplotype.setCigar(align.getCigar());

            for ( final List<Mutation> readMutations : Utils.makePermutations(allMutations, 3, false) ) {
                final MutatedSequence readBases = mutateSequence(hap.seq, readMutations);
                final GATKSAMRecord read = makeRead(readBases.seq);
                tests.add(new Object[]{i++, read, paddedReference, haplotype, hap.numMismatches + readBases.numMismatches});
            }
        }

        // for convenient testing of a single failing case
View Full Code Here


    @Test(dataProvider = "ComplexReadAlignedToRef", enabled = !DEBUG)
    public void testReadAlignedToRefComplexAlignment(final int testIndex, final GATKSAMRecord read, final String reference, final Haplotype haplotype, final int expectedMaxMismatches) throws Exception {
        final HaplotypeBAMWriter writer = new CalledHaplotypeBAMWriter(new MockDestination());
        final GATKSAMRecord alignedRead = AlignmentUtils.createReadAlignedToRef(read, haplotype, 1, true);
        if ( alignedRead != null ) {
            final int mismatches = AlignmentUtils.getMismatchCount(alignedRead, reference.getBytes(), alignedRead.getAlignmentStart() - 1).numMismatches;
            Assert.assertTrue(mismatches <= expectedMaxMismatches,
                    "Alignment of read to ref looks broken.  Expected at most " + expectedMaxMismatches + " but saw " + mismatches
                            + " for readBases " + new String(read.getReadBases()) + " with cigar " + read.getCigar() + " reference " + reference + " haplotype "
                            + haplotype + " with cigar " + haplotype.getCigar() + " aligned read cigar " + alignedRead.getCigarString() + " @ " + alignedRead.getAlignmentStart());
        }
    }
View Full Code Here

     * @param cigarString    the read's cigar string
     * @param alignmentStart the read's alignment start
     */
    @Test(enabled = true, dataProvider = "reads")
    public void testAddingReads(String cigarString, int alignmentStart) {
        final GATKSAMRecord read = createReadAndAddToBin(cigarString, alignmentStart);
        final GenomeLoc readLoc = parser.createGenomeLoc(read.getReferenceName(), read.getReferenceIndex(), read.getSoftStart(), Math.max(read.getSoftStart(), read.getSoftEnd()));
        Assert.assertEquals(readBin.getLocation(), readLoc);
        readBin.clear();
    }
View Full Code Here

        Assert.assertEquals(readBin.getLocation(), readLoc);
        readBin.clear();
    }

    public GATKSAMRecord createReadAndAddToBin(String cigarString, int alignmentStart) {
        final GATKSAMRecord read = ReadUtils.createRandomRead(readLength);
        read.setCigarString(cigarString);
        read.setAlignmentStart(alignmentStart);
        readBin.add(read);
        return read;
    }
View Full Code Here

TOP

Related Classes of org.broadinstitute.gatk.utils.sam.GATKSAMRecord

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.