private FastqReader fileToFastqReader(final File file) { return new FastqReader(file, ALLOW_AND_IGNORE_EMPTY_LINES); }
private FastqReader fileToFastqReader(final File file) { return new FastqReader(file, ALLOW_AND_IGNORE_EMPTY_LINES); }
@Override public void setInputStream(final InputStream is) { reader = new FastqReader(new BufferedReader(new InputStreamReader(is))); }
@Override public void setInputStream(final InputStream is) { reader = new FastqReader(new BufferedReader(new InputStreamReader(is))); }
@BeforeClass public static void beforeClass() throws IOException { final File dummyFile = newTempFile("dummy"); freader1 = new FastqReader(dummyFile); freader2 = new FastqReader(dummyFile); }
private void compareFastqs(File testDataDir, File outputSam, String filename) { File f1 = new File(outputSam.getParentFile(), filename); File f2 = new File(testDataDir, filename); FastqReader reader1 = new FastqReader(f1); List<FastqRecord> reads = new ArrayList<>(); FastqReader reader2 = new FastqReader(f2); for (FastqRecord record : reader1) { reads.add(record); } for (FastqRecord record : reader2) { Assert.assertTrue(reads.contains(record)); } }
@Test(dataProvider = "FASTQ_TESTCASES", groups = {"unix"}) public void testFastqQualityInference(final File input, final FastqQualityFormat expectedQualityFormat) { final FastqReader reader = new FastqReader(input); Assert.assertEquals(QualityEncodingDetector.detect(reader), expectedQualityFormat); reader.close(); }
protected static Set<String> createFastqReadHeaderSet(final File file) { final Set<String> set = new HashSet<String>(); final FastqReader freader = new FastqReader(file); while (freader.hasNext()) { final FastqRecord frec = freader.next(); set.add(frec.getReadName()); } return set ; }
@Test(dataProvider = "trimmedData") public void testTrimming(final String samFilename, final int read1Trim, final int read1MaxBases, final int expectedRead1Length, final int read2Trim, final int read2MaxBases, final int expectedRead2Length) throws IOException { final File samFile = new File(TEST_DATA_DIR, samFilename); final File pair1File = newTempFastqFile("pair1"); final File pair2File = newTempFastqFile("pair2"); pair1File.deleteOnExit(); pair2File.deleteOnExit(); convertFile(new String[]{ "INPUT=" + samFile.getAbsolutePath(), "FASTQ=" + pair1File.getAbsolutePath(), "SECOND_END_FASTQ=" + pair2File.getAbsolutePath(), "READ1_TRIM=" + read1Trim, "READ1_MAX_BASES_TO_WRITE=" + read1MaxBases, "READ2_TRIM=" + read2Trim, "READ2_MAX_BASES_TO_WRITE=" + read2MaxBases }); for (final FastqRecord first : new FastqReader(pair1File)) { Assert.assertEquals(first.getReadString().length(), expectedRead1Length, "Incorrect read length"); Assert.assertEquals(first.getBaseQualityString().length(), expectedRead1Length, "Incorrect quality string length"); } for (final FastqRecord second : new FastqReader(pair2File)) { Assert.assertEquals(second.getReadString().length(), expectedRead2Length, "Incorrect read length"); Assert.assertEquals(second.getBaseQualityString().length(), expectedRead2Length, "Incorrect quality string length"); } }
Iterator<FastqRecord> it = new FastqReader(f1).iterator(); FastqRecord first = it.next(); Assert.assertEquals(first.getReadString(), bases1_1, testName); Assert.assertEquals(second.getReadString(), bases1_2, testName); Assert.assertEquals(second.getBaseQualityString(), quals1_2, testName); it = new FastqReader(f2).iterator(); first = it.next(); Assert.assertEquals(first.getReadString(), bases2_1, testName);
Iterator<FastqRecord> it = new FastqReader(f1).iterator(); FastqRecord first = it.next(); Assert.assertEquals(first.getReadString(), bases_1_1, testName); Assert.assertEquals(second.getBaseQualityString(), quals_1_2, testName); if (bases_2_1 != null) { it = new FastqReader(f2).iterator(); first = it.next(); Assert.assertEquals(first.getReadString(), bases_2_1, testName);
@Override public void align(File fastq, File output, File reference, int threads) throws IOException { try (ReferenceSequenceFile ref = new IndexedFastaSequenceFile(reference)) { SAMFileHeader header = new SAMFileHeader(); header.setSequenceDictionary(ref.getSequenceDictionary()); byte[] bases = ref.getSequence(ref.getSequenceDictionary().getSequence(referenceIndex).getSequenceName()).getBases(); try (FastqReader reader = new FastqReader(fastq)) { try (SAMFileWriter writer = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, true, output)) { for (FastqRecord fqr : reader) { Alignment aln = aligner.align_smith_waterman(fqr.getReadString().getBytes(), bases); SAMRecord r = new SAMRecord(header); r.setReadName(fqr.getReadName()); r.setReferenceIndex(referenceIndex); r.setAlignmentStart(aln.getStartPosition() + 1); r.setCigarString(aln.getCigar()); r.setReadBases(fqr.getReadString().getBytes()); r.setBaseQualities(SAMUtils.fastqToPhred(fqr.getBaseQualityString())); writer.addAlignment(r); } } } } } }