/** * Constructor that takes a {@link ReferenceSequenceFile} and a {@link SamLocusIterator}. * The inputs must have equal {@link htsjdk.samtools.SAMSequenceDictionary SAMSequenceDictionary}s and an {@link IllegalArgumentException} * will be thrown otherwise. * * @param referenceFile * @param locusIterator * * @throws IllegalArgumentException if arguments have non-equal {@link htsjdk.samtools.SAMSequenceDictionary SAMSequenceDictionary}s */ public SamLocusAndReferenceIterator(final ReferenceSequenceFileWalker referenceFile, final SamLocusIterator locusIterator) throws IllegalArgumentException { if(!SequenceUtil.areSequenceDictionariesEqual( locusIterator.getHeader().getSequenceDictionary(), referenceFile.getSequenceDictionary())) { throw new IllegalArgumentException("reference and locus iterator have difference dictionaries." + locusIterator.getHeader().getSequenceDictionary().toString() + referenceFile.getSequenceDictionary().toString()); } this.referenceSequenceFileWalker = referenceFile; this.locusIterator = locusIterator; }
/** * Constructor that takes a {@link ReferenceSequenceFile} and a {@link SamLocusIterator}. * The inputs must have equal {@link htsjdk.samtools.SAMSequenceDictionary SAMSequenceDictionary}s and an {@link IllegalArgumentException} * will be thrown otherwise. * * @param referenceFile * @param locusIterator * * @throws IllegalArgumentException if arguments have non-equal {@link htsjdk.samtools.SAMSequenceDictionary SAMSequenceDictionary}s */ public SamLocusAndReferenceIterator(final ReferenceSequenceFileWalker referenceFile, final SamLocusIterator locusIterator) throws IllegalArgumentException { if(!SequenceUtil.areSequenceDictionariesEqual( locusIterator.getHeader().getSequenceDictionary(), referenceFile.getSequenceDictionary())) { throw new IllegalArgumentException("reference and locus iterator have difference dictionaries." + locusIterator.getHeader().getSequenceDictionary().toString() + referenceFile.getSequenceDictionary().toString()); } this.referenceSequenceFileWalker = referenceFile; this.locusIterator = locusIterator; }
@Test public void canSetGenome() throws InvalidGenomicCoordsException, IOException, InvalidCommandLineException{ GenomicCoordsHistory gch= new GenomicCoordsHistory(); gch.add(new GenomicCoords("chr7:1-100", 80, null, null)); List<String> cmdInput= new ArrayList<String>(); cmdInput.add("test_data/chr7.fa"); gch.setGenome(cmdInput); assertEquals("test_data/chr7.fa", gch.current().getFastaFile()); assertTrue(gch.current().getSamSeqDict().toString().length() > 10); gch= new GenomicCoordsHistory(); gch.add(new GenomicCoords("chr7:1-100", 80, null, null)); gch.add(new GenomicCoords("chr7:1-1000", 80, null, null)); gch.add(new GenomicCoords("chr7:1-10000", 80, null, null)); cmdInput= new ArrayList<String>(); cmdInput.add("hg19"); gch.setGenome(cmdInput); assertTrue(gch.current().getSamSeqDict().toString().length() > 10); assertTrue(gch.getCurrentSessionHistory().get(0).getSamSeqDict().toString().length() > 10); }