/** * @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; }
/** * Completely replaces the contig records in this header with those in the given SAMSequenceDictionary. */ public void setSequenceDictionary(final SAMSequenceDictionary dictionary) { this.contigMetaData.clear(); for (final SAMSequenceRecord record : dictionary.getSequences()) { contigMetaData.add(new VCFContigHeaderLine(record, null)); } this.mMetaData.addAll(contigMetaData); }
/** * @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; }
public BufferedReferenceSequenceFile(ReferenceSequenceFile underlying) { this.underlying = underlying; this.referenceIndexLookup = new ReferenceSequence[underlying.getSequenceDictionary().getSequences().size()]; } public byte getBase(int referenceIndex, int position) {
private boolean compareSequenceDictionaries(final SAMFileHeader h1, final SAMFileHeader h2) { final List<SAMSequenceRecord> s1 = h1.getSequenceDictionary().getSequences(); final List<SAMSequenceRecord> s2 = h2.getSequenceDictionary().getSequences(); if (s1.size() != s2.size()) { reportDifference(s1.size(), s2.size(), "Length of sequence dictionaries"); return false; } boolean ret = true; for (int i = 0; i < s1.size(); ++i) { ret = compareSequenceRecord(s1.get(i), s2.get(i), i + 1) && ret; } return ret; }
private void validateSequenceLengths(SAMFileHeader header) { SAMSequenceDictionary dict = header.getSequenceDictionary(); for (SAMSequenceRecord seq : dict.getSequences()) { if (seq.getSequenceLength() > 536870911) { throw new RuntimeException("Sequence lengths > 2^29-1 are not supported"); } } }
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; }
private static void setIndexSequenceDictionary(final TribbleIndexCreator indexCreator, final SAMSequenceDictionary dict) { for (final SAMSequenceRecord seq : dict.getSequences()) { final String contig = SequenceDictionaryPropertyPredicate + seq.getSequenceName(); final String length = String.valueOf(seq.getSequenceLength()); indexCreator.addProperty(contig,length); } } }
/** Set the sequence dictionary entries for the index property list. */ @Override public void setIndexSequenceDictionary(final SAMSequenceDictionary dict) { for (final SAMSequenceRecord seq : dict.getSequences()) { final String contig = SEQUENCE_DICTIONARY_PROPERTY_PREDICATE + seq.getSequenceName(); final String length = String.valueOf(seq.getSequenceLength()); addProperty(contig,length); } } }
@Test public void testMergingMultipleDiscontinuousContigs() { final List<SAMSequenceRecord> all = genomeLocParser.getContigs().getSequences(); executeTest(Arrays.asList(all.get(1), all.get(3))); }
private static List<SAMSequenceRecord> readSequences(final File vcf) { final VCFFileReader reader = new VCFFileReader(vcf); final VCFHeader header = reader.getFileHeader(); final SAMSequenceDictionary dict = header.getSequenceDictionary(); reader.close(); return dict.getSequences(); } }
/** * Helper function to print out a sequence dictionary */ private void printDictionary(String name, SAMSequenceDictionary dict) { log.info(name); for (final SAMSequenceRecord contig : dict.getSequences()) { log.info(" SN=%s LN=%d%n", contig.getSequenceName(), contig.getSequenceLength()); } } }
/** * Helper function to print out a sequence dictionary */ private void printDictionary(String name, SAMSequenceDictionary dict) { log.info(name); for (final SAMSequenceRecord contig : dict.getSequences()) { log.info(" SN=%s LN=%d%n", contig.getSequenceName(), contig.getSequenceLength()); } } }
/** * Test the start of the middle contig. */ @Test public void testContigStart() { // Test the last 25 bases of the first contig. int contigPosition = sequenceFile.getSequenceDictionary().getSequences().size()/2; SAMSequenceRecord selectedContig = sequenceFile.getSequenceDictionary().getSequences().get(contigPosition); validateLocation( genomeLocParser.createGenomeLoc(selectedContig.getSequenceName(),1,25) ); }
@Test(enabled = true, expectedExceptions = {UserException.class}) public void testFailOnBadBase() throws FileNotFoundException, InterruptedException { final String testFasta = privateTestDir + "problematicFASTA.fasta"; final CachingIndexedFastaSequenceFile fasta = new CachingIndexedFastaSequenceFile(new File(testFasta)); for ( SAMSequenceRecord contig : fasta.getSequenceDictionary().getSequences() ) { fetchBaseString(fasta, contig.getSequenceName(), -1, -1); } } }
/** * Test the end of the middle contig. */ @Test public void testContigEnd() { // Test the last 25 bases of the first contig. int contigPosition = sequenceFile.getSequenceDictionary().getSequences().size()/2; SAMSequenceRecord selectedContig = sequenceFile.getSequenceDictionary().getSequences().get(contigPosition); final int contigStart = selectedContig.getSequenceLength() - 24; final int contigStop = selectedContig.getSequenceLength(); validateLocation( genomeLocParser.createGenomeLoc(selectedContig.getSequenceName(),contigStart,contigStop) ); }
/** * Test the end of a contig. */ @Test public void testReferenceEnd() { // Test the last 25 bases of the first contig. SAMSequenceRecord selectedContig = sequenceFile.getSequenceDictionary().getSequences().get(sequenceFile.getSequenceDictionary().getSequences().size()-1); final int contigStart = selectedContig.getSequenceLength() - 24; final int contigStop = selectedContig.getSequenceLength(); validateLocation( genomeLocParser.createGenomeLoc(selectedContig.getSequenceName(),contigStart,contigStop) ); }
@Test(dataProvider = "samFilesWithSpaceInSequenceName") public void testSamSequenceTruncation(final String filename) { final SamReader reader = SamReaderFactory.makeDefault().open(new File(TEST_DATA_DIR, filename)); for (final SAMSequenceRecord sequence : reader.getFileHeader().getSequenceDictionary().getSequences()) { Assert.assertFalse(sequence.getSequenceName().contains(" "), sequence.getSequenceName()); } for (final SAMRecord rec : reader) { Assert.assertFalse(rec.getReferenceName().contains(" ")); } CloserUtil.close(reader); }
@Test public void testcreateGenomeLocOnContig() throws FileNotFoundException { final CachingIndexedFastaSequenceFile seq = new CachingIndexedFastaSequenceFile(new File(b37KGReference)); final SAMSequenceDictionary dict = seq.getSequenceDictionary(); final GenomeLocParser genomeLocParser = new GenomeLocParser(dict); for ( final SAMSequenceRecord rec : dict.getSequences() ) { final GenomeLoc loc = genomeLocParser.createOverEntireContig(rec.getSequenceName()); Assert.assertEquals(loc.getContig(), rec.getSequenceName()); Assert.assertEquals(loc.getStart(), 1); Assert.assertEquals(loc.getStop(), rec.getSequenceLength()); } }
@Test public void test() throws IOException { CRAMFileReader reader = new CRAMFileReader(new ByteArraySeekableStream(cramBytes), new ByteArraySeekableStream(indexBytes), source, ValidationStringency.SILENT); for (SAMSequenceRecord sequenceRecord : reader.getFileHeader().getSequenceDictionary().getSequences()) { final CloseableIterator<SAMRecord> iterator = reader.queryAlignmentStart(sequenceRecord.getSequenceName(), 1); Assert.assertNotNull(iterator); Assert.assertTrue(iterator.hasNext()); SAMRecord record = iterator.next(); Assert.assertEquals(record.getReferenceName(), sequenceRecord.getSequenceName()); Assert.assertEquals(record.getAlignmentStart(), 1); } }