private void UpdateSegment(ILookup <string, ChromosomeSegment> segmentMap, Kit kit) { var kitSegments = segmentMap[NormalizeName(kit.Name)]; if (!kitSegments.Any()) { _logger.LogInfo($"Warning: No segments could be found for {kit.Name}, falling back to fetching details..."); var details = _service.GetMatchDetails(kit).Result; kitSegments = details.FFCMData.Select(s => new ChromosomeSegment { Chromosome = s.Chromosome, StartLocation = s.P1, EndLocation = s.P2, Centimorgans = s.Cm, MatchingSnps = s.Snps }); _logger.LogInfo($"Fetching {kitSegments.Count()} segments from details"); } foreach (var kitSegment in kitSegments) { kit.AddSegmentMatch(kitSegment.Chromosome, kitSegment.StartLocation, kitSegment.EndLocation, kitSegment.MatchingSnps); } }
public Kit ToUnconnectedKit() { Kit kit = ModelBuilder.BuildKit(this); kit.LastUpdated = LastUpdated; foreach (var segment in SegmentMatches) { kit.AddSegmentMatch(segment); } return(kit); }