示例#1
0
        /// <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());
        }
示例#2
0
        /// <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();
        }