/** * Applies filters such as duplicate removal that apply to all SAMRecord parsing * @param iterator raw reads * @param filterSecondaryAlignment should secondary alignment be filtered out * @return iterator with filtered record excluded */ public CloseableIterator<SAMRecord> applyCommonSAMRecordFilters(final CloseableIterator<SAMRecord> iterator, final boolean singleAlignmentPerRead) { List<SamRecordFilter> filters = Lists.<SamRecordFilter>newArrayList(new FailsVendorReadQualityFilter()); if (singleAlignmentPerRead) { filters.add(new SecondaryOrSupplementaryFilter()); } if (filterDuplicates) { filters.add(new DuplicateReadFilter()); } return new AutoClosingIterator<SAMRecord>(new FilteringSamIterator(iterator, new AggregateFilter(filters)), iterator); }
/** * Basic positive and negative tests for the FailsReadQualityFilter * * @param readQualityFlag The read quality flag to be tested * @param expectedResult The expected result (true is the sequence should match the filter, otherwise false) */ @Test(dataProvider="data") public void testFailsReadQualityFilter(final String testName, final boolean readQualityFlag, final boolean expectedResult) { builder.addUnmappedFragment("testfrag"); final SAMRecord record = builder.iterator().next(); record.setReadFailsVendorQualityCheckFlag(readQualityFlag); Assert.assertEquals(filter.filterOut(record), expectedResult, testName); }
if (!INCLUDE_NON_PF_READS) filters.add(new FailsVendorReadQualityFilter()); filters.add(new NotPrimaryAlignmentFilter()); if (!INCLUDE_DUPLICATES) filters.add(new DuplicateReadFilter());
if (!INCLUDE_NON_PF_READS) filters.add(new FailsVendorReadQualityFilter()); filters.add(new NotPrimaryAlignmentFilter()); if (!INCLUDE_DUPLICATES) filters.add(new DuplicateReadFilter());
/** * Writes the binary fastq file(s) to the output directory */ public void writeBfqFiles() { final SamReader reader = SamReaderFactory.makeDefault().open(bamFile); final Iterator<SAMRecord> iterator = reader.iterator(); // Filter out noise reads and reads that fail the quality filter final TagFilter tagFilter = new TagFilter(ReservedTagConstants.XN, 1); final FailsVendorReadQualityFilter qualityFilter = new FailsVendorReadQualityFilter(); final WholeReadClippedFilter clippedFilter = new WholeReadClippedFilter(); if (!pairedReads) { List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>(); filters.add(tagFilter); filters.add(clippedFilter); if (!this.includeNonPfReads) { filters.add(qualityFilter); } writeSingleEndBfqs(iterator, filters); codec1.close(); } else { writePairedEndBfqs(iterator, tagFilter, qualityFilter, clippedFilter); codec1.close(); codec2.close(); } log.info("Wrote " + wrote + " bfq records."); CloserUtil.close(reader); }
/** * Writes the binary fastq file(s) to the output directory */ public void writeBfqFiles() { final SamReader reader = SamReaderFactory.makeDefault().open(bamFile); final Iterator<SAMRecord> iterator = reader.iterator(); // Filter out noise reads and reads that fail the quality filter final TagFilter tagFilter = new TagFilter(ReservedTagConstants.XN, 1); final FailsVendorReadQualityFilter qualityFilter = new FailsVendorReadQualityFilter(); final WholeReadClippedFilter clippedFilter = new WholeReadClippedFilter(); if (!pairedReads) { List<SamRecordFilter> filters = new ArrayList<SamRecordFilter>(); filters.add(tagFilter); filters.add(clippedFilter); if (!this.includeNonPfReads) { filters.add(qualityFilter); } writeSingleEndBfqs(iterator, filters); codec1.close(); } else { writePairedEndBfqs(iterator, tagFilter, qualityFilter, clippedFilter); codec1.close(); codec2.close(); } log.info("Wrote " + wrote + " bfq records."); CloserUtil.close(reader); }
filters.add(new TagFilter(ReservedTagConstants.XN, 1)); if (!this.includeNonPfReads) { filters.add(new FailsVendorReadQualityFilter());
filters.add(new TagFilter(ReservedTagConstants.XN, 1)); if (!this.includeNonPfReads) { filters.add(new FailsVendorReadQualityFilter());