public void OneAlleleFreqMissing() { var sa = new SupplementaryAnnotationPosition(825069); var saCreator = new SupplementaryPositionCreator(sa); var dbSnp = new DbSnpAnnotation { DbSnp = new List <long> { 4475692 } }; var oneKg = new OneKGenAnnotation { OneKgAllAn = 5008, OneKgAllAc = 3392 }; saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "C", dbSnp); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.OneKg, "C", oneKg); var saReader = new MockSupplementaryAnnotationReader(sa); VcfUtilities.FieldContains(saReader, "chr1 825069 rs4475692 G A,C 362.00 LowGQX;HighDPFRatio SNVSB=-36.9;SNVHPOL=3 GT:GQ:GQX:DP:DPF:AD 1/2:4:0:52:38:8,11,33", "AF1000G=.,0.677316", VcfCommon.InfoIndex); }
public void UpstreamGeneVariant() { var sa = new SupplementaryAnnotationPosition(46107) { IsRefMinorAllele = true, GlobalMajorAllele = "G", GlobalMajorAlleleFrequency = "0.9029", GlobalMinorAllele = "A", GlobalMinorAlleleFrequency = "0.0971" }; var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(Resources.CacheGRCh37("ENST00000576171_chr17_Ensembl84"), saReader, "17 46107 . A . 153 LowGQX SNVSB=-20.1;SNVHPOL=4;GMAF=G|0.9988;RefMinor;CSQT=A||ENST00000576171|upstream_gene_variant GT:GQ:GQX:DP:DPF:AD 1/1:18:18:7:0:0,7"); Assert.NotNull(annotatedVariant); Assert.Contains("\"isReferenceMinorAllele\":true", annotatedVariant.ToString()); var altAllele = annotatedVariant.AnnotatedAlternateAlleles.FirstOrDefault(); Assert.NotNull(altAllele); const string expectedJsonLine = "{\"refAllele\":\"A\",\"begin\":46107,\"chromosome\":\"17\",\"end\":46107,\"globalMinorAllele\":\"A\",\"gmaf\":0.0971,\"isReferenceMinorAllele\":true,\"variantType\":\"SNV\",\"vid\":\"17:46107:A\",\"transcripts\":{\"ensembl\":[{\"transcript\":\"ENST00000576171.1\",\"bioType\":\"lincRNA\",\"geneId\":\"ENSG00000273172\",\"hgnc\":\"AC108004.2\",\"consequence\":[\"upstream_gene_variant\"],\"isCanonical\":true}]}}"; // ReSharper disable once PossibleNullReferenceException Assert.Equal(expectedJsonLine, altAllele.ToString()); }
public void IntergenicVariant() { var sa = new SupplementaryAnnotationPosition(47960) { IsRefMinorAllele = true, GlobalMajorAllele = "A", GlobalMajorAlleleFrequency = "0.9239" }; var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(Resources.CacheGRCh37("ENST00000518655_chr1_Ensembl84"), saReader, "chr1 47960 . T . 1242.00 PASS SNVSB=-87.0;SNVHPOL=3"); Assert.NotNull(annotatedVariant); Assert.Contains("\"isReferenceMinorAllele\":true", annotatedVariant.ToString()); var altAllele = annotatedVariant.AnnotatedAlternateAlleles.FirstOrDefault(); Assert.NotNull(altAllele); // intergenic variant are not exposed in the JSON file AssertUtilities.CheckEnsemblTranscriptCount(0, altAllele); AssertUtilities.CheckRefSeqTranscriptCount(0, altAllele); }
public void MultiVariantEntry() { var reader = new ClinVarXmlReader(new FileInfo(Resources.TopPath("RCV000007484.xml")), _reader, _sequence); foreach (var clinVarItem in reader) { switch (clinVarItem.Start) { case 8045031: Assert.Equal("G", clinVarItem.ReferenceAllele); Assert.Equal("A", clinVarItem.AltAllele); break; case 8021911: Assert.Equal("GTGCTGGACGGTGTCCCT", clinVarItem.AltAllele); var sa = new SupplementaryAnnotationPosition(clinVarItem.Start); var saCreator = new SupplementaryPositionCreator(sa); clinVarItem.SetSupplementaryAnnotations(saCreator); Assert.Equal("iGTGCTGGACGGTGTCCCT", clinVarItem.SaAltAllele); break; default: throw new InvalidDataException($"Unexpected clinvar item start point : {clinVarItem.Start}"); } } }
public void EvsOutputTest() { var sa = new SupplementaryAnnotationPosition(115256529); var dbSnp = new DbSnpAnnotation { DbSnp = new List <long> { 121913237 } }; var evs = new EvsAnnotation { EvsAll = "0.0001", EvsCoverage = "102", NumEvsSamples = "3456" }; var saCreator = new SupplementaryPositionCreator(sa); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.Evs, "C", evs); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "C", dbSnp); var saReader = new MockSupplementaryAnnotationReader(sa); VcfUtilities.FieldContains(saReader, "chr1\t115256529\t.\tT\tC\t1000\tPASS\t.\tGT\t0/1", "EVS=0.0001|102|3456", VcfCommon.InfoIndex); }
public void AlleleFrequency1KgOutputTest() { 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 saReader = new MockSupplementaryAnnotationReader(sa); VcfUtilities.FieldContains(saReader, "chr1\t115256529\t.\tT\tC\t1000\tPASS\t.\tGT\t0/1", "AF1000G=0.425319", VcfCommon.InfoIndex); }
public void CosmicOutputTest() { var sa = new SupplementaryAnnotationPosition(115256529); var saCreator = new SupplementaryPositionCreator(sa); var altAllele = "C"; 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 saReader = new MockSupplementaryAnnotationReader(sa); VcfUtilities.FieldContains(saReader, "chr1\t115256529\t.\tT\tC\t1000\tPASS\t.\tGT\t0/1", "cosmic=1|COSM1000", VcfCommon.InfoIndex); }
public void NumEvsSamplesTest() { const string vcfLine = "1 1564952 rs112177324 TG TGG,T . PASS BSNP=dbSNP_132;EA_AC=2,3039,4701;AA_AC=44,279,3231;TAC=46,3318,7932;MAF=39.2793,9.0884,29.7805;GTS=A1A1,A1A2,A1R,A2A2,A2R,RR;EA_GTC=0,1,1,707,1624,1538;AA_GTC=4,4,32,41,193,1503;GTC=4,5,33,748,1817,3041;DP=10;GL=MIB2;CP=0.8;CG=-0.0;AA=.;CA=.;EXOME_CHIP=no;GWAS_PUBMED=.;FG=NM_080875.2:intron,NM_080875.2:intron,NM_001170689.1:intron,NM_001170689.1:intron,NM_001170688.1:intron,NM_001170688.1:intron,NM_001170687.1:intron,NM_001170687.1:intron,NM_001170686.1:intron,NM_001170686.1:intron;HGVS_CDNA_VAR=NM_080875.2:c.2908+7del1,NM_080875.2:c.2908+6_2908+7insG,NM_001170689.1:c.2187-66del1,NM_001170689.1:c.2187-67_2187-66insG,NM_001170688.1:c.2713+7del1,NM_001170688.1:c.2713+6_2713+7insG,NM_001170687.1:c.2866+7del1,NM_001170687.1:c.2866+6_2866+7insG,NM_001170686.1:c.2896+7del1,NM_001170686.1:c.2896+6_28967insG;HGVS_PROTEIN_VAR=.,.,.,.,.,.,.,.,.,.;CDS_SIZES=NM_080875.2:3213,NM_080875.2:3213,NM_001170689.1:2262,NM_001170689.1:2262,NM_001170688.1:3018,NM_001170688.1:3018,NM_001170687.1:3171,NM_001170687.1:3171,NM_001170686.1:3201,NM_001170686.1:3201;GS=.,.,.,.,.,.,.,.,.,.;PH=.,.,.,.,.,.,.,.,.,.;EA_AGE=.;AA_AGE=."; var evsReader = new EvsReader(_renamer); var evsItemsList = evsReader.ExtractItems(vcfLine); var sa = new SupplementaryAnnotationPosition(1564953); var saCreator = new SupplementaryPositionCreator(sa); var additionalItems = new List <SupplementaryDataItem>(); foreach (var evsItem in evsItemsList) { additionalItems.Add(evsItem.SetSupplementaryAnnotations(saCreator)); } foreach (var item in additionalItems) { item.SetSupplementaryAnnotations(saCreator); } var evs = sa.AlleleSpecificAnnotations["iG"].Annotations[DataSourceCommon.GetIndex(DataSourceCommon.DataSource.Evs)] as EvsAnnotation; Assert.NotNull(evs); Assert.Equal("5648", evs.NumEvsSamples);//GTC=4,5,33,748,1817,3041; }
/// <summary> /// reads the supplementary annotation from disk /// </summary> private static SupplementaryAnnotationPosition Read(ExtendedBinaryReader reader, int referencePos) { var sa = new SupplementaryAnnotationPosition(referencePos); SupplementaryAnnotationPosition.Read(reader, sa); return(sa); }
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); }
public void RwDbsnpGlobalAlleles() { //NIR-1262 var randomPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); // create our expected data source versions var dbSnpVersion = new DataSourceVersion("dbSNP", "147", DateTime.Parse("2016-07-26").Ticks); var expectedDataSourceVersions = new List <DataSourceVersion> { dbSnpVersion }; const string vcfLine1 = "2 141724543 rs112783784 A C,T . . RS=112783784;RSPOS=141724543;dbSNPBuildID=132;SSR=0;SAO=0;VP=0x050100080015140136000100;WGT=1;VC=SNV;SLO;INT;OTH;ASP;VLD;GNO;KGPhase1;KGPhase3;CAF=0.04113,0.9105,0.04832;COMMON=1"; const string vcfLine2 = "2 141724543 rs4300776 A C . . RS=4300776;RSPOS=141724543;dbSNPBuildID=111;SSR=0;SAO=0;VP=0x050100080015000102000100;WGT=1;VC=SNV;SLO;INT;OTH;ASP;GNO;CAF=0.04113,0.9105;COMMON=1"; var sa = new SupplementaryAnnotationPosition(141724543); var saCreator = new SupplementaryPositionCreator(sa); var dbsnpReader = new DbSnpReader(_renamer); foreach (var dbSnpItem in dbsnpReader.ExtractItem(vcfLine1)) { dbSnpItem.SetSupplementaryAnnotations(saCreator); } foreach (var dbSnpItem in dbsnpReader.ExtractItem(vcfLine2)) { dbSnpItem.SetSupplementaryAnnotations(saCreator); } // write the supplementary annotation file using (var writer = new SupplementaryAnnotationWriter(randomPath, "chr1", expectedDataSourceVersions)) { saCreator.FinalizePositionalAnnotations(); writer.Write(saCreator, sa.ReferencePosition); } using (var reader = new SupplementaryAnnotationReader(randomPath)) { // extract the three annotations var observedAnnotation = reader.GetAnnotation(141724543) as SupplementaryAnnotationPosition; Assert.NotNull(observedAnnotation); Assert.Equal("C", observedAnnotation.GlobalMajorAllele); Assert.Equal("0.9105", observedAnnotation.GlobalMajorAlleleFrequency); Assert.Equal("T", observedAnnotation.GlobalMinorAllele); Assert.Equal("0.04832", observedAnnotation.GlobalMinorAlleleFrequency); } File.Delete(randomPath); File.Delete(randomPath + ".idx"); }
public void ReadWriteCustomAnnotation() { var randomPath = GetRandomPath(true); // create our expected data source versions var dbSnpVersion = new DataSourceVersion("dbSNP", "142", DateTime.Parse("2015-01-02").Ticks); var clinVarVersion = new DataSourceVersion("ClinVar", "13.5", DateTime.Parse("2015-01-19").Ticks); var expectedDataSourceVersions = new List <DataSourceVersion> { dbSnpVersion, clinVarVersion }; var customFile = new FileInfo(Resources.TopPath("customCosmic.vcf")); var customReader = new CustomAnnotationReader(customFile, _renamer); // all items from this file should be of type cosmic. var customItems = customReader.ToList(); var sa = new SupplementaryAnnotationPosition(69224); var saCreator = new SupplementaryPositionCreator(sa); foreach (var customItem in customItems) { // NOTE that the two custom items are for different position, but for the purpose of our test, this is not an issue. customItem.SetSupplementaryAnnotations(saCreator); } // the above code was unit tested in MergeDbSnpClinVar() using (var writer = new SupplementaryAnnotationWriter(randomPath, "chr1", expectedDataSourceVersions)) { writer.Write(saCreator, sa.ReferencePosition); } // read the supplementary annotation file using (var reader = new SupplementaryAnnotationReader(randomPath)) { // extract the three annotations var observedAnnotation1 = reader.GetAnnotation(69224); Assert.NotNull(observedAnnotation1); for (var i = 0; i < sa.CustomItems.Count; i++) { Assert.Equal(sa.CustomItems[i].Id, observedAnnotation1.CustomItems[i].Id); Assert.Equal(sa.CustomItems[i].AnnotationType, observedAnnotation1.CustomItems[i].AnnotationType); Assert.Equal(sa.CustomItems[i].IsAlleleSpecific, observedAnnotation1.CustomItems[i].IsAlleleSpecific); Assert.True(sa.CustomItems[i].StringFields.SequenceEqual(observedAnnotation1.CustomItems[i].StringFields)); if (sa.CustomItems[i].BooleanFields.Count > 0) { Assert.True(sa.CustomItems[i].BooleanFields.SequenceEqual(observedAnnotation1.CustomItems[i].BooleanFields)); } } } }
public void ReadWriteClinVar() { //test to make sure that we write a ClinVar entry and read back the same thing. var xmlReader = new ClinVarXmlReader(new FileInfo(@"Resources\RCV000152657.xml"), _reader, _sequence); var randomPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); // create our expected data source versions var dbSnpVersion = new DataSourceVersion("dbSNP", "142", DateTime.Parse("2015-01-02").Ticks); var clinVarVersion = new DataSourceVersion("ClinVar", "13.5", DateTime.Parse("2015-01-19").Ticks); var expectedDataSourceVersions = new List <DataSourceVersion> { dbSnpVersion, clinVarVersion }; var sa = new SupplementaryAnnotationPosition(10183457); var saCreator = new SupplementaryPositionCreator(sa); foreach (var clinVarItem in xmlReader) { clinVarItem.SetSupplementaryAnnotations(saCreator); saCreator.MergeSaCreator(saCreator); } using (var writer = new SupplementaryAnnotationWriter(randomPath, "chr9", expectedDataSourceVersions)) { writer.Write(saCreator, sa.ReferencePosition); } // read the supplementary annotation file using (var reader = new SupplementaryAnnotationReader(randomPath)) { var observedAnnotation = reader.GetAnnotation(10183457) as SupplementaryAnnotationPosition; Assert.NotNull(observedAnnotation); for (var i = 0; i < sa.ClinVarItems.Count; i++) { Assert.Equal(sa.ClinVarItems[i].ID, observedAnnotation.ClinVarItems[i].ID); Assert.Equal(sa.ClinVarItems[i].Significance, observedAnnotation.ClinVarItems[i].Significance); Assert.Equal(sa.ClinVarItems[i].LastUpdatedDate, observedAnnotation.ClinVarItems[i].LastUpdatedDate); Assert.True(sa.ClinVarItems[i].Phenotypes.SequenceEqual(observedAnnotation.ClinVarItems[i].Phenotypes)); Assert.True(sa.ClinVarItems[i].MedGenIDs.SequenceEqual(observedAnnotation.ClinVarItems[i].MedGenIDs)); Assert.True(sa.ClinVarItems[i].OrphanetIDs.SequenceEqual(observedAnnotation.ClinVarItems[i].OrphanetIDs)); Assert.Equal(sa.ClinVarItems[i].AlleleOrigins, observedAnnotation.ClinVarItems[i].AlleleOrigins); Assert.True(sa.ClinVarItems[i].OmimIDs.SequenceEqual(observedAnnotation.ClinVarItems[i].OmimIDs)); Assert.True(sa.ClinVarItems[i].PubmedIds.SequenceEqual(observedAnnotation.ClinVarItems[i].PubmedIds)); } } File.Delete(randomPath); File.Delete(randomPath + ".idx"); }
/// <summary> /// constructor /// </summary> public SaReadWriteTests(ChromosomeRenamerFixture fixture) { _renamer = fixture.Renamer; _sequence = fixture.Sequence; _reader = fixture.Reader; // create our expected data source versions _expectedDataSourceVersion = new DataSourceVersion("ClinVar", "13.5", DateTime.Parse("2015-01-19").Ticks); _expectedDataSourceVersions = new List <DataSourceVersion> { _expectedDataSourceVersion }; // create our expected supplementary annotations var dbSnp1 = new DbSnpAnnotation { DbSnp = new List <long> { 1 } }; _expectedAnnotation1 = new SupplementaryAnnotationPosition(100); new SupplementaryPositionCreator(_expectedAnnotation1).AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, AltAllele, dbSnp1); var dbSnp2 = new DbSnpAnnotation { DbSnp = new List <long> { 2 } }; _expectedAnnotation2 = new SupplementaryAnnotationPosition(101); new SupplementaryPositionCreator(_expectedAnnotation2).AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, AltAllele, dbSnp2); var dbSnp3 = new DbSnpAnnotation { DbSnp = new List <long> { 3 } }; _expectedAnnotation3 = new SupplementaryAnnotationPosition(102); new SupplementaryPositionCreator(_expectedAnnotation3).AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, AltAllele, dbSnp3); _expectedInterval = new SupplementaryInterval(1, 1000, "chr1", null, VariantType.copy_number_variation, null, _renamer); _randomPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); // write the supplementary annotation file WriteSupplementaryAnnotationFile(_randomPath); }
public void Utf8ClinVar() { // NIR-900 var xmlReader = new ClinVarXmlReader(new FileInfo(Resources.TopPath("RCV000087262.xml")), _reader, _sequence); var randomPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); // create our expected data source versions var dbSnpVersion = new DataSourceVersion("dbSNP", "142", DateTime.Parse("2015-01-02").Ticks); var clinVarVersion = new DataSourceVersion("ClinVar", "13.5", DateTime.Parse("2015-01-19").Ticks); var expectedDataSourceVersions = new List <DataSourceVersion> { dbSnpVersion, clinVarVersion }; // This is the case where Nirvana throws an error: Too many bytes in what should have been a 7 bit encoded Int32. var sa = new SupplementaryAnnotationPosition(225592188); var saCreator = new SupplementaryPositionCreator(sa); foreach (var clinVarItem in xmlReader) { clinVarItem.SetSupplementaryAnnotations(saCreator); saCreator.MergeSaCreator(saCreator); } using (var writer = new SupplementaryAnnotationWriter(randomPath, "chr1", expectedDataSourceVersions)) { writer.Write(saCreator, sa.ReferencePosition); } // read the supplementary annotation file using (var reader = new SupplementaryAnnotationReader(randomPath)) { // extract the three annotations var observedAnnotation1 = reader.GetAnnotation(225592188) as SupplementaryAnnotationPosition; Assert.NotNull(observedAnnotation1); for (var i = 0; i < sa.ClinVarItems.Count; i++) { Assert.Equal(sa.ClinVarItems[i].Phenotypes, observedAnnotation1.ClinVarItems[i].Phenotypes); } } File.Delete(randomPath); File.Delete(randomPath + ".idx"); }
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); }
public void NullVcfFieldTest() { var sa = new SupplementaryAnnotationPosition(9580071); var dbSnp = new DbSnpAnnotation { DbSnp = null }; var saCreator = new SupplementaryPositionCreator(sa); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "T", dbSnp); var saReader = new MockSupplementaryAnnotationReader(sa); var idColumn = VcfUtilities.GetVcfColumn(saReader, "chr12\t9580071\t.\tA\tC,T\t394.00\tPASS\t.\tGT\t0/1", VcfCommon.IdIndex); Assert.NotNull(idColumn); }
public void EvsDepthFieldTest() { const string vcfLine = "1 69428 rs140739101 T G . PASS BSNP=dbSNP_134;EA_AC=313,6535;AA_AC=14,3808;TAC=327,10343;MAF=4.5707,0.3663,3.0647;GTS=GG,GT,TT;EA_GTC=92,129,3203;AA_GTC=1,12,1898;GTC=93,141,5101;DP=110;GL=OR4F5;CP=1.0;CG=0.9;AA=T;CA=.;EXOME_CHIP=no;GWAS_PUBMED=.;FG=NM_001005484.1:missense;HGVS_CDNA_VAR=NM_001005484.1:c.338T>G;HGVS_PROTEIN_VAR=NM_001005484.1:p.(F113C);CDS_SIZES=NM_001005484.1:918;GS=205;PH=probably-damaging:0.999;EA_AGE=.;AA_AGE=."; var evsReader = new EvsReader(_renamer); var evsItem = evsReader.ExtractItems(vcfLine)[0]; var sa = new SupplementaryAnnotationPosition(69428); var saCreator = new SupplementaryPositionCreator(sa); evsItem.SetSupplementaryAnnotations(saCreator); var evs = sa.AlleleSpecificAnnotations["G"].Annotations[DataSourceCommon.GetIndex(DataSourceCommon.DataSource.Evs)] as EvsAnnotation; Assert.NotNull(evs); Assert.Equal("110", evs.EvsCoverage); }
public void RefGlobalMajor() { // NIR-942 const string vcfLine = "1 1242707 rs2274262 A G,T . . RS=2274262;RSPOS=1242707;RV;dbSNPBuildID=100;SSR=0;SAO=0;VP=0x0501004a000507013e000100;WGT=1;VC=SNV;SLO;U5;INT;R5;ASP;VLD;G5A;G5;GNO;KGPhase1;KGPhase3;CAF=0.4,0.4,0.2;COMMON=1"; var dbsnpReader = new DbSnpReader(_renamer); var dbSnpEntry = dbsnpReader.ExtractItem(vcfLine)[0]; var sa = new SupplementaryAnnotationPosition(1242707); var saCreator = new SupplementaryPositionCreator(sa); dbSnpEntry.SetSupplementaryAnnotations(saCreator); saCreator.FinalizePositionalAnnotations(); Assert.Equal("A", sa.GlobalMajorAllele); Assert.Equal("G", sa.GlobalMinorAllele); }
public void DisregardZeroFreq() { const string vcfLine = "1 241369 rs11490246 C T . . RS=11490246;RSPOS=241369;dbSNPBuildID=120;SSR=0;SAO=0;VP=0x050100000005000126000100;WGT=1;VC=SNV;SLO;ASP;GNO;KGPhase3;CAF=0,1;COMMON=0"; var dbsnpReader = new DbSnpReader(_renamer); var dbSnpEntry = dbsnpReader.ExtractItem(vcfLine)[0]; var sa = new SupplementaryAnnotationPosition(828); var saCreator = new SupplementaryPositionCreator(sa); dbSnpEntry.SetSupplementaryAnnotations(saCreator); saCreator.FinalizePositionalAnnotations(); Assert.Equal("T", sa.GlobalMajorAllele); Assert.Equal("1", sa.GlobalMajorAlleleFrequency); Assert.Null(sa.GlobalMinorAllele); Assert.Null(sa.GlobalMinorAlleleFrequency); }
public void MissingDbsnpId() { // refactorSA. Annotation for C is missing in the database. have to debug that. const string vcfLine = "X 21505833 rs12395602 G A,C,T . . RS=12395602;RSPOS=21505833;dbSNPBuildID=120;SSR=0;SAO=0;VP=0x05010008000505051f000101;WGT=1;VC=SNV;SLO;INT;ASP;VLD;G5;HD;GNO;KGPhase1"; var dbsnpReader = new DbSnpReader(_renamer); var dbSnpEntries = dbsnpReader.ExtractItem(vcfLine); var sa = new SupplementaryAnnotationPosition(21505833); var saCreator = new SupplementaryPositionCreator(sa); foreach (var dbSnpEntry in dbSnpEntries) { dbSnpEntry.SetSupplementaryAnnotations(saCreator); } saCreator.FinalizePositionalAnnotations(); var dbSnpA = sa.AlleleSpecificAnnotations["A"].Annotations[DataSourceCommon.GetIndex(DataSourceCommon.DataSource.DbSnp)] as DbSnpAnnotation; Assert.NotNull(dbSnpA); var dbSnpC = sa.AlleleSpecificAnnotations["C"].Annotations[DataSourceCommon.GetIndex(DataSourceCommon.DataSource.DbSnp)] as DbSnpAnnotation; Assert.NotNull(dbSnpC); var dbSnpT = sa.AlleleSpecificAnnotations["T"].Annotations[DataSourceCommon.GetIndex(DataSourceCommon.DataSource.DbSnp)] as DbSnpAnnotation; Assert.NotNull(dbSnpT); Assert.Equal(12395602, dbSnpA.DbSnp[0]); Assert.Equal(12395602, dbSnpC.DbSnp[0]); Assert.Equal(12395602, dbSnpT.DbSnp[0]); }
public void DbSnpOutputTest() { var sa = new SupplementaryAnnotationPosition(115256529); var dbSnp = new DbSnpAnnotation { DbSnp = new List <long> { 11554290 } }; var saCreator = new SupplementaryPositionCreator(sa); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "C", dbSnp); var saReader = new MockSupplementaryAnnotationReader(sa); VcfUtilities.FieldContains(saReader, "chr1\t115256529\t.\tT\tC\t1000\tPASS\t.\tGT\t0/1", "rs11554290", VcfCommon.IdIndex); }
public void NoMinorAllele1() { const string vcfLine = "17 828 rs62053745 T C . . RS=62053745;RSPOS=828;dbSNPBuildID=129;SSR=0;SAO=0;VP=0x050100080005140136000100;WGT=1;VC=SNV;SLO;INT;ASP;VLD;GNO;KGPhase1;KGPhase3;CAF=0.7424,.;COMMON=1"; var dbsnpReader = new DbSnpReader(_renamer); var dbSnpEntry = dbsnpReader.ExtractItem(vcfLine)[0]; var sa = new SupplementaryAnnotationPosition(828); var saCreator = new SupplementaryPositionCreator(sa); dbSnpEntry.SetSupplementaryAnnotations(saCreator); saCreator.FinalizePositionalAnnotations(); Assert.Equal("T", sa.GlobalMajorAllele); Assert.Equal("0.7424", sa.GlobalMajorAlleleFrequency); Assert.Null(sa.GlobalMinorAllele); Assert.Null(sa.GlobalMinorAlleleFrequency); }
public void MultipleDbSnpIds() { var sa = new SupplementaryAnnotationPosition(115256529); var dbSnp = new DbSnpAnnotation { DbSnp = new List <long> { 111, 222, 333 } }; var saCreator = new SupplementaryPositionCreator(sa); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "C", dbSnp); var saReader = new MockSupplementaryAnnotationReader(sa); VcfUtilities.FieldContains(saReader, "chr1\t115256529\tMantaFluff\tT\tC\t1000\tPASS\t.\tGT\t0/1", "MantaFluff;rs111;rs222;rs333", VcfCommon.IdIndex); }
public void MultipleDbSnpIds() { var sa = new SupplementaryAnnotationPosition(115256529); var dbSnp = new DbSnpAnnotation { DbSnp = new List <long> { 111, 222, 333 } }; var saCreator = new SupplementaryPositionCreator(sa); saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, "C", dbSnp); var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(DataUtilities.EmptyCachePrefix, saReader, "chr1 115256529 . T C 1000 PASS . GT 0/1"); Assert.NotNull(annotatedVariant); Assert.Contains("\"dbsnp\":[\"rs111\",\"rs222\",\"rs333\"]", annotatedVariant.ToString()); }
public void SynonymousVariant() { var sa = new SupplementaryAnnotationPosition(115258746) { IsRefMinorAllele = true, GlobalMajorAllele = "G", GlobalMajorAlleleFrequency = "0.8239" }; var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(Resources.CacheGRCh37("ENST00000369535_chr1_Ensembl84"), saReader, "chr1 115258746 . A . 265.00 PASS SNVSB=-31.9;SNVHPOL=2 GT:GQ:GQX:DP:DPF:AD 0/1:254:40:56:1:26,30"); Assert.NotNull(annotatedVariant); Assert.Contains("\"isReferenceMinorAllele\":true", annotatedVariant.ToString()); var transcriptAllele = annotatedVariant.AnnotatedAlternateAlleles.FirstOrDefault()?.EnsemblTranscripts.FirstOrDefault(); Assert.NotNull(transcriptAllele); // ReSharper disable once PossibleNullReferenceException Assert.Equal("synonymous_variant", string.Join("&", transcriptAllele.Consequence)); }
public void IndelWithNoLeadingBase() { var cosmicReader = new MergedCosmicReader(); const string vcfLine1 = "3 10188320 COSM14426 GGTACTGAC A . . GENE=VHL;STRAND=+;CDS=c.463G>A;AA=p.?;CNT=2"; const string vcfLine2 = "3 10188320 COSM18152 G A . . GENE=VHL;STRAND=+;CDS=c.463G>A;AA=p.V155M;CNT=7"; var sa = new SupplementaryAnnotationPosition(10188320); var saCreator = new SupplementaryPositionCreator(sa); foreach (var cosmicItem in cosmicReader.ExtractCosmicItems(vcfLine1)) { cosmicItem.SetSupplementaryAnnotations(saCreator); } Assert.Equal("9A", sa.CosmicItems[0].SaAltAllele); foreach (var cosmicItem in cosmicReader.ExtractCosmicItems(vcfLine2)) { cosmicItem.SetSupplementaryAnnotations(saCreator); } Assert.Equal("A", sa.CosmicItems[1].SaAltAllele); }
public void SpliceVariants() { var sa = new SupplementaryAnnotationPosition(889158) { IsRefMinorAllele = true, GlobalMajorAllele = "G", GlobalMajorAlleleFrequency = "0.8239" }; var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(Resources.CacheGRCh37("ENST00000327044_chr1_Ensembl84"), saReader, "chr1 889158 . C . 1243.00 PASS SNVSB=-130.5;SNVHPOL=3;CSQ=C|ENSG00000188976|ENST00000327044|Transcript|splice_region_variant&intron_variant|||||||CCDS3.1|ENST00000327044.6:c.888+4C>G|||YES|||ENSP00000317992|||8/18|NOC2L||||| GT:GQ:GQX:DP:DPF:AD 1/1:313:26:105:9:0,105"); Assert.NotNull(annotatedVariant); Assert.Contains("\"isReferenceMinorAllele\":true", annotatedVariant.ToString()); var transcriptAllele = annotatedVariant.AnnotatedAlternateAlleles.FirstOrDefault()?.EnsemblTranscripts.FirstOrDefault(); Assert.NotNull(transcriptAllele); // ReSharper disable once PossibleNullReferenceException Assert.Equal("splice_region_variant&intron_variant", string.Join("&", transcriptAllele.Consequence)); }
public void StartLost() { var sa = new SupplementaryAnnotationPosition(1558792) { IsRefMinorAllele = true, GlobalMajorAllele = "C", GlobalMajorAlleleFrequency = "0.9239" }; var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(Resources.CacheGRCh37("ENST00000487053_chr1_Ensembl84"), saReader, "chr1 1558792 . T . 1242.00 PASS SNVSB=-87.0;SNVHPOL=3;CSQ=C|ENSG00000197530|ENST00000487053|Transcript|initiator_codon_variant&NMD_transcript_variant|353|2|1|M/T|aTg/aCg|||ENST00000487053.1:c.2T>C|ENSP00000424615.1:p.Met1?|deleterious(0)||benign(0.036)||ENSP00000424615||3/21||MIB2|||||"); Assert.NotNull(annotatedVariant); Assert.Contains("\"isReferenceMinorAllele\":true", annotatedVariant.ToString()); var transcriptAllele = annotatedVariant.AnnotatedAlternateAlleles.FirstOrDefault()?.EnsemblTranscripts.FirstOrDefault(); Assert.NotNull(transcriptAllele); // ReSharper disable once PossibleNullReferenceException Assert.Equal("start_lost&NMD_transcript_variant", string.Join("&", transcriptAllele.Consequence)); }
public void IntronVariant() { var sa = new SupplementaryAnnotationPosition(13302) { IsRefMinorAllele = true, GlobalMajorAllele = "T", GlobalMajorAlleleFrequency = "0.9239" }; var saReader = new MockSupplementaryAnnotationReader(sa); var annotatedVariant = DataUtilities.GetVariant(Resources.CacheGRCh37("ENST00000518655_chr1_Ensembl84"), saReader, "chr1 13302 . C . 1242.00 PASS SNVSB=-87.0;SNVHPOL=3"); Assert.NotNull(annotatedVariant); Assert.Contains("\"isReferenceMinorAllele\":true", annotatedVariant.ToString()); var transcriptAllele = annotatedVariant.AnnotatedAlternateAlleles.FirstOrDefault()?.EnsemblTranscripts.FirstOrDefault(); Assert.NotNull(transcriptAllele); // ReSharper disable once PossibleNullReferenceException Assert.Equal("intron_variant&non_coding_transcript_variant", string.Join("&", transcriptAllele.Consequence)); }