/** * @return The sum of the lengths of the sequences in this dictionary */ public long getReferenceLength() { long len = 0L; for (final SAMSequenceRecord seq : getSequences()) { len += seq.getSequenceLength(); } return len; }
/** * Look up a sequence record by index. First sequence in the header is the 0th. * @return The corresponding sequence record, or null if the index is out of range. */ public SAMSequenceRecord getSequence(final int sequenceIndex) { return mSequenceDictionary.getSequence(sequenceIndex); }
public InMemoryReferenceSequenceFile(String[] contigNames, byte[][] sequences) { dictionary = new SAMSequenceDictionary(); for (int i = 0; i < contigNames.length; i++) { dictionary.addSequence(new SAMSequenceRecord(contigNames[i], sequences[i].length)); } this.sequences = sequences; } @Override
@Override public String toString() { return "SAMSequenceDictionary:( sequences:"+ size()+ " length:"+ getReferenceLength()+" "+ " md5:"+md5()+")"; }
public static String prettyPrintSequenceRecords ( SAMSequenceDictionary sequenceDictionary ) { String[] sequenceRecordNames = new String[sequenceDictionary.size()]; int sequenceRecordIndex = 0; for (SAMSequenceRecord sequenceRecord : sequenceDictionary.getSequences()) sequenceRecordNames[sequenceRecordIndex++] = sequenceRecord.getSequenceName(); return Arrays.deepToString(sequenceRecordNames); }
/** * Create a new MRUCachingSAMSequenceDictionary that provides information about sequences in dict * @param dict a non-null, non-empty sequencing dictionary */ @Ensures("lastSSR == null") public MRUCachingSAMSequenceDictionary(final SAMSequenceDictionary dict) { if ( dict == null ) throw new IllegalArgumentException("Dictionary cannot be null"); if ( dict.size() == 0 ) throw new IllegalArgumentException("Dictionary cannot have size zero"); this.dict = dict; }
/** * Returns the contigs in this VCF file as a SAMSequenceDictionary. Returns null if contigs lines are * not present in the header. Throws SAMException if one or more contig lines do not have length * information. */ public SAMSequenceDictionary getSequenceDictionary() { final List<VCFContigHeaderLine> contigHeaderLines = this.getContigLines(); if (contigHeaderLines.isEmpty()) return null; final List<SAMSequenceRecord> sequenceRecords = new ArrayList<SAMSequenceRecord>(contigHeaderLines.size()); for (final VCFContigHeaderLine contigHeaderLine : contigHeaderLines) { sequenceRecords.add(contigHeaderLine.getSAMSequenceRecord()); } return new SAMSequenceDictionary(sequenceRecords); }
/** * * @return Sequence index for the given sequence name, or -1 if the name is not found. */ public int getSequenceIndex(final String sequenceName) { return mSequenceDictionary.getSequenceIndex(sequenceName); }
public void addSequence(final String name, final byte[] bases) { final SAMSequenceRecord r = new SAMSequenceRecord(name, bases.length); dictionary.addSequence(r); final int index = getSequenceDictionary().getSequenceIndex(name); sequences.put(index, bases); }
@Override public ReferenceSequence nextSequence() { if (currentIndex >= dictionary.size()) return null; final SAMSequenceRecord sequence = dictionary.getSequence(currentIndex++); return getSequence(sequence.getSequenceName()); }
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); } } }
BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(); }
@Test(dataProvider = "testIsSameDictionaryData") public void testIsSameDictionary(final List<SAMSequenceRecord> recs1, final List<SAMSequenceRecord> recs2, final boolean isSameDictionary) { final SAMSequenceDictionary dict1 = new SAMSequenceDictionary(recs1); final SAMSequenceDictionary dict2 = new SAMSequenceDictionary(recs2); Assert.assertEquals(dict1.isSameDictionary(dict2), isSameDictionary); } }
public void addSequence(final SAMSequenceRecord sequenceRecord) { mSequenceDictionary.addSequence(sequenceRecord); }
public static Set<String> getContigNames(SAMSequenceDictionary dict) { final Set<String> contigNames = new HashSet<String>(Utils.optimumHashSize(dict.size())); for (SAMSequenceRecord dictionaryEntry : dict.getSequences()) contigNames.add(dictionaryEntry.getSequenceName()); return contigNames; }
/** * Create a CRAM indexer that writes BAI to a stream. * * @param output Index will be written here. output will be closed when finish() method is called. * @param fileHeader header for the corresponding bam file. */ public CRAMBAIIndexer(final OutputStream output, final SAMFileHeader fileHeader) { numReferences = fileHeader.getSequenceDictionary().size(); indexBuilder = new BAMIndexBuilder(fileHeader); outputWriter = new BinaryBAMIndexWriter(numReferences, output); }
/** * Returns the contigs in this VCF file as a SAMSequenceDictionary. Returns null if contigs lines are * not present in the header. Throws SAMException if one or more contig lines do not have length * information. */ public SAMSequenceDictionary getSequenceDictionary() { final List<VCFContigHeaderLine> contigHeaderLines = this.getContigLines(); if (contigHeaderLines.isEmpty()) return null; final List<SAMSequenceRecord> sequenceRecords = new ArrayList<SAMSequenceRecord>(contigHeaderLines.size()); for (final VCFContigHeaderLine contigHeaderLine : contigHeaderLines) { sequenceRecords.add(contigHeaderLine.getSAMSequenceRecord()); } return new SAMSequenceDictionary(sequenceRecords); }
/** * * @return Sequence index for the given sequence name, or -1 if the name is not found. */ public int getSequenceIndex(final String sequenceName) { return mSequenceDictionary.getSequenceIndex(sequenceName); }
public void addSequence(final String name, final byte[] bases) { final SAMSequenceRecord r = new SAMSequenceRecord(name, bases.length); dictionary.addSequence(r); final int index = getSequenceDictionary().getSequenceIndex(name); sequences.put(index, bases); }
BAMIndexBuilder(final SAMSequenceDictionary sequenceDictionary, int reference) { this.sequenceDictionary = sequenceDictionary; if (!sequenceDictionary.isEmpty()) startNewReference(reference); }