Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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();
        }