Example #1
0
        private IEnumerable <OmimItem> GetOmimItems(EntryRoot entryRoot, IDictionary <int, string> mimToGeneSymbol, IDictionary <int, string> phenotypeDescriptions)
        {
            foreach (var entry in entryRoot.omim.entryList)
            {
                var item      = entry.entry;
                var mimNumber = item.mimNumber;
                //skip if not a supported gene symbol
                if (!mimToGeneSymbol.TryGetValue(mimNumber, out var geneSymbol))
                {
                    continue;
                }

                string description = OmimUtilities.ExtractAndProcessItemDescription(item);
                string geneName    = item.geneMap?.geneName;
                var    phenotypes  = item.geneMap?.phenotypeMapList?.Select(x => OmimUtilities.GetPhenotype(x, phenotypeDescriptions, _jsonSchema.GetSubSchema("phenotypes")))
                                     .ToList() ?? new List <OmimItem.Phenotype>();

                yield return(new OmimItem(geneSymbol, geneName, description, mimNumber, phenotypes, _jsonSchema));
            }
        }
Example #2
0
        private static IDictionary <int, string> GetPhenotypeDescriptions(EntryRoot entryRoot)
        {
            IDictionary <int, string> phenotypeToDescription = new Dictionary <int, string>();

            foreach (var entry in entryRoot.omim.entryList)
            {
                var item = entry.entry;
                // gene only item
                if (item.prefix == '*')
                {
                    continue;
                }

                var description = OmimUtilities.ExtractAndProcessItemDescription(item);
                if (string.IsNullOrEmpty(description))
                {
                    continue;
                }
                phenotypeToDescription[item.mimNumber] = description;
            }

            return(phenotypeToDescription);
        }