private CallabilityMetricsComputer(ILogger logger, CallabilityCalculator callability) { _logger = logger; _callability = callability; var metricsCollection = new StatCalculatorCollection <ReferenceInterval> { _callability, }; _bedProcessor = new StatsProcessor <ReferenceInterval>(metricsCollection); }
public static CallabilityMetricsComputer Create(ILogger logger, GenomeMetadata genomeMetadata, IFileLocation filterBed, bool isFemale) { var filterIntervals = LoadBedRegions(filterBed, genomeMetadata); var nonFilterIntervals = GetIncludedIntervals(filterIntervals, genomeMetadata); string chrY = genomeMetadata .Contigs() .Select(contig => contig.Name) .SingleOrDefault(name => name == "chrY" || name == "Y"); if (isFemale && chrY != null) { nonFilterIntervals.Remove(chrY); } var callabilityCalculator = new CallabilityCalculator(nonFilterIntervals); return(new CallabilityMetricsComputer(logger, callabilityCalculator)); }