Ejemplo n.º 1
0
        private static bool CheckPubmedIds(string xmlString, ClinVarItem clinVarItem)
        {
            var match = Regex.Match(xmlString, @"<a href=""/pubmed/(\d+)"">");

            var pubmedHash = new HashSet <long>();

            while (match.Success)
            {
                pubmedHash.Add(Convert.ToInt64(match.Groups[1].Value));
                match = match.NextMatch();
            }

            // we are using xor here. if they are not the same, we return false.
            if (clinVarItem.PubmedIds == null ^ pubmedHash.Count == 0)
            {
                PrintDiff(clinVarItem.ID.Split('.')[0], "pubmed", clinVarItem, pubmedHash);
                return(false);
            }

            foreach (var pId in pubmedHash)
            {
                if (clinVarItem.PubmedIds == null)
                {
                    return(false);
                }
                if (!clinVarItem.PubmedIds.Contains(pId))
                {
                    PrintDiff(clinVarItem.ID.Split('.')[0], "pubmed", clinVarItem, pubmedHash);
                    return(false);
                }
            }

            return(true);
        }
Ejemplo n.º 2
0
        public void AllSuppAnnotOutputTest()
        {
            const string altAllele = "C";

            var sa = new SupplementaryAnnotationPosition(115256529);

            var oneKg = new OneKGenAnnotation
            {
                OneKgAllAn = 5008,
                OneKgAllAc = 2130,
                OneKgAmrAn = 694,
                OneKgAmrAc = 250
            };

            var dbSnp = new DbSnpAnnotation
            {
                DbSnp = new List <long> {
                    11554290
                }
            };

            var saCreator = new SupplementaryPositionCreator(sa);

            saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.OneKg, "C", oneKg);
            saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "C", dbSnp);

            var cosmicItem1 = new CosmicItem("chr1", 115256529, "COSM1000", "T", altAllele, "TP53",
                                             new HashSet <CosmicItem.CosmicStudy> {
                new CosmicItem.CosmicStudy("", "carcinoma", "oesophagus")
            }, 1,
                                             altAllele);

            var cosmicItem2 = new CosmicItem("chr1", 115256529, "COSM1001", "T", altAllele, "TP53",
                                             new HashSet <CosmicItem.CosmicStudy> {
                new CosmicItem.CosmicStudy("01", "carcinoma", "large_intestine")
            }, 1,
                                             altAllele);

            cosmicItem1.AddCosmicToSa(saCreator);
            cosmicItem2.AddCosmicToSa(saCreator);

            var clinvarItem1 = new ClinVarItem(null, 0, null, altAllele, null, "RCV001",
                                               null, null, new List <string> {
                "ORPHA2462"
            }, null, null, "other");

            sa.ClinVarItems.Add(clinvarItem1);

            var saReader   = new MockSupplementaryAnnotationReader(sa);
            var infoColumn = VcfUtilities.GetVcfColumn(saReader,
                                                       "chr1\t115256529\t.\tT\tC\t1000\tPASS\t.\tGT\t0/1", VcfCommon.InfoIndex);

            Assert.Contains("AF1000G=0.425319", infoColumn);
            Assert.Contains("cosmic=1|COSM1000,1|COSM1001", infoColumn);
            Assert.Contains("clinvar=1|other", infoColumn);
        }
Ejemplo n.º 3
0
        public void ClinVarOutputTest()
        {
            var sa = new SupplementaryAnnotationPosition(115256529);

            var clinvarItem1 = new ClinVarItem(null, 0, null, "C", null, "RCV001",
                                               null, null, new List <string> {
                "ORPHA2462"
            }, null, null, "other");

            sa.ClinVarItems.Add(clinvarItem1);

            var saReader = new MockSupplementaryAnnotationReader(sa);

            VcfUtilities.FieldContains(saReader,
                                       "chr1\t115256529\t.\tT\tC\t1000\tPASS\t.\tGT\t0/1", "clinvar=1|other", VcfCommon.InfoIndex);
        }
Ejemplo n.º 4
0
        private bool ValidateRefAllele(ClinVarItem clinvarVariant)
        {
            if (string.IsNullOrEmpty(clinvarVariant.RefAllele) || clinvarVariant.RefAllele == "-")
            {
                return(true);
            }

            string refAllele = clinvarVariant.RefAllele;

            if (string.IsNullOrEmpty(refAllele))
            {
                return(true);
            }

            int refLength = clinvarVariant.Stop - clinvarVariant.Position + 1;

            return(refLength == refAllele.Length && _sequenceProvider.Sequence.Validate(clinvarVariant.Position, clinvarVariant.Stop, refAllele));
        }
Ejemplo n.º 5
0
        private bool ValidateRefAllele(ClinVarItem clinvarVariant)
        {
            if (string.IsNullOrEmpty(clinvarVariant.ReferenceAllele) || clinvarVariant.ReferenceAllele == "-")
            {
                return(true);
            }

            var refAllele = clinvarVariant.ReferenceAllele;

            if (string.IsNullOrEmpty(refAllele))
            {
                return(true);
            }

            var refLength = clinvarVariant.Stop - clinvarVariant.Start + 1;

            return(refLength == refAllele.Length && _sequenceProvider.Sequence.Validate(clinvarVariant.Start, clinvarVariant.Stop, refAllele));

            //var stop = clinvarVariant.Start + refAllele.Length - 1;
            //return _sequenceProvider.Sequence.Validate(clinvarVariant.Start, stop, refAllele);
        }
Ejemplo n.º 6
0
        private static void PrintDiff(string rcv, string fieldName, ClinVarItem clinVarItem, HashSet <long> pubmedHash)
        {
            Console.Write(rcv + '\t' + fieldName + '\t');

            if (pubmedHash != null)
            {
                foreach (var id in pubmedHash.OrderBy(x => x))
                {
                    Console.Write(id.ToString() + ',');
                }
            }

            Console.Write('\t');
            if (clinVarItem.PubmedIds != null)
            {
                foreach (var id in clinVarItem.PubmedIds.OrderBy(x => x))
                {
                    Console.Write(id.ToString() + ',');
                }
            }
            Console.WriteLine();
        }
Ejemplo n.º 7
0
 private static string GetAltAllele(ClinVarItem variant, ISequence compressedSequence)
 {
     return(variant == null ? null : compressedSequence.Substring(variant.Position - 1, variant.Stop - variant.Position + 1));
 }
Ejemplo n.º 8
0
 private static string GetReferenceAllele(ClinVarItem variant, ISequence compressedSequence)
 {
     return(variant == null ? null : compressedSequence.Substring(variant.Start - 1, variant.Stop - variant.Start + 1));
 }