/// <summary> /// returns a JSON object given a vcf line (no annotation is performed) /// </summary> internal static UnifiedJson GetJson(string vcfLine, ChromosomeRenamer renamer) { var variantFeature = VcfUtilities.GetVariant(vcfLine, renamer); var json = new UnifiedJson(variantFeature); json.AddVariantData(variantFeature); return(json); }
private static void WriteOmim(IAnnotationSource annotator, UnifiedJsonWriter unifiedJsonWriter) { var omimAnnotations = new List <string>(); annotator.AddGeneLevelAnnotation(omimAnnotations); var annotionOutput = UnifiedJson.GetGeneAnnotation(omimAnnotations, "omim"); unifiedJsonWriter.Write(annotionOutput); }
/// <summary> /// constructor /// </summary> public UnifiedJsonWriter(StreamWriter writer, string creationTime, string vepDataVersion, IEnumerable <IDataSourceVersion> iDataSourceVersions, string genomeAssembly, string[] sampleNames) { _writer = writer; _writer.NewLine = "\n"; var dataSourceVersions = iDataSourceVersions?.Select(iDataSourceVersion => iDataSourceVersion as DataSourceVersion).ToList(); // write the header _writer.Write(UnifiedJson.GetHeader(NirvanaAnnotationSource.GetVersion(), creationTime, genomeAssembly, JsonCommon.SchemaVersion, vepDataVersion, dataSourceVersions, sampleNames)); }
private static void ExtractCsqs(UnifiedJson unifiedJson, List <CsqEntry> csqs) { foreach (var jsonVariant in unifiedJson.AnnotatedAlternateAlleles) { csqs.AddRange( jsonVariant.EnsemblTranscripts.Where(transcript => transcript.IsCanonical == "true") .Select(transcript => new CsqEntry { Allele = jsonVariant.GenotypeIndex.ToString(), Canonical = transcript.IsCanonical, Feature = transcript.TranscriptID, FeatureType = CsqCommon.TranscriptFeatureType, Symbol = transcript.Hgnc, Consequence = transcript.Consequence == null ? null : string.Join("&", transcript.Consequence) })); csqs.AddRange(from transcript in jsonVariant.RefSeqTranscripts where transcript.IsCanonical == "true" select new CsqEntry { Allele = jsonVariant.GenotypeIndex.ToString(), Canonical = transcript.IsCanonical, Feature = transcript.TranscriptID, FeatureType = CsqCommon.TranscriptFeatureType, Symbol = transcript.Hgnc, Consequence = transcript.Consequence == null ? null : string.Join("&", transcript.Consequence) }); csqs.AddRange(jsonVariant.RegulatoryRegions.Select(regulatoryRegion => new CsqEntry { Allele = jsonVariant.GenotypeIndex.ToString(), Consequence = string.Join("&", regulatoryRegion.Consequence), Feature = regulatoryRegion.ID, FeatureType = CsqCommon.RegulatoryFeatureType })); } }
private static void ExtractInfo(UnifiedJson unifiedJson, VcfField infoEntries) { var alleleFreq1000G = new VcfInfoKeyValue("AF1000G"); var ancestralAllele = new VcfInfoKeyValue("AA"); var clinVar = new VcfInfoKeyValue("clinvar"); var cosmic = new VcfInfoKeyValue("cosmic"); var evs = new VcfInfoKeyValue("EVS"); var globalMinorAllele = new VcfInfoKeyValue("GMAF"); var phyloP = new VcfInfoKeyValue("phyloP"); foreach (var jsonVariant in unifiedJson.AnnotatedAlternateAlleles) { if (jsonVariant.IsReferenceMinor) { infoEntries.Add("RefMinor"); } phyloP.Add(jsonVariant.PhylopScore); ancestralAllele.Add(jsonVariant.AncestralAllele); foreach (var cosmicEntry in jsonVariant.CosmicEntries) { if (cosmicEntry.ID == null) { continue; } if (cosmicEntry.SaAltAllele != jsonVariant.SaAltAllele) { continue; } cosmic.Add(jsonVariant.GenotypeIndex.ToString(CultureInfo.InvariantCulture) + '|' + cosmicEntry.ID); } foreach (var clinVarEntry in jsonVariant.ClinVarEntries) { if (clinVarEntry.Significance == null) { continue; } if (clinVarEntry.SaAltAllele != jsonVariant.SaAltAllele) { continue; } clinVar.Add(jsonVariant.GenotypeIndex.ToString(CultureInfo.InvariantCulture) + '|' + RemoveWhiteSpaceAndComma(clinVarEntry.Significance)); } if (jsonVariant.GlobalMinorAllele != null || jsonVariant.GlobalMinorAlleleFrequency != null) { globalMinorAllele.Add(jsonVariant.GlobalMinorAllele + '|' + jsonVariant.GlobalMinorAlleleFrequency); } else { // for multi allelic variants, we need to add a . for the entries that do not have a Global minor allele. globalMinorAllele.Add(null); } alleleFreq1000G.Add(jsonVariant.AlleleFrequencyAll); if (jsonVariant.EvsAlleleFrequencyAll != null || jsonVariant.EvsCoverage != null || jsonVariant.EvsSamples != null) { evs.Add(jsonVariant.EvsAlleleFrequencyAll + '|' + jsonVariant.EvsCoverage + '|' + jsonVariant.EvsSamples); } else { evs.Add(null); } } infoEntries.Add(ancestralAllele.GetString()); infoEntries.Add(globalMinorAllele.GetString()); infoEntries.Add(alleleFreq1000G.GetString()); infoEntries.Add(evs.GetString()); infoEntries.Add(phyloP.GetString()); infoEntries.Add(cosmic.GetString()); infoEntries.Add(clinVar.GetString()); }