private void SetupMocksandExecute(IAlignmentExtractor extractorForRealign, IRealignmentWriter writer, bool skipDups, int maxShift, string chrReference = null, ITargetCaller targetCaller = null, IStateManager stateManager = null) { var extractorForCandidates = new Mock <IAlignmentExtractor>(); var ranker = new Mock <IIndelRanker>(); var indel = new CandidateIndel(new CandidateAllele("chr", 10, "C", "CTATATA", AlleleCategory.Insertion)); var indelFinder = new Mock <IIndelCandidateFinder>(); if (targetCaller == null) { var mocktargetCaller = new Mock <ITargetCaller>(); mocktargetCaller.Setup(x => x.Call(It.IsAny <List <CandidateIndel> >(), It.IsAny <IAlleleSource>())) .Returns(new List <CandidateIndel>() { indel }); targetCaller = mocktargetCaller.Object; } var realigner = new ChrRealigner(new ChrReference() { Sequence = chrReference ?? string.Join(string.Empty, Enumerable.Repeat("ACGT", 10)) }, extractorForCandidates.Object, extractorForRealign, indelFinder.Object, ranker.Object, targetCaller, new RealignStateManager(), writer, skipDuplicates: skipDups, maxRealignShift: maxShift); realigner.Execute(); }
private void WriteChromosomeReads(string inputBamFile, string chrName, IRealignmentWriter writer) { using (var extractor = _factory.CreateAlignmentExtractor(inputBamFile, chrName)) { var read = new Read(); while (extractor.GetNextAlignment(read)) { var bamAlignment = read.BamAlignment; writer.WriteRead(ref bamAlignment, false); } } writer.FlushAllBufferedRecords(); }
public ChrRealigner(ChrReference chrReference, IAlignmentExtractor extractorForCandidates, IAlignmentExtractor extractorForRealign, IIndelCandidateFinder indelFinder, IIndelRanker indelRanker, ITargetCaller caller, RealignStateManager stateManager, IRealignmentWriter writer, List <CandidateAllele> knownIndels = null, int maxIndelSize = 25, bool tryThree = false, int anchorSizeThreshold = 10, bool skipDuplicates = false, bool skipAndRemoveDuplicates = false, bool remaskSoftclips = true, bool maskPartialInsertion = false, int minimumUnanchoredInsertionLength = 0, bool tryRealignCleanSoftclippedReads = true, bool allowRescoringOrig0 = true, int maxRealignShift = 250, AlignmentScorer alignmentScorer = null, bool debug = false) { _chrReference = chrReference; _extractorForCandidates = extractorForCandidates; _extractorForRealign = extractorForRealign; _indelFinder = indelFinder; _indelRanker = indelRanker; _caller = caller; _stateManager = stateManager; _writer = writer; _knownIndels = knownIndels == null ? null : knownIndels.Select(i => new CandidateIndel(i)).ToList(); _maxIndelSize = maxIndelSize; _anchorSizeThreshold = anchorSizeThreshold; _skipDuplicates = skipDuplicates; _skipAndRemoveDuplicates = skipAndRemoveDuplicates; _allowRescoringOrig0 = allowRescoringOrig0; _maxRealignShift = maxRealignShift; _tryRealignCleanSoftclippedReads = tryRealignCleanSoftclippedReads; _alignmentScorer = alignmentScorer; _debug = debug; if (alignmentScorer != null) { _alignmentComparer = new ScoredAlignmentComparer(alignmentScorer); } else { _alignmentComparer = new BasicAlignmentComparer(); } _readRealigner = new ReadRealigner(_alignmentComparer, tryThree, remaskSoftclips, maskPartialInsertion, minimumUnanchoredInsertionLength); }
public override IChrRealigner CreateRealigner(ChrReference chrReference, string bamFilePath, IRealignmentWriter writer) { return(MockChrRealigner != null ? MockChrRealigner.Object : base.CreateRealigner(chrReference, bamFilePath, writer)); }
public virtual IChrRealigner CreateRealigner(ChrReference chrReference, string bamFilePath, IRealignmentWriter writer) { var knownIndels = _knownVariants == null || !_knownVariants.ContainsKey(chrReference.Name) ? null : _knownVariants[chrReference.Name]; AlignmentScorer alignmentScorer = null; if (_options.UseAlignmentScorer) { alignmentScorer = new AlignmentScorer() { AnchorLengthCoefficient = _options.AnchorLengthCoefficient, MismatchCoefficient = _options.MismatchCoefficient, IndelCoefficient = _options.IndelCoefficient, NonNSoftclipCoefficient = _options.SoftclipCoefficient, IndelLengthCoefficient = _options.IndelLengthCoefficient }; } return(new ChrRealigner(chrReference, CreateAlignmentExtractor(bamFilePath, chrReference.Name), CreateAlignmentExtractor(bamFilePath, chrReference.Name), CreateCandidateFinder(), CreateRanker(), CreateCaller(), new RealignStateManager(_options.MinimumBaseCallQuality, _options.RealignWindowSize), writer, knownIndels, _options.MaxIndelSize, _options.TryThree, skipDuplicates: _options.SkipDuplicates, skipAndRemoveDuplicates: _options.SkipAndRemoveDuplicates, remaskSoftclips: _options.RemaskSoftclips, maskPartialInsertion: _options.MaskPartialInsertion, minimumUnanchoredInsertionLength: _options.MinimumUnanchoredInsertionLength, allowRescoringOrig0: _options.AllowRescoringOrigZero, maxRealignShift: _options.MaxRealignShift, tryRealignCleanSoftclippedReads: _options.TryRealignSoftclippedReads, alignmentScorer: alignmentScorer, debug: _options.Debug )); }