/** * @return the index of reference sequence */ @Override public int getSequenceIndex() { return referenceSequence.getSequenceIndex(); }
/** * @return The index for the given sequence name, or -1 if the name is not found. */ public int getSequenceIndex(final String sequenceName) { final SAMSequenceRecord record = mSequenceMap.get(sequenceName); if (record == null) { return -1; } return record.getSequenceIndex(); }
/** * @return The index for the given sequence name, or -1 if the name is not found. */ public int getSequenceIndex(final String sequenceName) { final SAMSequenceRecord record = mSequenceMap.get(sequenceName); if (record == null) { return -1; } return record.getSequenceIndex(); }
/** * @return The index for the given sequence name, or -1 if the name is not found. */ public int getSequenceIndex(final String sequenceName) { final SAMSequenceRecord record = mSequenceMap.get(sequenceName); if (record == null) { return -1; } return record.getSequenceIndex(); }
public static HashSet<Integer> makeIgnoredSequenceIndicesSet(final SAMFileHeader header, final Set<String> ignoredSequence) { final HashSet<Integer> ignoredSequenceIndices = new HashSet<Integer>(); for (final String sequenceName: ignoredSequence) { final SAMSequenceRecord sequenceRecord = header.getSequence(sequenceName); if (sequenceRecord == null) { throw new PicardException("Unrecognized sequence " + sequenceName + " passed as argument to IGNORE_SEQUENCE"); } ignoredSequenceIndices.add(sequenceRecord.getSequenceIndex()); } return ignoredSequenceIndices; }
public static HashSet<Integer> makeIgnoredSequenceIndicesSet(final SAMFileHeader header, final Set<String> ignoredSequence) { final HashSet<Integer> ignoredSequenceIndices = new HashSet<Integer>(); for (final String sequenceName: ignoredSequence) { final SAMSequenceRecord sequenceRecord = header.getSequence(sequenceName); if (sequenceRecord == null) { throw new PicardException("Unrecognized sequence " + sequenceName + " passed as argument to IGNORE_SEQUENCE"); } ignoredSequenceIndices.add(sequenceRecord.getSequenceIndex()); } return ignoredSequenceIndices; }
private static VCFContigHeaderLine makeContigHeaderLine(final SAMSequenceRecord contig, final String assembly) { final Map<String, String> map = new LinkedHashMap<>(3); map.put("ID", contig.getSequenceName()); map.put("length", String.valueOf(contig.getSequenceLength())); if (assembly != null) map.put("assembly", assembly); return new VCFContigHeaderLine(map, contig.getSequenceIndex()); }
private static VCFContigHeaderLine makeContigHeaderLine(final SAMSequenceRecord contig, final String assembly) { final Map<String, String> map = new LinkedHashMap<String, String>(3); map.put("ID", contig.getSequenceName()); map.put("length", String.valueOf(contig.getSequenceLength())); if ( assembly != null ) map.put("assembly", assembly); return new VCFContigHeaderLine(map, contig.getSequenceIndex()); }
@Override public String toString() { return String.format( "SAMSequenceRecord(name=%s,length=%s,dict_index=%s,assembly=%s)", getSequenceName(), getSequenceLength(), getSequenceIndex(), getAssembly() ); }
@Override public String toString() { return String.format( "SAMSequenceRecord(name=%s,length=%s,dict_index=%s,assembly=%s)", getSequenceName(), getSequenceLength(), getSequenceIndex(), getAssembly() ); } }
/** * Returns the contig index of a specified string version of the contig * * @param contig the contig string * * @return the contig index, -1 if not found */ @Ensures("result >= 0") @ThrowEnsures({"UserException.MalformedGenomeLoc", "!contigIsInDictionary(contig) || contig == null"}) public final int getContigIndex(final String contig) { return getContigInfo(contig).getSequenceIndex(); }
public List<Chunk> getChunksOverlapping(final String reference, final int startPos, final int endPos) { int referenceIndex = mBamDictionary.getSequence(reference).getSequenceIndex(); final BAMIndexContent queryResults = getQueryResults(referenceIndex); return queryResults.getChunksOverlapping(startPos, endPos); } }
VCFContigHeaderLine(final SAMSequenceRecord sequenceRecord, final String assembly) { // Using LinkedHashMap to preserve order of keys in contig line (ID, length, assembly) super(VCFHeader.CONTIG_KEY, new LinkedHashMap<String, String>() {{ // Now inside an init block in an anon HashMap subclass this.put("ID", sequenceRecord.getSequenceName()); this.put("length", Integer.toString(sequenceRecord.getSequenceLength())); if ( assembly != null ) this.put("assembly", assembly); }}); this.contigIndex = sequenceRecord.getSequenceIndex(); }
VCFContigHeaderLine(final SAMSequenceRecord sequenceRecord, final String assembly) { super(VCFHeader.CONTIG_KEY, new HashMap<String, String>() {{ // Now inside an init block in an anon HashMap subclass this.put("ID", sequenceRecord.getSequenceName()); this.put("length", Integer.toString(sequenceRecord.getSequenceLength())); if ( assembly != null ) this.put("assembly", assembly); }}); this.contigIndex = sequenceRecord.getSequenceIndex(); }
VCFContigHeaderLine(final SAMSequenceRecord sequenceRecord, final String assembly) { // Using LinkedHashMap to preserve order of keys in contig line (ID, length, assembly) super(VCFHeader.CONTIG_KEY, new LinkedHashMap<String, String>() {{ // Now inside an init block in an anon HashMap subclass this.put("ID", sequenceRecord.getSequenceName()); this.put("length", Integer.toString(sequenceRecord.getSequenceLength())); if ( assembly != null ) this.put("assembly", assembly); }}); this.contigIndex = sequenceRecord.getSequenceIndex(); }
private static ReferenceSequence buildReferenceSequence (SAMSequenceRecord samSequenceRecord) { byte[] bases = new byte[samSequenceRecord.getSequenceLength()] ; Arrays.fill(bases, (byte)'N'); return new ReferenceSequence(samSequenceRecord.getSequenceName(), samSequenceRecord.getSequenceIndex(), bases) ; }
/** * Creates a GenomeLoc than spans the entire contig. * @param contigName Name of the contig. * @return A locus spanning the entire contig. */ @Requires("contigName != null") @Ensures("result != null") public GenomeLoc createOverEntireContig(final String contigName) { SAMSequenceRecord contig = getContigInfo().getSequence(contigName); return createGenomeLoc(contigName,contig.getSequenceIndex(),1,contig.getSequenceLength(), true); }
@Test(expectedExceptions=UserException.MissortedBAM.class) public void testImproperlySortedReads() { SAMRecord read1 = ArtificialSAMUtils.createArtificialRead(samFileHeader,"read1",getContig(0).getSequenceIndex(),2,10); SAMRecord read2 = ArtificialSAMUtils.createArtificialRead(samFileHeader,"read2",getContig(0).getSequenceIndex(),1,10); List<SAMRecord> reads = Arrays.asList(read1,read2); VerifyingSamIterator iterator = new VerifyingSamIterator(GATKSAMIteratorAdapter.adapt(reads.iterator())); Assert.assertTrue(iterator.hasNext(),"Insufficient reads"); Assert.assertSame(iterator.next(),read1,"Incorrect read in read 1 position"); Assert.assertTrue(iterator.hasNext(),"Insufficient reads"); // Should trigger MissortedBAM exception. iterator.next(); }
@Test public void testSortedReadsBasic() { SAMRecord read1 = ArtificialSAMUtils.createArtificialRead(samFileHeader,"read1",getContig(0).getSequenceIndex(),1,10); SAMRecord read2 = ArtificialSAMUtils.createArtificialRead(samFileHeader,"read2",getContig(0).getSequenceIndex(),2,10); List<SAMRecord> reads = Arrays.asList(read1,read2); VerifyingSamIterator iterator = new VerifyingSamIterator(GATKSAMIteratorAdapter.adapt(reads.iterator())); Assert.assertTrue(iterator.hasNext(),"Insufficient reads"); Assert.assertSame(iterator.next(),read1,"Incorrect read in read 1 position"); Assert.assertTrue(iterator.hasNext(),"Insufficient reads"); Assert.assertSame(iterator.next(),read2,"Incorrect read in read 2 position"); Assert.assertFalse(iterator.hasNext(),"Too many reads in iterator"); }
@Test public void testSortedReadsAcrossContigs() { SAMRecord read1 = ArtificialSAMUtils.createArtificialRead(samFileHeader,"read1",getContig(0).getSequenceIndex(),2,10); SAMRecord read2 = ArtificialSAMUtils.createArtificialRead(samFileHeader,"read2",getContig(1).getSequenceIndex(),1,10); List<SAMRecord> reads = Arrays.asList(read1,read2); VerifyingSamIterator iterator = new VerifyingSamIterator(GATKSAMIteratorAdapter.adapt(reads.iterator())); Assert.assertTrue(iterator.hasNext(),"Insufficient reads"); Assert.assertSame(iterator.next(),read1,"Incorrect read in read 1 position"); Assert.assertTrue(iterator.hasNext(),"Insufficient reads"); Assert.assertSame(iterator.next(),read2,"Incorrect read in read 2 position"); Assert.assertFalse(iterator.hasNext(),"Too many reads in iterator"); }