private static void assertSortOrdersAreEqual(final SAMFileHeader newHeader, final File inputFile) throws IOException { final SAMFileHeader origHeader = new SAMFileReader(inputFile).getFileHeader(); final SAMFileHeader.SortOrder newSortOrder = newHeader.getSortOrder(); if (newSortOrder != SAMFileHeader.SortOrder.unsorted && newSortOrder != origHeader.getSortOrder()) { throw new SAMException("Sort order of new header does not match the original file, needs to be " + origHeader.getSortOrder()); } } }
private static void assertSortOrdersAreEqual(final SAMFileHeader newHeader, final File inputFile) throws IOException { final SamReader reader = SamReaderFactory.makeDefault().open(inputFile); final SAMFileHeader origHeader = reader.getFileHeader(); final SAMFileHeader.SortOrder newSortOrder = newHeader.getSortOrder(); if (newSortOrder != SAMFileHeader.SortOrder.unsorted && newSortOrder != origHeader.getSortOrder()) { throw new SAMException("Sort order of new header does not match the original file, needs to be " + origHeader.getSortOrder()); } reader.close(); } }
private static void assertSortOrdersAreEqual(final SAMFileHeader newHeader, final File inputFile) throws IOException { final SamReader reader = SamReaderFactory.makeDefault().open(inputFile); final SAMFileHeader origHeader = reader.getFileHeader(); final SAMFileHeader.SortOrder newSortOrder = newHeader.getSortOrder(); if (newSortOrder != SAMFileHeader.SortOrder.unsorted && newSortOrder != origHeader.getSortOrder()) { throw new SAMException("Sort order of new header does not match the original file, needs to be " + origHeader.getSortOrder()); } reader.close(); } }
protected void createSamFileWriter(final SAMFileHeader header) { out = new SAMFileWriterFactory().makeSAMOrBAMWriter(header, header.getSortOrder() == SortOrder.queryname, OUTPUT); }
private static SortOrder getSortOrder(SamReaderFactory readerFactory, File file) throws IOException { try (SamReader reader = readerFactory.open(file)) { return reader.getFileHeader().getSortOrder(); } } public static void merge(Collection<File> input, File output) throws IOException {
private BAMIndexer(final SAMFileHeader fileHeader, Function<Integer, BinaryBAMIndexWriter> createWriter) { if (fileHeader.getSortOrder() != SAMFileHeader.SortOrder.coordinate) { if (fileHeader.getSortOrder() == SAMFileHeader.SortOrder.unsorted) { log.warn("For indexing, the BAM file is required to be coordinate sorted. Attempting to index \"unsorted\" BAM file."); } else { throw new SAMException("Indexing requires a coordinate-sorted input BAM."); } } numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary()); outputWriter = createWriter.apply(numReferences); }
private BAMIndexer(final SAMFileHeader fileHeader, Function<Integer, BinaryBAMIndexWriter> createWriter) { if (fileHeader.getSortOrder() != SAMFileHeader.SortOrder.coordinate) { if (fileHeader.getSortOrder() == SAMFileHeader.SortOrder.unsorted) { log.warn("For indexing, the BAM file is required to be coordinate sorted. Attempting to index \"unsorted\" BAM file."); } else { throw new SAMException("Indexing requires a coordinate-sorted input BAM."); } } numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader.getSequenceDictionary()); outputWriter = createWriter.apply(numReferences); }
private void init( OutputStream output, SAMFileHeader header, boolean writeHeader) throws IOException { this.header = header; writer = new SAMTextWriter(output); writer.setSortOrder(header.getSortOrder(), false); if (writeHeader) writer.setHeader(header); }
private void init( OutputStream output, SAMFileHeader header, boolean writeHeader) throws IOException { this.header = header; writer = new SAMTextWriter(output); writer.setSortOrder(header.getSortOrder(), false); if (writeHeader) writer.setHeader(header); }
private void init(final ReferenceSequenceFile reference, final SAMFileHeader header) { if (header.getSortOrder() == SAMFileHeader.SortOrder.coordinate) { this.pairEndInfoByName = new CoordinateSortedPairEndInfoMap(); } else { this.pairEndInfoByName = new InMemoryPairEndInfoMap(); } if (reference != null) { this.refFileWalker = new ReferenceSequenceFileWalker(reference); } }
private void init( OutputStream output, SAMFileHeader header, boolean writeHeader) throws IOException { this.header = header; writer = new SAMTextWriter(output); writer.setSortOrder(header.getSortOrder(), false); if (writeHeader) writer.setHeader(header); }
public MissortedBAM(SAMFileHeader.SortOrder order, SAMRecord read, String message) { super(String.format("Missorted input SAM/BAM/CRAM file %s: file sorted in %s order but %s is required. Please see " + HelpConstants.articlePost(1317) + "for more information. Error details: %s", read.getFileSource().getReader(), read.getHeader().getSortOrder(), order, message)); }
private void init(final ReferenceSequenceFile reference, final SAMFileHeader header) { if (header.getSortOrder() == SAMFileHeader.SortOrder.coordinate) { this.pairEndInfoByName = new CoordinateSortedPairEndInfoMap(); } else { this.pairEndInfoByName = new InMemoryPairEndInfoMap(); } if (reference != null) { this.refFileWalker = new ReferenceSequenceFileWalker(reference); this.samSequenceDictionary = reference.getSequenceDictionary(); } }
private void init(final ReferenceSequenceFile reference, final SAMFileHeader header) { if (header.getSortOrder() == SAMFileHeader.SortOrder.coordinate) { this.pairEndInfoByName = new CoordinateSortedPairEndInfoMap(); } else { this.pairEndInfoByName = new InMemoryPairEndInfoMap(); } if (reference != null) { this.refFileWalker = new ReferenceSequenceFileWalker(reference); this.samSequenceDictionary = reference.getSequenceDictionary(); } }
private void initializeBAMWriter(final BAMFileWriter writer, final SAMFileHeader header, final boolean presorted, final boolean createIndex) { writer.setSortOrder(header.getSortOrder(), presorted); if (maxRecordsInRam != null) { writer.setMaxRecordsInRam(maxRecordsInRam); } writer.setHeader(header); if (createIndex && writer.getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)){ writer.enableBamIndexConstruction(); } }
public static SAMFileHeader duplicateSAMFileHeader(SAMFileHeader toCopy) { SAMFileHeader copy = new SAMFileHeader(); copy.setSortOrder(toCopy.getSortOrder()); copy.setGroupOrder(toCopy.getGroupOrder()); copy.setProgramRecords(toCopy.getProgramRecords()); copy.setReadGroups(toCopy.getReadGroups()); copy.setSequenceDictionary(toCopy.getSequenceDictionary()); for (Map.Entry<String, String> e : toCopy.getAttributes()) copy.setAttribute(e.getKey(), e.getValue()); return copy; }
@Test(dataProvider = "DataForWrongTagTests") public void testValidationStringencyLenientAndSilent(String stringHeader) { SAMTextHeaderCodec codec = new SAMTextHeaderCodec(); codec.setValidationStringency(ValidationStringency.LENIENT); SAMFileHeader headerLenient = codec.decode(BufferedLineReader.fromString(stringHeader), null); Assert.assertTrue(headerLenient.getSortOrder().equals(SAMFileHeader.SortOrder.unknown)); codec.setValidationStringency(ValidationStringency.SILENT); SAMFileHeader headerSilent = codec.decode(BufferedLineReader.fromString(stringHeader), null); Assert.assertTrue(headerSilent.getSortOrder().equals(SAMFileHeader.SortOrder.unknown)); } }
private void initializeBAMWriter(final BAMFileWriter writer, final SAMFileHeader header, final boolean presorted, final boolean createIndex) { writer.setSortOrder(header.getSortOrder(), presorted); if (maxRecordsInRam != null) { writer.setMaxRecordsInRam(maxRecordsInRam); } if (this.tmpDir != null) writer.setTempDirectory(this.tmpDir); writer.setHeader(header); if (createIndex && writer.getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)) { writer.enableBamIndexConstruction(); } }
private void initializeBAMWriter(final BAMFileWriter writer, final SAMFileHeader header, final boolean presorted, final boolean createIndex) { writer.setSortOrder(header.getSortOrder(), presorted); if (maxRecordsInRam != null) { writer.setMaxRecordsInRam(maxRecordsInRam); } if (this.tmpDir != null) writer.setTempDirectory(this.tmpDir); writer.setHeader(header); if (createIndex && writer.getSortOrder().equals(SAMFileHeader.SortOrder.coordinate)) { writer.enableBamIndexConstruction(); } }
@Test public void testRedundantTags() throws Exception { final String header = "@HD VN:1.0 SO:coordinate SO:coordinate"; final InputStream strm = new ByteArrayInputStream(StringUtil.stringToBytes(header)); final SamReader samReader = SamReaderFactory.makeDefault().open(SamInputResource.of(strm)); Assert.assertEquals(SAMFileHeader.SortOrder.coordinate, samReader.getFileHeader().getSortOrder()); CloserUtil.close(samReader); }