Beispiel #1
0
        public async Task IndexSnp(SnpSource source, Snp snp)
        {
            if (Genes == null)
            {
                Genes = await Database.GetAllGene();
            }
            var     doi     = source.Study?.Doi;
            SnpData snpData = SnpData.FromSnp(snp);

            if (doi != null)
            {
                var citation = await DoiClient.GetCitation(doi);

                if (citation != null)
                {
                    snpData.Annotations.Add(new SnpData.Annotation
                    {
                        Study   = citation,
                        Lineage = snp.Attributes.GetValueOrDefault("lineage")
                    });
                }
            }

            ;
            snpData = snpData with
            {
                Gene = Genes
                       .FirstOrDefault(v => v.Position <snp.Position && v.Position + v.Length> snp.Position)
            };

            await Database.Index(snpData);
        }