BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary, int reference) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(reference); }
BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(); }
BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(); }
BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(); }
BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary, int reference) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(reference); }
public static void validateTrackSequenceDictionary(final String trackName, final SAMSequenceDictionary trackDict, final SAMSequenceDictionary referenceDict, final ValidationExclusion.TYPE validationExclusionType ) { // if the sequence dictionary is empty (as well as null which means it doesn't have a dictionary), skip validation if (trackDict == null || trackDict.isEmpty()) logger.warn("Track " + trackName + " doesn't have a sequence dictionary built in, skipping dictionary validation"); else { Set<String> trackSequences = new TreeSet<String>(); for (SAMSequenceRecord dictionaryEntry : trackDict.getSequences()) trackSequences.add(dictionaryEntry.getSequenceName()); SequenceDictionaryUtils.validateDictionaries(logger, validationExclusionType, trackName, trackDict, "reference", referenceDict, false, null, true); } } }
if (isEmpty()) return ""; try {
private void validateReferenceName(final String rname, final String fieldName) { if (rname.equals("=")) { if (fieldName.equals("MRNM")) { return; } reportErrorParsingLine("= is not a valid value for " + fieldName + " field."); } if (!this.mFileHeader.getSequenceDictionary().isEmpty()) { if (this.mFileHeader.getSequence(rname) == null) { reportErrorParsingLine(fieldName + " '" + rname + "' not found in any SQ record"); } } }
private void validateReferenceName(final String rname, final String fieldName) { if (rname.equals("=")) { if (fieldName.equals("MRNM")) { return; } reportErrorParsingLine("= is not a valid value for " + fieldName + " field."); } if (!this.mFileHeader.getSequenceDictionary().isEmpty()) { if (this.mFileHeader.getSequence(rname) == null) { reportErrorParsingLine(fieldName + " '" + rname + "' not found in any SQ record"); } } }
public static String printSamSeqDict(SAMSequenceDictionary samSeqDict, int graphSize){ if(samSeqDict == null || samSeqDict.isEmpty()){ System.err.println("Sequence dictionary not available."); return "";
@Override protected void setup(final SAMFileHeader header, final File samFile) { IOUtil.assertFileIsWritable(OUTPUT); if (header.getSequenceDictionary().isEmpty()) { log.warn(INPUT.getAbsoluteFile() + " has no sequence dictionary. If any reads " + "in the file are aligned, then alignment summary metrics collection will fail."); } final boolean doRefMetrics = REFERENCE_SEQUENCE != null; collector = new AlignmentSummaryMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), doRefMetrics, ADAPTER_SEQUENCE, MAX_INSERT_SIZE, EXPECTED_PAIR_ORIENTATIONS, IS_BISULFITE_SEQUENCED); }
final VCFHeader header = in.getFileHeader(); final SAMSequenceDictionary dict = in.getFileHeader().getSequenceDictionary(); if (dict == null || dict.isEmpty()) { if (null == samSequenceDictionary) { throw new IllegalArgumentException("Sequence dictionary was missing or empty for the VCF: " + input.getAbsolutePath() + " Please add a sequence dictionary to this VCF or specify SEQUENCE_DICTIONARY.");
@Override protected void setup(final SAMFileHeader header, final File samFile) { IOUtil.assertFileIsWritable(OUTPUT); if (header.getSequenceDictionary().isEmpty()) { log.warn(INPUT.getAbsoluteFile() + " has no sequence dictionary. If any reads " + "in the file are aligned, then alignment summary metrics collection will fail."); } final boolean doRefMetrics = REFERENCE_SEQUENCE != null; collector = new AlignmentSummaryMetricsCollector(METRIC_ACCUMULATION_LEVEL, header.getReadGroups(), doRefMetrics, ADAPTER_SEQUENCE, MAX_INSERT_SIZE, EXPECTED_PAIR_ORIENTATIONS, IS_BISULFITE_SEQUENCED); }
final VCFHeader header = in.getFileHeader(); final SAMSequenceDictionary dict = in.getFileHeader().getSequenceDictionary(); if (dict == null || dict.isEmpty()) { if (null == samSequenceDictionary) { throw new IllegalArgumentException("Sequence dictionary was missing or empty for the VCF: " + input.getAbsolutePath() + " Please add a sequence dictionary to this VCF or specify SEQUENCE_DICTIONARY.");
private boolean setSamSeqDictFromBam(String bamfile) { /* ------------------------------------------------------ */ /* This chunk prepares SamReader from local bam */ SamReaderFactory srf=SamReaderFactory.make(); srf.validationStringency(ValidationStringency.SILENT); SamReader samReader; samReader= srf.open(new File(bamfile)); /* ------------------------------------------------------ */ SAMSequenceDictionary seqDict = samReader.getFileHeader().getSequenceDictionary(); if(seqDict != null && !seqDict.isEmpty()){ this.setSamSeqDictSource(new File(bamfile).getAbsolutePath()); this.setSamSeqDict(seqDict); return true; } return false; }
/** * Loads the sequence dictionary from a FASTA file input stream. * * @param in the FASTA file input stream. * @return the sequence dictionary, or <code>null</code> if the header has no dictionary or it was empty. */ public static SAMSequenceDictionary loadDictionary(final InputStream in) { final SAMTextHeaderCodec codec = new SAMTextHeaderCodec(); final BufferedLineReader reader = new BufferedLineReader(in); final SAMFileHeader header = codec.decode(reader, null); if (header.getSequenceDictionary().isEmpty()) { return null; } return header.getSequenceDictionary(); }
/** * Loads the sequence dictionary from a FASTA file input stream. * * @param in the FASTA file input stream. * @return the sequence dictionary, or <code>null</code> if the header has no dictionary or it was empty. */ public static SAMSequenceDictionary loadDictionary(final InputStream in) { final SAMTextHeaderCodec codec = new SAMTextHeaderCodec(); final BufferedLineReader reader = new BufferedLineReader(in); final SAMFileHeader header = codec.decode(reader, null); if (header.getSequenceDictionary().isEmpty()) { return null; } return header.getSequenceDictionary(); }
public void ensureDictionariesMatch() throws IOException { SAMSequenceDictionary dictionary = getReference().getSequenceDictionary(); final SamReaderFactory samFactory = SamReaderFactory.makeDefault().referenceSequence(REFERENCE_SEQUENCE); for (File f : INPUT) { SamReader reader = null; try { reader = samFactory.open(f); final SAMSequenceDictionary samDictionary = reader.getFileHeader().getSequenceDictionary(); if (samDictionary == null || samDictionary.isEmpty()) { String message = String.format("Missing @SQ sequencing dictionary header lines in %s. " + " Are you sure this is a SAM/BAM/CRAM file? If so, make sure the @SQ headers are correct.", f); log.error(message); throw new RuntimeException(message); } SequenceUtil.assertSequenceDictionariesEqual(samDictionary, dictionary, f, REFERENCE_SEQUENCE); } catch (htsjdk.samtools.util.SequenceUtil.SequenceListsDifferException e) { log.error("Reference genome used by ", f, " does not match reference genome ", REFERENCE_SEQUENCE, ". ", "The reference supplied must match the reference used for every input."); throw e; } finally { if (reader != null) reader.close(); } } } @Override
/** * Now that all files are open, validate the sequence dictionaries of the reads vs. the reference vrs the reference ordered data (if available). * * @param reads Reads data source. * @param reference Reference data source. * @param rods a collection of the reference ordered data tracks */ private void validateDataSourcesAgainstReference(SAMDataSource reads, ReferenceSequenceFile reference, Collection<ReferenceOrderedDataSource> rods) { if ((reads.isEmpty() && (rods == null || rods.isEmpty())) || reference == null ) return; // Compile a set of sequence names that exist in the reference file. SAMSequenceDictionary referenceDictionary = reference.getSequenceDictionary(); if (!reads.isEmpty()) { // Compile a set of sequence names that exist in the BAM files. SAMSequenceDictionary readsDictionary = reads.getHeader().getSequenceDictionary(); if (readsDictionary.isEmpty()) { logger.info("Reads file is unmapped. Skipping validation against reference."); return; } // compare the reads to the reference SequenceDictionaryUtils.validateDictionaries(logger, getArguments().unsafe, "reads", readsDictionary, "reference", referenceDictionary, true, intervals, true); } for (ReferenceOrderedDataSource rod : rods) IndexDictionaryUtils.validateTrackSequenceDictionary(rod.getName(), rod.getSequenceDictionary(), referenceDictionary, getArguments().unsafe); }
Assert.assertTrue(cramHeader.getSamFileHeader().getSequenceDictionary().isEmpty()); final File file = File.createTempFile("test", ".cram"); file.deleteOnExit(); Assert.assertFalse(cramHeader3.getSamFileHeader().getSequenceDictionary().isEmpty()); Assert.assertNotNull(cramHeader3.getSamFileHeader().getSequenceDictionary().getSequence(0)); Assert.assertEquals(cramHeader3.getSamFileHeader().getSequence(sequenceRecord.getSequenceName()).getSequenceLength(), sequenceRecord.getSequenceLength());