public static string GetHeader(string annotator, string creationTime, string genomeAssembly, int jsonSchemaVersion, string vepDataVersion, List <DataSourceVersion> dataSourceVersions, string[] sampleNames = null) { var sb = new StringBuilder(); var jsonObject = new JsonObject(sb); sb.Append("{\"header\":{"); jsonObject.AddStringValue("annotator", annotator); jsonObject.AddStringValue("creationTime", creationTime); jsonObject.AddStringValue("genomeAssembly", genomeAssembly); jsonObject.AddIntValue("schemaVersion", jsonSchemaVersion); jsonObject.AddStringValue("dataVersion", vepDataVersion); // print our data source versions if (dataSourceVersions != null) { jsonObject.AddObjectValues("dataSources", dataSourceVersions); } if (sampleNames != null) { jsonObject.AddStringValues(SamplesTag, sampleNames); } sb.Append("},\"positions\":[\n"); return(sb.ToString()); }
public void SerializeJson(StringBuilder sb) { var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); jsonObject.AddIntValue("exon", Exon); jsonObject.AddIntValue("intron", Intron); jsonObject.AddObjectValues("fusions", GeneFusions); sb.Append(JsonObject.CloseBrace); }
public void AddObjectValues_NullArray() { var sb = StringBuilderCache.Acquire(); var json = new JsonObject(sb); json.AddObjectValues("test1", null as Point[]); var observedResult = StringBuilderCache.GetStringAndRelease(sb); Assert.Equal(string.Empty, observedResult); }
public override string ToString() { var sb = StringBuilderCache.Acquire(); var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); jsonObject.AddIntValue("exon", Exon); jsonObject.AddIntValue("intron", Intron); jsonObject.AddObjectValues("fusions", GeneFusions); sb.Append(JsonObject.CloseBrace); return StringBuilderCache.GetStringAndRelease(sb); }
private static void WriteGeneAnnotations(ICollection <IAnnotatedGene> annotatedGenes, JsonWriter writer) { if (annotatedGenes.Count == 0) { return; } var sb = StringBuilderCache.Acquire(); var jsonObject = new JsonObject(sb); jsonObject.AddObjectValues("genes", annotatedGenes, true); writer.WriteAnnotatedGenes(StringBuilderCache.GetStringAndRelease(sb)); }
public void AddObjectValues_TwoTimes() { var sb = StringBuilderCache.Acquire(); var json = new JsonObject(sb); var points = new Point[2]; points[0] = new Point(1, 2); points[1] = new Point(3, 4); var points2 = new Point[1]; points2[0] = new Point(5, 6); json.AddObjectValues("test1", points); json.AddObjectValues("test2", points2); const string expectedResult = "\"test1\":[{\"X\":1,\"Y\":2},{\"X\":3,\"Y\":4}],\"test2\":[{\"X\":5,\"Y\":6}]"; var observedResult = StringBuilderCache.GetStringAndRelease(sb); Assert.Equal(expectedResult, observedResult); }
private static string GetHeader(IProvider geneAnnotationProvider) { var sb = new StringBuilder(); var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); jsonObject.AddStringValue("annotator", "Nirvana " + CommandLineUtilities.Version); jsonObject.AddStringValue("creationTime", Date.CurrentTimeStamp); jsonObject.AddIntValue("schemaVersion", SaCommon.SchemaVersion); jsonObject.AddObjectValues("dataSources", geneAnnotationProvider.DataSourceVersions); sb.Append(JsonObject.CloseBrace); return(sb.ToString()); }
public void SerializeJson(StringBuilder sb) { var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); jsonObject.AddStringValue("id", ID); jsonObject.AddStringValue("isAlleleSpecific", IsAlleleSpecific, false); jsonObject.AddStringValue("refAllele", RefAllele); jsonObject.AddStringValue("altAllele", AltAllele); jsonObject.AddStringValue("gene", Gene); jsonObject.AddIntValue("sampleCount", SampleCount); jsonObject.AddObjectValues("studies", Studies); sb.Append(JsonObject.CloseBrace); }
public void SerializeJson(StringBuilder sb) { var jsonObject = new JsonObject(sb); // data section sb.Append(JsonObject.OpenBrace); jsonObject.AddIntValue("intron", _intron); jsonObject.AddIntValue("exon", _exon); if (_fusions.Count > 0) { jsonObject.AddObjectValues("fusions", _fusions); } sb.Append(JsonObject.CloseBrace); }
public override string ToString() { var sb = StringBuilderCache.Acquire(); var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); jsonObject.AddIntValue("mimNumber", MimNumber); jsonObject.AddStringValue("description", _description?.Replace(@"\'", @"'")); if (_phenotypes.Count > 0) { jsonObject.AddObjectValues("phenotypes", _phenotypes); } sb.Append(JsonObject.CloseBrace.ToString()); return(StringBuilderCache.GetStringAndRelease(sb)); }
public override string ToString() { var sb = new StringBuilder(); var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); jsonObject.AddStringValue("mimNumber", _mimNumber.ToString()); jsonObject.AddStringValue("hgnc", Hgnc); jsonObject.AddStringValue("description", _description); if (_phenotypes.Count > 0) { jsonObject.AddObjectValues("phenotypes", _phenotypes); } sb.Append(JsonObject.CloseBrace.ToString()); return(sb.ToString()); }
public string GetJsonString() { var sb = StringBuilderCache.Acquire(); var jsonObject = new JsonObject(sb); sb.Append(JsonObject.OpenBrace); JsonSchema.TotalItems++; JsonSchema.CountKeyIfAdded(jsonObject.AddIntValue("mimNumber", _mimNumber), "mimNumber"); JsonSchema.CountKeyIfAdded(jsonObject.AddStringValue("geneName", string.IsNullOrEmpty(_geneName) ? null : JsonConvert.SerializeObject(_geneName), false), "geneName"); //Serialized string has the double quote at the beginning and the end JsonSchema.CountKeyIfAdded(jsonObject.AddStringValue("description", string.IsNullOrEmpty(_description) ? null : JsonConvert.SerializeObject(_description), false), "description"); if (_phenotypes.Count > 0) { JsonSchema.CountKeyIfAdded(jsonObject.AddObjectValues("phenotypes", _phenotypes), "phenotypes"); } sb.Append(JsonObject.CloseBrace); return(StringBuilderCache.GetStringAndRelease(sb)); }
private void AddCustomeIntervals(JsonObject jsonObject) { var intervalGroups = new Dictionary <string, List <ICustomInterval> >(); foreach (var customInterval in CustomIntervals) { var type = customInterval.Type; if (intervalGroups.ContainsKey(type)) { intervalGroups[type].Add(customInterval); } else { intervalGroups[type] = new List <ICustomInterval> { customInterval }; } } foreach (var intervalGroup in intervalGroups) { jsonObject.AddObjectValues(intervalGroup.Key, intervalGroup.Value); } }
private void AddCustomeItems(JsonObject jsonObject) { var customGroups = new Dictionary <string, IList <ICustomAnnotation> >(); foreach (var customItem in CustomItems) { var type = customItem.AnnotationType; if (customGroups.ContainsKey(type)) { customGroups[type].Add(customItem); } else { customGroups[type] = new List <ICustomAnnotation> { customItem }; } } foreach (var customGroup in customGroups) { jsonObject.AddObjectValues(customGroup.Key, customGroup.Value); } }
public string GetJsonString(string originalChromName) { var sb = StringBuilderCache.Acquire(); var jsonObject = new JsonObject(sb); // data section sb.Append(JsonObject.OpenBrace); jsonObject.AddStringValue("vid", Variant.VariantId); jsonObject.AddStringValue("chromosome", originalChromName); jsonObject.AddIntValue("begin", Variant.Start); jsonObject.AddIntValue("end", Variant.End); jsonObject.AddBoolValue("isReferenceMinorAllele", Variant.IsRefMinor); if (!Variant.IsRefMinor) { jsonObject.AddStringValue("refAllele", string.IsNullOrEmpty(Variant.RefAllele) ? "-" : Variant.RefAllele); jsonObject.AddStringValue("altAllele", string.IsNullOrEmpty(Variant.AltAllele) ? "-" : Variant.AltAllele); } else { jsonObject.AddStringValue("refAllele", string.IsNullOrEmpty(Variant.AltAllele) ? "-" : Variant.AltAllele); } var variantType = GetVariantType(Variant.Type); jsonObject.AddStringValue("variantType", variantType.ToString()); jsonObject.AddBoolValue("isDecomposedVariant", Variant.IsDecomposed); if (variantType.ToString() != "SNV") { jsonObject.AddBoolValue("isRecomposedVariant", Variant.IsRecomposed); } jsonObject.AddStringValue("hgvsg", HgvsgNotation); jsonObject.AddDoubleValue("phylopScore", PhylopScore); if (RegulatoryRegions?.Count > 0) { jsonObject.AddObjectValues("regulatoryRegions", RegulatoryRegions); } if (SupplementaryAnnotations.Count > 0) { AddSAstoJsonObject(jsonObject); } foreach (var pluginData in PluginDataSet) { jsonObject.AddStringValue(pluginData.Name, pluginData.GetJsonString(), false); } if (OverlappingGenes.Count > 0) { jsonObject.AddStringValues("overlappingGenes", OverlappingGenes); } if (OverlappingTranscripts.Count > 0) { jsonObject.AddObjectValues("overlappingTranscripts", OverlappingTranscripts); } if (EnsemblTranscripts?.Count > 0 || RefSeqTranscripts?.Count > 0) { jsonObject.AddGroupedObjectValues("transcripts", TranscriptLabels, RefSeqTranscripts, EnsemblTranscripts); } sb.Append(JsonObject.CloseBrace); return(StringBuilderCache.GetStringAndRelease(sb)); }
/// <summary> /// returns a string representation of our variant /// </summary> public override string ToString() { var sb = new StringBuilder(); var jsonObject = new JsonObject(sb); // data section sb.Append(JsonObject.OpenBrace); // ========== // positional // ========== jsonObject.AddStringValue(AncestralAlleleTag, AncestralAllele); if (!IsReferenceMinor) { jsonObject.AddStringValue(AltAlleleTag, string.IsNullOrEmpty(AltAllele) ? "-" : AltAllele); jsonObject.AddStringValue(RefAlleleTag, string.IsNullOrEmpty(RefAllele) ? "-" : RefAllele); } else { jsonObject.AddStringValue(RefAlleleTag, string.IsNullOrEmpty(RefAllele) ? "-" : RefAllele); } jsonObject.AddIntValue(BeginTag, ReferenceBegin); jsonObject.AddStringValue(ChromosomeTag, ReferenceName); jsonObject.AddStringValue(PhylopScoreTag, PhylopScore, false); jsonObject.AddStringValues(DbsnpTag, DbSnpIds); jsonObject.AddIntValue(EndTag, ReferenceEnd); jsonObject.AddStringValue(GlobalMinorAlleleTag, GlobalMinorAllele); jsonObject.AddStringValue(GmafTag, GlobalMinorAlleleFrequency, false); jsonObject.AddBoolValue(IsReferenceMinorAlleleTag, true, IsReferenceMinor, "true"); jsonObject.AddStringValue(VariantTypeTag, VariantType); jsonObject.AddStringValue(VidTag, VariantId); // regulatory regions if (RegulatoryRegions.Count > 0) { jsonObject.AddObjectValues(RegulatoryRegionsTag, RegulatoryRegions); } // ClinVar & COSMIC if (ClinVarEntries.Count > 0) { jsonObject.AddObjectValues(ClinVarTag, ClinVarEntries); } if (CosmicEntries.Count > 0) { jsonObject.AddObjectValues(CosmicTag, CosmicEntries); } // Custom annotations if (CustomItems.Count > 0) { AddCustomeItems(jsonObject); } // Custom Intervals // if (CustomIntervals.Count > 0) jsonObject.AddObjectValues(CustomIntervals[0].Type, CustomIntervals); if (CustomIntervals.Count > 0) { AddCustomeIntervals(jsonObject); } // ================= // Overlapping Genes // ================= if (OverlappingGenes.Count > 0) { jsonObject.AddStringValues(OverlappingGenesTag, OverlappingGenes.ToArray()); } // ================= // Overlapping Transcripts // ================= if (SvOverlappingTranscripts.Any()) { jsonObject.AddObjectValues(OverlappingTranscriptsTag, SvOverlappingTranscripts); } // ========== // transcript // ========== var hasRefSeq = RefSeqTranscripts.Any(); var hasEnsembl = EnsemblTranscripts.Any(); if (hasRefSeq || hasEnsembl) { jsonObject.OpenObject(TranscriptsTag); jsonObject.Reset(); if (hasRefSeq) { jsonObject.AddStringValues(RefseqTag, RefSeqTranscripts.Select(t => t.ToString()), false); } if (hasEnsembl) { jsonObject.AddStringValues(EnsemblTag, EnsemblTranscripts.Select(t => t.ToString()), false); } jsonObject.CloseObject(); } // ======= // allelic // ======= jsonObject.Reset(true); jsonObject.AddStringValue(OneKgAllTag, AlleleFrequencyAll, false); jsonObject.AddStringValue(OneKgAfrTag, AlleleFrequencyAfrican, false); jsonObject.AddStringValue(OneKgAmrTag, AlleleFrequencyAdMixedAmerican, false); jsonObject.AddStringValue(OneKgEasTag, AlleleFrequencyEastAsian, false); jsonObject.AddStringValue(OneKgEurTag, AlleleFrequencyEuropean, false); jsonObject.AddStringValue(OneKgSasTag, AlleleFrequencySouthAsian, false); jsonObject.AddStringValue(OneKgAllAnTag, OneKgAlleleNumberAll, false); jsonObject.AddStringValue(OneKgAfrAnTag, OneKgAlleleNumberAfrican, false); jsonObject.AddStringValue(OneKgAmrAnTag, OneKgAlleleNumberAmerican, false); jsonObject.AddStringValue(OneKgEasAnTag, OneKgAlleleNumberEastAsian, false); jsonObject.AddStringValue(OneKgEurAnTag, OneKgAlleleNumberEuropean, false); jsonObject.AddStringValue(OneKgSasAnTag, OneKgAlleleNumberSouthAsian, false); jsonObject.AddStringValue(OneKgAllAcTag, OneKgAlleleCountAll, false); jsonObject.AddStringValue(OneKgAfrAcTag, OneKgAlleleCountAfrican, false); jsonObject.AddStringValue(OneKgAmrAcTag, OneKgAlleleCountAmerican, false); jsonObject.AddStringValue(OneKgEasAcTag, OneKgAlleleCountEastAsian, false); jsonObject.AddStringValue(OneKgEurAcTag, OneKgAlleleCountEuropean, false); jsonObject.AddStringValue(OneKgSasAcTag, OneKgAlleleCountSouthAsian, false); jsonObject.AddStringValue(EvsCoverageTag, EvsCoverage, false); jsonObject.AddStringValue(EvsSamplesTag, EvsSamples, false); jsonObject.AddStringValue(EvsAllTag, EvsAlleleFrequencyAll, false); jsonObject.AddStringValue(EvsAfrTag, EvsAlleleFrequencyAfricanAmerican, false); jsonObject.AddStringValue(EvsEurTag, EvsAlleleFrequencyEuropeanAmerican, false); jsonObject.AddStringValue(ExacCoverageTag, ExacCoverage, false); jsonObject.AddStringValue(ExacAllTag, ExacAlleleFrequencyAll, false); jsonObject.AddStringValue(ExacAfrTag, ExacAlleleFrequencyAfrican, false); jsonObject.AddStringValue(ExacAmrTag, ExacAlleleFrequencyAmerican, false); jsonObject.AddStringValue(ExacEasTag, ExacAlleleFrequencyEastAsian, false); jsonObject.AddStringValue(ExacFinTag, ExacAlleleFrequencyFinish, false); jsonObject.AddStringValue(ExacNfeTag, ExacAlleleFrequencyNonFinish, false); jsonObject.AddStringValue(ExacOthTag, ExacAlleleFrequencyOther, false); jsonObject.AddStringValue(ExacSasTag, ExacAlleleFrequencySouthAsian, false); jsonObject.AddStringValue(ExacAllAnTag, ExacAlleleNumberAll, false); jsonObject.AddStringValue(ExacAfrAnTag, ExacAlleleNumberAfrican, false); jsonObject.AddStringValue(ExacAmrAnTag, ExacAlleleNumberAmerican, false); jsonObject.AddStringValue(ExacEasAnTag, ExacAlleleNumberEastAsian, false); jsonObject.AddStringValue(ExacFinAnTag, ExacAlleleNumberFinish, false); jsonObject.AddStringValue(ExacNfeAnTag, ExacAlleleNumberNonFinish, false); jsonObject.AddStringValue(ExacOthAnTag, ExacAlleleNumberOther, false); jsonObject.AddStringValue(ExacSasAnTag, ExacAlleleNumberSouthAsian, false); jsonObject.AddStringValue(ExacAllAcTag, ExacAlleleCountAll, false); jsonObject.AddStringValue(ExacAfrAcTag, ExacAlleleCountAfrican, false); jsonObject.AddStringValue(ExacAmrAcTag, ExacAlleleCountAmerican, false); jsonObject.AddStringValue(ExacEasAcTag, ExacAlleleCountEastAsian, false); jsonObject.AddStringValue(ExacFinAcTag, ExacAlleleCountFinish, false); jsonObject.AddStringValue(ExacNfeAcTag, ExacAlleleCountNonFinish, false); jsonObject.AddStringValue(ExacOthAcTag, ExacAlleleCountOther, false); jsonObject.AddStringValue(ExacSasAcTag, ExacAlleleCountSouthAsian, false); sb.Append(JsonObject.CloseBrace); return(sb.ToString()); }