public override void ExecuteImpl(int threadNum) { var pairHandler = _pairHandlers[threadNum]; foreach (ReadPair readPair in _readPairs) { var bamAlignmentList = pairHandler.ExtractReads(readPair); foreach (var bamAlignment in bamAlignmentList) { if (_filter == null || !_filter.ReadIsBlacklisted(bamAlignment)) { _bamWriterHandles[threadNum].WriteAlignment(bamAlignment); } } } }
private void FlushToBam() { OnLog(string.Format("Writing {0} alignments to bam file.", _alignmentBuffer.Count)); var skippedAlignments = 0; foreach (var bamAlignment in _alignmentBuffer) { if (!_filter.ReadIsBlacklisted(bamAlignment)) { _bamWriter.WriteAlignment(bamAlignment); } else { skippedAlignments++; } } OnLog(string.Format("Buffer flushed. Skipped {0} alignments.", skippedAlignments)); _alignmentBuffer.Clear(); }