Exemplo n.º 1
0
        public IEnumerable <ISupplementaryDataItem> GetItems()
        {
            var vcvList = GetVariationRecords();

            Console.WriteLine($"Found {vcvList.Count} VCV records");

            var unknownVcvs = new HashSet <int>();

            foreach (var clinVarItem in GetRcvItems())
            {
                if (clinVarItem.VariationId == null)
                {
                    yield return(clinVarItem);

                    continue;
                }

                var vcvId    = clinVarItem.VariationId.Value;
                var vcvIndex = SuppDataUtilities.BinarySearch(vcvList, vcvId);

                if (vcvIndex < 0)
                {
                    Console.WriteLine($"Unknown vcv id:{vcvId} found in {clinVarItem.Id}");
                    unknownVcvs.Add(vcvId);
                    //remove the VariationId
                    yield return(new ClinVarItem(clinVarItem.Chromosome, clinVarItem.Position, clinVarItem.Stop,
                                                 clinVarItem.RefAllele, clinVarItem.AltAllele, clinVarItem.JsonSchema, clinVarItem.AlleleOrigins,
                                                 clinVarItem.VariantType, clinVarItem.Id, null, clinVarItem.ReviewStatus,
                                                 clinVarItem.MedGenIds, clinVarItem.OmimIds, clinVarItem.OrphanetIds,
                                                 clinVarItem.Phenotypes, clinVarItem.Significances, clinVarItem.PubmedIds, clinVarItem.LastUpdatedDate));

                    continue;
                }

                var vcvItem = vcvList[vcvIndex];
                yield return(new VcvSaItem(clinVarItem.Chromosome, clinVarItem.Position, clinVarItem.RefAllele, clinVarItem.AltAllele,
                                           vcvItem.Accession, vcvItem.Version, vcvItem.LastUpdatedDate, vcvItem.ReviewStatus, vcvItem.Significances));

                yield return(clinVarItem);
            }

            Console.WriteLine($"{unknownVcvs.Count} unknown VCVs found in RCVs.");
            Console.WriteLine($"{string.Join(',', unknownVcvs)}");
        }
Exemplo n.º 2
0
        public IEnumerable <ISupplementaryDataItem> GetItems()
        {
            _vcvItems = GetVariationRecords();
            Console.WriteLine($"Found {_vcvItems.Count} VCV records");

            var unknownVcvs = new HashSet <int>();

            foreach (var clinVarItem in GetRcvItems())
            {
                if (string.IsNullOrEmpty(clinVarItem.VariationId))
                {
                    yield return(clinVarItem);

                    continue;
                }

                var vcvId    = int.Parse(clinVarItem.VariationId);
                var vcvIndex = SuppDataUtilities.BinarySearch(_vcvItems, vcvId);

                if (vcvIndex < 0)
                {
                    Console.WriteLine($"Unknown vcv id:{vcvId} found in {clinVarItem.Id}");
                    unknownVcvs.Add(vcvId);
                    //remove the VariationId
                    clinVarItem.VariationId = null;
                    yield return(clinVarItem);

                    continue;
                }

                var vcvItem = _vcvItems[vcvIndex];
                yield return(new VcvSaItem(clinVarItem.Chromosome, clinVarItem.Position, clinVarItem.RefAllele, clinVarItem.AltAllele,
                                           vcvItem.Accession, vcvItem.Version, vcvItem.LastUpdatedDate, vcvItem.ReviewStatus, vcvItem.Significances));

                clinVarItem.VariationId = $"{vcvItem.Accession}.{vcvItem.Version}";
                yield return(clinVarItem);
            }

            Console.WriteLine($"{unknownVcvs.Count} unknown VCVs found in RCVs.");
            Console.WriteLine($"{string.Join(',', unknownVcvs)}");
        }