public LongReadSupportFinder(File indexedBam) { SamReaderFactory factory = SamReaderFactory.makeDefault() .enable(Option.CACHE_FILE_BASED_INDEXES) .validationStringency(ValidationStringency.LENIENT); this.reader = factory.open(indexedBam); this.dict = reader.getFileHeader().getSequenceDictionary(); } /**
@Override public boolean open() { if(!Files.exists(input)) return false; reader = SamReaderFactory.make().validationStringency(ValidationStringency.LENIENT).open(input.toFile()); // if(enableFileSource){ // reader.enableFileSource(true); // } // reader.setValidationStringency(SAMFileReader.getDefaultValidationStringency().LENIENT); iterator = reader.iterator(); return true; }
/** Gets the SamReader from which records will be examined. This will also set the header so that it is available in * */ protected SamReader getSamReader() { final SamReader in = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).open(INPUT); this.header = in.getFileHeader(); return in; }
private SamReader createSamReader(InputStream in, ValidationStringency stringency) { SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } return readerFactory.open(SamInputResource.of(in)); }
public static SamReader getSamReader(String filename) { return SamReaderFactory.make() .validationStringency(ValidationStringency.SILENT) .samRecordFactory(DefaultSAMRecordFactory.getInstance()) .open(new File(filename)); }
@Test public void testSamFileVersion1pt5() throws Exception { final SamReader samReader = SamReaderFactory.makeDefault().validationStringency(ValidationStringency.SILENT).open(new File(TEST_DATA_DIR, "test_samfile_version_1pt5.bam")); final Histogram<String> results = executeValidation(samReader, null, IndexValidationStringency.EXHAUSTIVE); Assert.assertEquals(results.getCount(),2.0); }
@Test(dataProvider = "queryIntervalsData") public void testQueryIntervals(final boolean contained, final int expected) { final SamReader reader = SamReaderFactory.makeDefault().enable().open(BAM_FILE); final CloseableIterator<SAMRecord> it = reader.query("chr1", 202661637, 202661812, contained); Assert.assertEquals(countElements(it), expected); }
/** * Create the SAM writer, given the constituent parts accrued. * @return Newly minted SAM file writer. */ public SamReader build() { if( samFile == null ) throw new ReviewedGATKException( "Filename for output sam file must be supplied."); if( validationStringency == null ) throw new ReviewedGATKException( "Header for output sam file must be supplied."); return SamReaderFactory .makeDefault() .referenceSequence(this.getReferenceFile()) .validationStringency(validationStringency) .open(samFile); } }
@Test(dataProvider = "variousFormatReaderTestCases") public void variousFormatReaderTest(final String inputFile) throws IOException { final File input = new File(TEST_DATA_DIR, inputFile); final SamReader reader = SamReaderFactory.makeDefault().open(input); for (final SAMRecord ignored : reader) { } reader.close(); }
public static boolean bamHasIndex(String bam) throws IOException{ /* ------------------------------------------------------ */ /* This chunk prepares SamReader from local bam or URL bam */ UrlValidator urlValidator = new UrlValidator(); SamReaderFactory srf=SamReaderFactory.make(); srf.validationStringency(ValidationStringency.SILENT); SamReader samReader; if(urlValidator.isValid(bam)){ samReader = SamReaderFactory.makeDefault().open( SamInputResource.of(new URL(bam)).index(new URL(bam + ".bai")) ); } else { samReader= srf.open(new File(bam)); } /* ------------------------------------------------------ */ // SamReaderFactory srf=SamReaderFactory.make(); // srf.validationStringency(ValidationStringency.SILENT); // SamReader samReader = srf.open(new File(bam)); boolean hasIndex= samReader.hasIndex(); samReader.close(); return hasIndex; }
protected int doWork() { IOUtil.assertFileIsReadable(INPUT); IOUtil.assertFileIsWritable(OUTPUT); if (INPUT.getAbsolutePath().endsWith(".sam")) { throw new PicardException("SAM files are not supported"); } final SAMFileHeader samFileHeader = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE).getFileHeader(INPUT); for (final String comment : COMMENT) { if (comment.contains("\n")) { throw new PicardException("Comments can not contain a new line"); } samFileHeader.addComment(comment); } BamFileIoUtils.reheaderBamFile(samFileHeader, INPUT, OUTPUT, CREATE_MD5_FILE, CREATE_INDEX); return 0; } }
private List<SAMRecord> getSAMRecordsFromPath(final Path sourcePath, final File referenceFile) throws IOException { List<SAMRecord> recs = new ArrayList<>(); try (SamReader reader = SamReaderFactory.make() .validationStringency(ValidationStringency.SILENT) .referenceSequence(referenceFile).open(sourcePath)) { for (SAMRecord rec : reader) { recs.add(rec); } } return recs; }
/** * Simple implementation of a gather operations that uses SAMFileReaders and Writers in order to concatenate * multiple BAM files. */ private static void gatherNormally(final List<File> inputs, final File output, final boolean createIndex, final boolean createMd5, final File referenceFasta) { final SAMFileHeader header; { header = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).getFileHeader(inputs.get(0)); } final SAMFileWriter out = new SAMFileWriterFactory().setCreateIndex(createIndex).setCreateMd5File(createMd5).makeSAMOrBAMWriter(header, true, output); for (final File f : inputs) { log.info("Gathering " + f.getAbsolutePath()); final SamReader in = SamReaderFactory.makeDefault().referenceSequence(referenceFasta).open(f); for (final SAMRecord rec : in) out.addAlignment(rec); CloserUtil.close(in); } out.close(); }
@Test public void testRealDataLongCigar() throws Exception { final File samFile = new File("src/test/resources/htsjdk/samtools/BAMCigarOverflowTest/cigar-64k.sam.gz"); final File bamFile = File.createTempFile("test.", BamFileIoUtils.BAM_FILE_EXTENSION); bamFile.deleteOnExit(); try (final SamReader samReader = SamReaderFactory.make().open(samFile); final SAMFileWriter bamWriter = new SAMFileWriterFactory().makeSAMOrBAMWriter(samReader.getFileHeader(), true, bamFile); final CloseableIterator<SAMRecord> it = samReader.iterator()) { while (it.hasNext()) { bamWriter.addAlignment(it.next()); } } try (final SamReader samReader = SamReaderFactory.make().open(samFile); final SamReader bamReader = SamReaderFactory.make().open(bamFile)) { verifySamReadersEqual(samReader, bamReader); } }
public SamReaderFactory getSamReaderFactory() { SamReaderFactory factory = SamReaderFactory.makeDefault() .referenceSequence(getReferenceFile()) .validationStringency(ValidationStringency.LENIENT); //.enable(Option.INCLUDE_SOURCE_IN_RECORDS); // don't need as we're tracking ourselves using EvidenceSource return factory; }
public void indexBAM(File inputFile, String outputFileName) { final File bamIndexFile = new File(outputFileName); SamReaderFactory.setDefaultValidationStringency(ValidationStringency.SILENT); final SamReader samReader = SamReaderFactory.makeDefault(). enable(SamReaderFactory.Option.INCLUDE_SOURCE_IN_RECORDS). open(inputFile); BAMIndexer indexer = new BAMIndexer(bamIndexFile, samReader.getFileHeader()); long totalRecords = 0; // create and write the content SAMRecordIterator iter = samReader.iterator().assertSorted(SAMFileHeader.SortOrder.coordinate); while(iter.hasNext()) { SAMRecord rec = iter.next(); if (++totalRecords % 1000000 == 0) { if (null != log) log.info(totalRecords + " reads processed ..."); } indexer.processAlignment(rec); } indexer.finish(); }
@Override SAMSequenceDictionary extractDictionary(Path sam) { return SamReaderFactory.makeDefault().getFileHeader(sam).getSequenceDictionary(); } },
public CGIAlignmentReader(String url) throws MalformedURLException { URL u = HttpUtils.createURL(url); int port = u.getPort(); baseURL = u.getProtocol() + "://" + u.getHost(); if (port > 0) baseURL += ":" + port; baseURL += u.getPath(); query = u.getQuery(); factory = SamReaderFactory.makeDefault(). validationStringency(ValidationStringency.SILENT); loadHeader(); }
public SplitReadRealigner(GenomicProcessingContext pc) { this.pc = pc; this.readerFactory = SamReaderFactory.makeDefault().referenceSequence(pc.getReferenceFile()); } public int getMinSoftClipLength() {
@Test public void testSamReaderFromURL() throws IOException { final String samFilePath = new File(TEST_DATA_DIR, "unsorted.sam").getAbsolutePath(); final URL samURL = new URL("file://" + samFilePath); final SamReaderFactory factory = SamReaderFactory.makeDefault() .validationStringency(ValidationStringency.SILENT); try (final SamReader reader = factory.open(SamInputResource.of(samURL))) { Assert.assertEquals(countRecords(reader), 10); } }