@Test(dataProvider = "data") public void testMappingQualityFilter(final int minMappingQuality, final int expectedPassingRecords) { final MappingQualityFilter filter = new MappingQualityFilter(minMappingQuality); int actualPassingRecords = 0; for (final SAMRecord rec : builder) { if (!filter.filterOut(rec)) actualPassingRecords++; } Assert.assertEquals(actualPassingRecords, expectedPassingRecords); }
filters.add(new MappingQualityFilter(q)); tr.setSamRecordFilter(filters);
if (!INCLUDE_DUPLICATES) filters.add(new DuplicateReadFilter()); filters.add(new AlignedFilter(true)); // discard unmapped reads filters.add(new MappingQualityFilter(MINIMUM_MAPPING_QUALITY)); if (!INCLUDE_UNPAIRED) { final int effectiveMaxInsertSize = (MAXIMUM_INSERT_SIZE == 0) ? Integer.MAX_VALUE : MAXIMUM_INSERT_SIZE;
if (!INCLUDE_DUPLICATES) filters.add(new DuplicateReadFilter()); filters.add(new AlignedFilter(true)); // discard unmapped reads filters.add(new MappingQualityFilter(MINIMUM_MAPPING_QUALITY)); if (!INCLUDE_UNPAIRED) { final int effectiveMaxInsertSize = (MAXIMUM_INSERT_SIZE == 0) ? Integer.MAX_VALUE : MAXIMUM_INSERT_SIZE;
@Test public void canCountReadsInWindow() throws InvalidGenomicCoordsException, IOException{ GenomicCoords gc= new GenomicCoords("chr7:5522436-5613572", 80, samSeqDict, fastaFile); List<SamRecordFilter> filters= new ArrayList<SamRecordFilter>(); filters.add(new MappingQualityFilter(30)); // Same as filters.add(new FirstOfPairFilter(true)); // samtools view -q 30 -f 64 long t0= System.currentTimeMillis(); for(int i= 0; i < 10; i++){ assertEquals(42770, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); } long t1= System.currentTimeMillis(); System.out.println("TIME TO FILTER: " + (t1-t0)); gc= new GenomicCoords("chr7:5524838-5611878", 80, samSeqDict, fastaFile); }
@Test public void canFilterReadsSamtools() throws InvalidGenomicCoordsException, IOException, ClassNotFoundException, InvalidRecordException, SQLException, InvalidColourException{ GenomicCoords gc= new GenomicCoords("chr7:5566778",80, null, null); TrackPileup tr= new TrackPileup("test_data/ds051.short.bam", gc); tr.setNoFormat(true); assertTrue(tr.getTitle().contains("22.0")); // Before filtering List<SamRecordFilter> samRecordFilter= new ArrayList<SamRecordFilter>(); samRecordFilter.add(new MappingQualityFilter(51)); tr.setSamRecordFilter(samRecordFilter); assertEquals("", tr.printToScreen().trim()); samRecordFilter= new ArrayList<SamRecordFilter>(); samRecordFilter.add(new MappingQualityFilter(11)); tr.setSamRecordFilter(samRecordFilter); assertTrue(tr.getTitle().contains("17.0")); }
@Test public void canCountReadsInWindow2() throws InvalidGenomicCoordsException, IOException{ GenomicCoords gc= new GenomicCoords("chr7:5524838-5611878", 80, samSeqDict, fastaFile); List<SamRecordFilter> filters= new ArrayList<SamRecordFilter>(); assertEquals(100377, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); filters.add(new AlignedFilter(true)); assertEquals(100265, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); filters= new ArrayList<SamRecordFilter>(); filters.add(new AlignedFilter(true)); filters.add(new ReadNegativeStrandFilter(false)); assertEquals(50157, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); filters= new ArrayList<SamRecordFilter>(); filters.add(new AlignedFilter(true)); filters.add(new ReadNegativeStrandFilter(true)); assertEquals(50108, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); filters= FlagToFilter.flagToFilterList(80, 1026); assertEquals(2729, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); filters= FlagToFilter.flagToFilterList(80, 1026); filters.add(new MappingQualityFilter(30)); assertEquals(1592, Utils.countReadsInWindow("test_data/ear045.oxBS.actb.bam", gc, filters)); }
new CountingPairedFilter(), new SecondaryOrSupplementaryFilter(), new MappingQualityFilter(MINIMUM_MQ) );
new CountingPairedFilter(), new SecondaryOrSupplementaryFilter(), new MappingQualityFilter(MINIMUM_MQ) );