예제 #1
0
        private CallabilityMetricsComputer(ILogger logger, CallabilityCalculator callability)
        {
            _logger      = logger;
            _callability = callability;
            var metricsCollection = new StatCalculatorCollection <ReferenceInterval>
            {
                _callability,
            };

            _bedProcessor = new StatsProcessor <ReferenceInterval>(metricsCollection);
        }
예제 #2
0
        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));
        }