/// <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()); }
/// <summary> /// clears the data structure /// </summary> public void Clear() { AncestralAllele = null; AltAllele = null; ReferenceBegin = null; ReferenceName = null; DbSnpIds = null; ReferenceEnd = null; EvsCoverage = null; EvsSamples = null; ExacCoverage = null; GlobalMinorAllele = null; RefAllele = null; IsReferenceMinor = false; IsIntergenic = false; IsReference = false; IsReferenceNoCall = false; GlobalMinorAlleleFrequency = null; VariantId = null; VariantType = null; PhylopScore = null; AlleleFrequencyAdMixedAmerican = null; AlleleFrequencyAfrican = null; AlleleFrequencyAll = null; AlleleFrequencyEastAsian = null; AlleleFrequencyEuropean = null; AlleleFrequencySouthAsian = null; EvsAlleleFrequencyAfricanAmerican = null; EvsAlleleFrequencyEuropeanAmerican = null; EvsAlleleFrequencyAll = null; ExacAlleleFrequencyAll = null; ExacAlleleFrequencyAfrican = null; ExacAlleleFrequencyAmerican = null; ExacAlleleFrequencyEastAsian = null; ExacAlleleFrequencyFinish = null; ExacAlleleFrequencyNonFinish = null; ExacAlleleFrequencyOther = null; ExacAlleleFrequencySouthAsian = null; ExacAlleleNumberAfrican = null; ExacAlleleNumberAmerican = null; ExacAlleleNumberAll = null; ExacAlleleNumberEastAsian = null; ExacAlleleNumberFinish = null; ExacAlleleNumberNonFinish = null; ExacAlleleNumberOther = null; ExacAlleleNumberSouthAsian = null; ExacAlleleCountAfrican = null; ExacAlleleCountAmerican = null; ExacAlleleCountAll = null; ExacAlleleCountEastAsian = null; ExacAlleleCountFinish = null; ExacAlleleCountNonFinish = null; ExacAlleleCountOther = null; ExacAlleleCountSouthAsian = null; OneKgAlleleNumberAfrican = null; OneKgAlleleNumberAmerican = null; OneKgAlleleNumberAll = null; OneKgAlleleNumberEastAsian = null; OneKgAlleleNumberEuropean = null; OneKgAlleleNumberSouthAsian = null; OneKgAlleleCountAfrican = null; OneKgAlleleCountAmerican = null; OneKgAlleleCountAll = null; OneKgAlleleCountEastAsian = null; OneKgAlleleCountEuropean = null; OneKgAlleleCountSouthAsian = null; RefSeqTranscripts.Clear(); EnsemblTranscripts.Clear(); CosmicEntries.Clear(); ClinVarEntries.Clear(); RegulatoryRegions.Clear(); CustomItems.Clear(); CustomIntervals.Clear(); OverlappingGenes.Clear(); SvOverlappingTranscripts.Clear(); }