/** * 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); }
/** * 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); }
/** * get the sequence dictionary from the track, if available. If not, make it from the contig list that is always in the index * @param index the index file to use * @return a SAMSequenceDictionary if available, null if unavailable */ public static SAMSequenceDictionary getSequenceDictionaryFromProperties(Index index) { SAMSequenceDictionary dict = new SAMSequenceDictionary(); for (Map.Entry<String,String> entry : index.getProperties().entrySet()) { if (entry.getKey().startsWith(SequenceDictionaryPropertyPredicate)) dict.addSequence(new SAMSequenceRecord(entry.getKey().substring(SequenceDictionaryPropertyPredicate.length() , entry.getKey().length()), Integer.valueOf(entry.getValue()))); } return 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); }
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
@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 SAMSequenceDictionary getSequenceDictionary() { SAMSequenceRecord sequenceRecord = new SAMSequenceRecord("chr1", 1000000); SAMSequenceDictionary dictionary = new SAMSequenceDictionary(Collections.singletonList(sequenceRecord)); return dictionary; }
private SAMSequenceDictionary createSequenceDictionary( final List<SAMSequenceRecord> contigs ) { final List<SAMSequenceRecord> clonedContigs = new ArrayList<SAMSequenceRecord>(contigs.size()); // Clone the individual SAMSequenceRecords to avoid contig-index issues with shared objects // across multiple dictionaries in tests for ( SAMSequenceRecord contig : contigs ) { clonedContigs.add(contig.clone()); } return new SAMSequenceDictionary(clonedContigs); } }
@Test public void testEmptyCraiReadAsBai() throws IOException { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final GZIPOutputStream gos = new GZIPOutputStream(baos); gos.close(); final SAMSequenceDictionary dictionary = new SAMSequenceDictionary(); dictionary.addSequence(new SAMSequenceRecord("1", 100)); final InputStream inputStream = SamIndexes.asBaiStreamOrNull(new ByteArrayInputStream(baos.toByteArray()), dictionary); for (final byte b : SamIndexes.BAI.magic) { Assert.assertEquals(inputStream.read(), 0xFF & b); } }
public static SAMSequenceDictionary createArtificialSequenceDictionary() { final int[] contigLengths = { 249250621, 243199373, 198022430, 191154276, 180915260, 171115067, 159138663, 146364022, 141213431, 135534747, 135006516, 133851895, 115169878, 107349540, 102531392, 90354753, 81195210, 78077248, 59128983, 63025520, 48129895, 51304566, 155270560, 59373566, 16569 }; List<SAMSequenceRecord> contigs = new ArrayList<SAMSequenceRecord>(); for ( int contig = 1; contig <= 22; contig++ ) { contigs.add(new SAMSequenceRecord(Integer.toString(contig), contigLengths[contig - 1])); } int position = 22; for ( String contigName : Arrays.asList("X", "Y", "MT") ) { contigs.add(new SAMSequenceRecord(contigName, contigLengths[position])); position++; } return new SAMSequenceDictionary(contigs); }
@Test public void testOpenIndexFileAsBaiOrNull_ReturnsNull() throws IOException { final SAMSequenceDictionary dictionary = new SAMSequenceDictionary(); dictionary.addSequence(new SAMSequenceRecord("1", 100)); File file = File.createTempFile("test", ".notbai"); file.deleteOnExit(); Assert.assertNull(SamIndexes.openIndexFileAsBaiOrNull(file, dictionary)); file.delete(); file = File.createTempFile("test", ".notcrai"); file.deleteOnExit(); Assert.assertNull(SamIndexes.openIndexFileAsBaiOrNull(file, dictionary)); file.delete(); }
protected SAMSequenceDictionary artificialSAMSequenceDictionary() { return new SAMSequenceDictionary(Collections.singletonList(new SAMSequenceRecord("00",reference.length()))); }
@Test(expectedExceptions = NullPointerException.class) public void testOpenIndexFileAsBaiOrNull_NPE() throws IOException { final SAMSequenceDictionary dictionary = new SAMSequenceDictionary(); dictionary.addSequence(new SAMSequenceRecord("1", 100)); Assert.assertNull(SamIndexes.openIndexFileAsBaiOrNull(null, dictionary)); }
@Test public void testGetSequenceIfNameIsNotFound() { final SAMFileHeader header = new SAMFileHeader(); final SAMSequenceRecord rec = new SAMSequenceRecord("chr1",1); final SAMSequenceDictionary dict = new SAMSequenceDictionary(Arrays.asList(rec)); header.setSequenceDictionary(dict); Assert.assertNull(header.getSequence("chr2")); }
protected SAMSequenceDictionary loadSequenceDictionary() throws ErrorMsg { SAMSequenceDictionary dict = new SAMSequenceDictionary(); ReferenceIterator itRef = run.getReferences(); while (itRef.nextReference()) { dict.addSequence(new SAMSequenceRecord(itRef.getCanonicalName(), (int) itRef.getLength())); } return dict; } }
protected SAMSequenceDictionary loadSequenceDictionary() throws ErrorMsg { SAMSequenceDictionary dict = new SAMSequenceDictionary(); ReferenceIterator itRef = run.getReferences(); while (itRef.nextReference()) { dict.addSequence(new SAMSequenceRecord(itRef.getCanonicalName(), (int) itRef.getLength())); } return dict; } }
private VariantContextWriter getWriter() { SAMSequenceDictionary seqDict = new SAMSequenceDictionary(); EnumSet<Options> options = VariantContextWriterBuilder.DEFAULT_OPTIONS; options.add(Options.ALLOW_MISSING_FIELDS_IN_HEADER); VariantContextWriterBuilder builder = new VariantContextWriterBuilder() .setReferenceDictionary(seqDict) .setOptions(options); VariantContextWriter writer = builder.setOutputFile(outFile).build(); return writer; }
@BeforeClass public void init() { SAMSequenceDictionary sequenceDictionary = new SAMSequenceDictionary(); sequenceDictionary.addSequence(new SAMSequenceRecord("1",500)); sequenceDictionary.addSequence(new SAMSequenceRecord("2",500)); samFileHeader = new SAMFileHeader(); samFileHeader.setSequenceDictionary(sequenceDictionary); }
@Test public void canPrintSequenceDict(){ assertTrue(Utils.printSamSeqDict(samSeqDict, 30).startsWith("chrM 16571")); assertTrue(Utils.printSamSeqDict(samSeqDict, 30).endsWith("chrY 59373566 |||||||")); SAMSequenceDictionary emptyDict= new SAMSequenceDictionary(); // Empty dict -> Empty string assertEquals("", Utils.printSamSeqDict(emptyDict, 30)); assertEquals("", Utils.printSamSeqDict(null, 30)); }
@Test public void testContigHasColon() { SAMFileHeader header = new SAMFileHeader(); header.setSortOrder(htsjdk.samtools.SAMFileHeader.SortOrder.coordinate); SAMSequenceDictionary dict = new SAMSequenceDictionary(); SAMSequenceRecord rec = new SAMSequenceRecord("c:h:r1", 10); rec.setSequenceLength(10); dict.addSequence(rec); header.setSequenceDictionary(dict); final GenomeLocParser myGenomeLocParser = new GenomeLocParser(header.getSequenceDictionary()); GenomeLoc loc = myGenomeLocParser.parseGenomeLoc("c:h:r1:4-5"); assertEquals(0, loc.getContigIndex()); assertEquals(loc.getStart(), 4); assertEquals(loc.getStop(), 5); }