73,82d72 < private SAMAlignmentHeader header = null; < private BAMIndex cachedBamIndex = null; < < /// < /// Path to the .bam file that we read header and cachedBamIndex from. When making multiple calls to ParseRange, < /// we re-use these objects for the second and further ParseRange calls. However, if we re-use the < /// same BamParser for a different file, this cached data must be discarded. < /// < internal string cachedBamPath = null; < 438,442d427 < /// If we've already parsed the header, re-use that data. useCaching should generally be set < /// to true, for speed. However, if we parse one bam file and then parse a different bam file, useCaching should be false. < /// Extension methods use the cachedBamPath member to automatically set the flag appropriately in normal use < /// cases. Extra-special case: To re-parse a bam file which has changed on disk in the meantime, the caller should < /// set useCaching to false (or use a new BamParser instance). 445c430 < string refSeqName = null, int? refSeqIndex = null, int start = 0, int end = int.MaxValue, bool useCaching = true) --- > string refSeqName = null, int? refSeqIndex = null, int start = 0, int end = int.MaxValue) 453,457c438,440 < if (!useCaching || header == null) < { < ValidateReader(); < header = this.GetHeader(); < } --- > ValidateReader(); > > SAMAlignmentHeader header = this.GetHeader(); 484c467 < GetAlignmentWithIndex(bamIndexStorage, (int)refSeqIndex, start, end, header, ref seqMap, useCaching); --- > GetAlignmentWithIndex(bamIndexStorage, (int)refSeqIndex, start, end, header, ref seqMap); 596c579 < SAMAlignmentHeader header, ref SequenceAlignmentMap seqMap, bool useCaching) --- > SAMAlignmentHeader header, ref SequenceAlignmentMap seqMap) 601,607c584 < BAMIndex bamIndexInfo = null; < if (useCaching && cachedBamIndex != null) bamIndexInfo = cachedBamIndex; < if (bamIndexInfo == null) < { < bamIndexInfo = bamIndexStorage.Read(); < cachedBamIndex = bamIndexInfo; < } --- > BAMIndex bamIndexInfo = bamIndexStorage.Read(); 1332c1309 < internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, int refSeqIndex, bool useCaching = true) --- > internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, int refSeqIndex) 1334c1311 < return GetAlignmentMap(bamStream, bamIndexStorage, null, refSeqIndex, useCaching : useCaching); --- > return GetAlignmentMap(bamStream, bamIndexStorage, null, refSeqIndex); 1343c1320 < internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, string refSeqName, bool useCaching = true) --- > internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, string refSeqName) 1345c1322 < return GetAlignmentMap(bamStream, bamIndexStorage, refSeqName, useCaching : useCaching); --- > return GetAlignmentMap(bamStream, bamIndexStorage, refSeqName); 1353c1330 < // Returns SequenceAlignmentMap by parsing specified BAM stream and BAMIndexFile for the specified reference sequence index. --- > // Returns SequenceAlignmentMap by prasing specified BAM stream and BAMIndexFile for the specified reference sequence index. 1355c1332 < internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, string refSeqName, int start, int end, bool useCaching = true) --- > internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, string refSeqName, int start, int end) 1357c1334 < return GetAlignmentMap(bamStream, bamIndexStorage, refSeqName, null, start, end, useCaching); --- > return GetAlignmentMap(bamStream, bamIndexStorage, refSeqName, null, start, end); 1365c1342 < // Returns SequenceAlignmentMap by parsing specified BAM stream and BAMIndexFile for the specified reference sequence index. --- > // Returns SequenceAlignmentMap by prasing specified BAM stream and BAMIndexFile for the specified reference sequence index. 1367c1344 < internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, int refSeqIndex, int start, int end, bool useCaching) --- > internal SequenceAlignmentMap GetAlignment(Stream bamStream, BAMIndexStorage bamIndexStorage, int refSeqIndex, int start, int end) 1369c1346 < return GetAlignmentMap(bamStream, bamIndexStorage, null, refSeqIndex, start, end, useCaching); --- > return GetAlignmentMap(bamStream, bamIndexStorage, null, refSeqIndex, start, end);