/** * @return FastqRecordsWriter that contains one or more FastqWriters (amount depends on read structure), all using * outputPrefix to determine the filename(s). */ private FastqRecordsWriter buildWriter(final File outputPrefix) { final File outputDir = outputPrefix.getAbsoluteFile().getParentFile(); IOUtil.assertDirectoryIsWritable(outputDir); final String prefixString = outputPrefix.getName(); final String suffixString = COMPRESS_OUTPUTS ? "fastq.gz" : "fastq"; final FastqWriter[] templateWriters = new FastqWriter[readStructure.templates.length()]; final FastqWriter[] sampleBarcodeWriters = new FastqWriter[readStructure.sampleBarcodes.length()]; final FastqWriter[] molecularBarcodeWriters = new FastqWriter[readStructure.molecularBarcode.length()]; for (int i = 0; i < templateWriters.length; ++i) { final String filename = String.format("%s.%d.%s", prefixString, i + 1, suffixString); templateWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename)); } for (int i = 0; i < sampleBarcodeWriters.length; ++i) { final String filename = String.format("%s.barcode_%d.%s", prefixString, i + 1, suffixString); sampleBarcodeWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename)); } for (int i = 0; i < molecularBarcodeWriters.length; ++i) { final String filename = String.format("%s.index_%d.%s", prefixString, i + 1, suffixString); molecularBarcodeWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename)); } return new FastqRecordsWriter(templateWriters, sampleBarcodeWriters, molecularBarcodeWriters); }
final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT); final Map<String, SAMRecord> firstSeenMates = new HashMap<>(); final FastqWriterFactory factory = new FastqWriterFactory(); factory.setCreateMd5(CREATE_MD5_FILE);
fastqWriterFactory.setCreateMd5(CREATE_MD5_FILE); switch (READ_NAME_FORMAT) { case CASAVA_1_8:
final SamReader reader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT); final Map<String, SAMRecord> firstSeenMates = new HashMap<>(); final FastqWriterFactory factory = new FastqWriterFactory(); factory.setCreateMd5(CREATE_MD5_FILE);
fastqWriterFactory.setCreateMd5(CREATE_MD5_FILE); switch (READ_NAME_FORMAT) { case CASAVA_1_8:
/** * @return FastqRecordsWriter that contains one or more FastqWriters (amount depends on read structure), all using * outputPrefix to determine the filename(s). */ private FastqRecordsWriter buildWriter(final File outputPrefix) { final File outputDir = outputPrefix.getAbsoluteFile().getParentFile(); IOUtil.assertDirectoryIsWritable(outputDir); final String prefixString = outputPrefix.getName(); final String suffixString = COMPRESS_OUTPUTS ? "fastq.gz" : "fastq"; final FastqWriter[] templateWriters = new FastqWriter[readStructure.templates.length()]; final FastqWriter[] sampleBarcodeWriters = new FastqWriter[readStructure.sampleBarcodes.length()]; final FastqWriter[] molecularBarcodeWriters = new FastqWriter[readStructure.molecularBarcode.length()]; for (int i = 0; i < templateWriters.length; ++i) { final String filename = String.format("%s.%d.%s", prefixString, i + 1, suffixString); templateWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename)); } for (int i = 0; i < sampleBarcodeWriters.length; ++i) { final String filename = String.format("%s.barcode_%d.%s", prefixString, i + 1, suffixString); sampleBarcodeWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename)); } for (int i = 0; i < molecularBarcodeWriters.length; ++i) { final String filename = String.format("%s.index_%d.%s", prefixString, i + 1, suffixString); molecularBarcodeWriters[i] = fastqWriterFactory.newWriter(new File(outputDir, filename)); } return new FastqRecordsWriter(templateWriters, sampleBarcodeWriters, molecularBarcodeWriters); }
if (!OUTPUT_PER_RG) { IOUtil.assertFileIsWritable(FASTQ); final FastqWriter firstOfPairWriter = factory.newWriter(FASTQ); } else if (SECOND_END_FASTQ != null) { IOUtil.assertFileIsWritable(SECOND_END_FASTQ); secondOfPairWriter = factory.newWriter(SECOND_END_FASTQ); } else { secondOfPairWriter = null; final FastqWriter unpairedWriter = UNPAIRED_FASTQ == null ? firstOfPairWriter : factory.newWriter(UNPAIRED_FASTQ); final FastqWriter firstOfPairWriter = factory.newWriter(makeReadGroupFile(rg, "_1")); final Lazy<FastqWriter> lazySecondOfPairWriter = new Lazy<>(() -> INTERLEAVE ? firstOfPairWriter : factory.newWriter(makeReadGroupFile(rg, "_2")));
if (!OUTPUT_PER_RG) { IOUtil.assertFileIsWritable(FASTQ); final FastqWriter firstOfPairWriter = factory.newWriter(FASTQ); } else if (SECOND_END_FASTQ != null) { IOUtil.assertFileIsWritable(SECOND_END_FASTQ); secondOfPairWriter = factory.newWriter(SECOND_END_FASTQ); } else { secondOfPairWriter = null; final FastqWriter unpairedWriter = UNPAIRED_FASTQ == null ? firstOfPairWriter : factory.newWriter(UNPAIRED_FASTQ); final FastqWriter firstOfPairWriter = factory.newWriter(makeReadGroupFile(rg, "_1")); final Lazy<FastqWriter> lazySecondOfPairWriter = new Lazy<>(() -> INTERLEAVE ? firstOfPairWriter : factory.newWriter(makeReadGroupFile(rg, "_2")));