diff --git a/backend/protos/seqvars/protos/output.proto b/backend/protos/seqvars/protos/output.proto index 449abd7a4..bc5cdd265 100644 --- a/backend/protos/seqvars/protos/output.proto +++ b/backend/protos/seqvars/protos/output.proto @@ -156,6 +156,30 @@ message GeneIdentity { string gene_symbol = 2; } +// Transcript type. +enum TranscriptType { + // Unknown transcript type. + TRANSCRIPT_TYPE_UNSPECIFIED = 0; + // Coding transcript. + TRANSCRIPT_TYPE_CODING = 1; + // Non-coding transcript. + TRANSCRIPT_TYPE_NON_CODING = 2; +} + +// Location where the variant falls in relation to a transcript. +enum VariantLocation { + // Unspecified location. + VARIANT_LOCATION_UNSPECIFIED = 0; + // Upstream of gene. + VARIANT_LOCATION_UPSTREAM = 1; + // Exonic. + VARIANT_LOCATION_EXON = 2; + // Intronic. + VARIANT_LOCATION_INTRON = 3; + // Downstream of the gene. + VARIANT_LOCATION_DOWNSTREAM = 4; +} + /// Gene-related consequences of a variant. message GeneRelatedConsequences { // HGVS. {c,n} code of variant. @@ -164,6 +188,16 @@ message GeneRelatedConsequences { optional string hgvs_p = 2; // Predicted variant consequences. repeated seqvars.pbs.query.Consequence consequences = 3; + // Transcript accession without version. + optional string tx_accession = 4; + // Transcript version. + optional int32 tx_version = 5; + // Whether exon or intron is hit. + VariantLocation location = 6; + // Exon/intron number (1-based). + optional int32 rank_ord = 7; + // Exon/intron total count. + optional int32 rank_total = 8; } // Enumerations with modes of inheritance from HPO. diff --git a/backend/seqvars/factory_defaults.py b/backend/seqvars/factory_defaults.py index 92226193d..042a0aeb9 100644 --- a/backend/seqvars/factory_defaults.py +++ b/backend/seqvars/factory_defaults.py @@ -830,6 +830,41 @@ def create_seqvarsquerypresetsclinvar(faker: Faker) -> list[SeqvarsQueryPresetsC name="payload.variant_annotation.gene.consequences.hgvs_p", description="HGVS description at protein level", ), + SeqvarsColumnConfigPydantic( + label="Transcript Accession", + name="payload.variant_annotation.gene.consequences.tx_accession", + description="Transcript accession without version", + ), + SeqvarsColumnConfigPydantic( + label="Transcript Version", + name="payload.variant_annotation.gene.consequences.tx_version", + description="Transcript version", + ), + SeqvarsColumnConfigPydantic( + label="Transcript", + name="__tx_accession_version__", + description="Transcript accession with version", + ), + SeqvarsColumnConfigPydantic( + label="Variant Location", + name="payload.variant_annotation.gene.consequences.location", + description="Variant location with respect to gene", + ), + SeqvarsColumnConfigPydantic( + label="Variant Location Rank No", + name="payload.variant_annotation.gene.consequences.rank_ord", + description="Number of exon/intron that variant is in", + ), + SeqvarsColumnConfigPydantic( + label="Variant Location Rank Total", + name="payload.variant_annotation.gene.consequences.rank_total", + description="Total number of exons/introns in transcript", + ), + SeqvarsColumnConfigPydantic( + label="Variant Location Rank No/Total", + name="__rank__", + description="Rank of exon/intron and total", + ), SeqvarsColumnConfigPydantic( label="ClinGen HI", name="__clingen_hi__", diff --git a/backend/seqvars/models/base.py b/backend/seqvars/models/base.py index 9c1caef71..3882b791f 100644 --- a/backend/seqvars/models/base.py +++ b/backend/seqvars/models/base.py @@ -2047,6 +2047,19 @@ class GeneIdentityPydantic(pydantic.BaseModel): gene_symbol: str +class VariantLocationChoice(str, Enum): + """Enumeration for the variant location.""" + + #: Upstream of gene. + UPSTREAM = "upstream" + #: Exonic. + EXON = "exon" + #: Intronic. + INTRON = "intron" + #: Downstream of gene. + DOWNSTREAM = "downstream" + + class GeneRelatedConsequencesPydantic(pydantic.BaseModel): """Store gene-related consequences.""" @@ -2056,6 +2069,16 @@ class GeneRelatedConsequencesPydantic(pydantic.BaseModel): hgvs_p: typing.Optional[str] #: Predicted variant consequences. consequences: list[SeqvarsVariantConsequenceChoice] + # Transcript accession without version. + tx_accession: typing.Optional[str] + # Transcript version. + tx_version: typing.Optional[int] + # Whether exon or intron is hit. + location: VariantLocationChoice + # Exon/intron number (1-based). + rank_ord: typing.Optional[int] + # Exon/intron total count. + rank_total: typing.Optional[int] class SeqvarsModeOfInheritance(str, Enum): diff --git a/backend/seqvars/models/protobufs.py b/backend/seqvars/models/protobufs.py index e958e4831..01ff8a947 100644 --- a/backend/seqvars/models/protobufs.py +++ b/backend/seqvars/models/protobufs.py @@ -66,6 +66,7 @@ SeqvarsVariantTypeChoice, SeqvarsVcfVariantPydantic, ShetConstraintsPydantic, + VariantLocationChoice, ) from seqvars.protos.output_pb2 import ( AggregateGermlineReviewStatus, @@ -95,6 +96,7 @@ ScoreAnnotations, ShetConstraints, VariantAnnotation, + VariantLocation, VariantRelatedAnnotation, VariantScoreColumn, VariantScoreColumnType, @@ -761,6 +763,20 @@ def _gene_identity_from_protobuf(identity: GeneIdentity) -> GeneIdentityPydantic ) +VARIANT_LOCATION_MAPPING: dict[VariantLocation.ValueType : VariantLocationChoice] = { + VariantLocation.VARIANT_LOCATION_UPSTREAM: VariantLocationChoice.UPSTREAM, + VariantLocation.VARIANT_LOCATION_EXON: VariantLocationChoice.EXON, + VariantLocation.VARIANT_LOCATION_INTRON: VariantLocationChoice.INTRON, + VariantLocation.VARIANT_LOCATION_DOWNSTREAM: VariantLocationChoice.DOWNSTREAM, +} + + +def _location_from_protobuf( + location: VariantLocation.ValueType, +) -> VariantLocationChoice: + return VARIANT_LOCATION_MAPPING[location] + + def _consequences_from_protobuf( consequences: GeneRelatedConsequences, ) -> GeneRelatedConsequencesPydantic: @@ -771,6 +787,11 @@ def _consequences_from_protobuf( _seqvars_variant_consequence_choice_from_protobuf(csq) for csq in consequences.consequences ], + tx_accession=consequences.tx_accession if consequences.HasField("tx_accession") else None, + tx_version=consequences.tx_version if consequences.HasField("tx_version") else None, + location=_location_from_protobuf(consequences.location), + rank_ord=consequences.rank_ord if consequences.HasField("rank_ord") else None, + rank_total=consequences.rank_total if consequences.HasField("rank_total") else None, ) diff --git a/backend/seqvars/protos/output_pb2.py b/backend/seqvars/protos/output_pb2.py index 55cec74c5..c7df4fe71 100644 --- a/backend/seqvars/protos/output_pb2.py +++ b/backend/seqvars/protos/output_pb2.py @@ -18,7 +18,7 @@ from seqvars.protos import query_pb2 as seqvars_dot_protos_dot_query__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x1bseqvars/protos/output.proto\x12\x12seqvars.pbs.output\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1aseqvars/protos/query.proto"\xaa\x03\n\x0cOutputHeader\x12\x39\n\x0egenome_release\x18\x01 \x01(\x0e\x32!.seqvars.pbs.output.GenomeRelease\x12\x32\n\x08versions\x18\x02 \x03(\x0b\x32 .seqvars.pbs.output.VersionEntry\x12\x30\n\x05query\x18\x03 \x01(\x0b\x32\x1c.seqvars.pbs.query.CaseQueryH\x00\x88\x01\x01\x12\x11\n\tcase_uuid\x18\x04 \x01(\t\x12\x39\n\tresources\x18\x05 \x01(\x0b\x32!.seqvars.pbs.output.ResourcesUsedH\x01\x88\x01\x01\x12=\n\nstatistics\x18\x06 \x01(\x0b\x32$.seqvars.pbs.output.OutputStatisticsH\x02\x88\x01\x01\x12\x45\n\x15variant_score_columns\x18\x07 \x03(\x0b\x32&.seqvars.pbs.output.VariantScoreColumnB\x08\n\x06_queryB\x0c\n\n_resourcesB\r\n\x0b_statistics"\x80\x01\n\x12VariantScoreColumn\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x38\n\x04type\x18\x04 \x01(\x0e\x32*.seqvars.pbs.output.VariantScoreColumnType"-\n\x0cVersionEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t"\xa8\x01\n\rResourcesUsed\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x13\n\x0bmemory_used\x18\x03 \x01(\x04\x42\r\n\x0b_start_timeB\x0b\n\t_end_time"\x83\x01\n\x10OutputStatistics\x12\x13\n\x0b\x63ount_total\x18\x01 \x01(\x04\x12\x14\n\x0c\x63ount_passed\x18\x02 \x01(\x04\x12\x44\n\x16passed_by_consequences\x18\x03 \x03(\x0b\x32$.seqvars.pbs.output.ConsequenceCount"V\n\x10\x43onsequenceCount\x12\x33\n\x0b\x63onsequence\x18\x01 \x01(\x0e\x32\x1e.seqvars.pbs.query.Consequence\x12\r\n\x05\x63ount\x18\x02 \x01(\r"\xd8\x01\n\x0cOutputRecord\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x11\n\tcase_uuid\x18\x02 \x01(\t\x12\x38\n\x0bvcf_variant\x18\x03 \x01(\x0b\x32\x1e.seqvars.pbs.output.VcfVariantH\x00\x88\x01\x01\x12\x46\n\x12variant_annotation\x18\x04 \x01(\x0b\x32%.seqvars.pbs.output.VariantAnnotationH\x01\x88\x01\x01\x42\x0e\n\x0c_vcf_variantB\x15\n\x13_variant_annotation"\x9d\x01\n\nVcfVariant\x12\x39\n\x0egenome_release\x18\x01 \x01(\x0e\x32!.seqvars.pbs.output.GenomeRelease\x12\r\n\x05\x63hrom\x18\x02 \x01(\t\x12\x10\n\x08\x63hrom_no\x18\x03 \x01(\x05\x12\x0b\n\x03pos\x18\x04 \x01(\x05\x12\x12\n\nref_allele\x18\x05 \x01(\t\x12\x12\n\nalt_allele\x18\x06 \x01(\t"\xf1\x01\n\x11VariantAnnotation\x12<\n\x04gene\x18\x01 \x01(\x0b\x32).seqvars.pbs.output.GeneRelatedAnnotationH\x00\x88\x01\x01\x12\x42\n\x07variant\x18\x02 \x01(\x0b\x32,.seqvars.pbs.output.VariantRelatedAnnotationH\x01\x88\x01\x01\x12<\n\x04\x63\x61ll\x18\x03 \x01(\x0b\x32).seqvars.pbs.output.CallRelatedAnnotationH\x02\x88\x01\x01\x42\x07\n\x05_geneB\n\n\x08_variantB\x07\n\x05_call"\xdf\x02\n\x15GeneRelatedAnnotation\x12\x37\n\x08identity\x18\x01 \x01(\x0b\x32 .seqvars.pbs.output.GeneIdentityH\x00\x88\x01\x01\x12\x46\n\x0c\x63onsequences\x18\x02 \x01(\x0b\x32+.seqvars.pbs.output.GeneRelatedConsequencesH\x01\x88\x01\x01\x12\x42\n\nphenotypes\x18\x03 \x01(\x0b\x32).seqvars.pbs.output.GeneRelatedPhenotypesH\x02\x88\x01\x01\x12\x44\n\x0b\x63onstraints\x18\x04 \x01(\x0b\x32*.seqvars.pbs.output.GeneRelatedConstraintsH\x03\x88\x01\x01\x42\x0b\n\t_identityB\x0f\n\r_consequencesB\r\n\x0b_phenotypesB\x0e\n\x0c_constraints"4\n\x0cGeneIdentity\x12\x0f\n\x07hgnc_id\x18\x01 \x01(\t\x12\x13\n\x0bgene_symbol\x18\x02 \x01(\t"\x8f\x01\n\x17GeneRelatedConsequences\x12\x13\n\x06hgvs_t\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06hgvs_p\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x34\n\x0c\x63onsequences\x18\x03 \x03(\x0e\x32\x1e.seqvars.pbs.query.ConsequenceB\t\n\x07_hgvs_tB\t\n\x07_hgvs_p"\x89\x01\n\x15GeneRelatedPhenotypes\x12\x12\n\nis_acmg_sf\x18\x01 \x01(\x08\x12\x17\n\x0fis_disease_gene\x18\x02 \x01(\x08\x12\x43\n\x14mode_of_inheritances\x18\x03 \x03(\x0e\x32%.seqvars.pbs.output.ModeOfInheritance"\xfd\x02\n\x16GeneRelatedConstraints\x12:\n\x06gnomad\x18\x01 \x01(\x0b\x32%.seqvars.pbs.output.GnomadConstraintsH\x00\x88\x01\x01\x12>\n\x08\x64\x65\x63ipher\x18\x02 \x01(\x0b\x32\'.seqvars.pbs.output.DecipherConstraintsH\x01\x88\x01\x01\x12\x36\n\x04rcnv\x18\x03 \x01(\x0b\x32#.seqvars.pbs.output.RcnvConstraintsH\x02\x88\x01\x01\x12\x36\n\x04shet\x18\x04 \x01(\x0b\x32#.seqvars.pbs.output.ShetConstraintsH\x03\x88\x01\x01\x12\x41\n\x07\x63lingen\x18\x05 \x01(\x0b\x32+.seqvars.pbs.output.ClingenDosageAnnotationH\x04\x88\x01\x01\x42\t\n\x07_gnomadB\x0b\n\t_decipherB\x07\n\x05_rcnvB\x07\n\x05_shetB\n\n\x08_clingen"\xb6\x01\n\x11GnomadConstraints\x12\r\n\x05mis_z\x18\x01 \x01(\x02\x12\x0e\n\x06oe_lof\x18\x02 \x01(\x02\x12\x14\n\x0coe_lof_lower\x18\x03 \x01(\x02\x12\x14\n\x0coe_lof_upper\x18\x04 \x01(\x02\x12\x0e\n\x06oe_mis\x18\x05 \x01(\x02\x12\x14\n\x0coe_mis_lower\x18\x06 \x01(\x02\x12\x14\n\x0coe_mis_upper\x18\x07 \x01(\x02\x12\x0b\n\x03pli\x18\x08 \x01(\x02\x12\r\n\x05syn_z\x18\t \x01(\x02"5\n\x13\x44\x65\x63ipherConstraints\x12\x0c\n\x04p_hi\x18\x01 \x01(\x02\x12\x10\n\x08hi_index\x18\x02 \x01(\x02"4\n\x0fRcnvConstraints\x12\x0f\n\x07p_haplo\x18\x01 \x01(\x02\x12\x10\n\x08p_triplo\x18\x02 \x01(\x02" \n\x0fShetConstraints\x12\r\n\x05s_het\x18\x01 \x01(\x02"\x88\x01\n\x17\x43lingenDosageAnnotation\x12\x35\n\x05haplo\x18\x01 \x01(\x0e\x32&.seqvars.pbs.output.ClingenDosageScore\x12\x36\n\x06triplo\x18\x02 \x01(\x0e\x32&.seqvars.pbs.output.ClingenDosageScore"\xb1\x02\n\x18VariantRelatedAnnotation\x12-\n\x05\x64\x62ids\x18\x01 \x01(\x0b\x32\x19.seqvars.pbs.output.DbIdsH\x00\x88\x01\x01\x12?\n\tfrequency\x18\x02 \x01(\x0b\x32\'.seqvars.pbs.output.FrequencyAnnotationH\x01\x88\x01\x01\x12;\n\x07\x63linvar\x18\x03 \x01(\x0b\x32%.seqvars.pbs.output.ClinvarAnnotationH\x02\x88\x01\x01\x12\x39\n\x06scores\x18\x04 \x01(\x0b\x32$.seqvars.pbs.output.ScoreAnnotationsH\x03\x88\x01\x01\x42\x08\n\x06_dbidsB\x0c\n\n_frequencyB\n\n\x08_clinvarB\t\n\x07_scores"\xb3\x03\n\x13\x46requencyAnnotation\x12@\n\rgnomad_exomes\x18\x01 \x01(\x0b\x32$.seqvars.pbs.output.NuclearFrequencyH\x00\x88\x01\x01\x12\x41\n\x0egnomad_genomes\x18\x02 \x01(\x0b\x32$.seqvars.pbs.output.NuclearFrequencyH\x01\x88\x01\x01\x12K\n\x0cgnomad_mtdna\x18\x03 \x01(\x0b\x32\x30.seqvars.pbs.output.GnomadMitochondrialFrequencyH\x02\x88\x01\x01\x12>\n\thelixmtdb\x18\x04 \x01(\x0b\x32&.seqvars.pbs.output.HelixMtDbFrequencyH\x03\x88\x01\x01\x12:\n\x07inhouse\x18\x05 \x01(\x0b\x32$.seqvars.pbs.output.NuclearFrequencyH\x04\x88\x01\x01\x42\x10\n\x0e_gnomad_exomesB\x11\n\x0f_gnomad_genomesB\x0f\n\r_gnomad_mtdnaB\x0c\n\n_helixmtdbB\n\n\x08_inhouse"X\n\x10NuclearFrequency\x12\n\n\x02\x61n\x18\x01 \x01(\x05\x12\x0b\n\x03het\x18\x02 \x01(\x05\x12\x0e\n\x06homalt\x18\x03 \x01(\x05\x12\x0f\n\x07hemialt\x18\x04 \x01(\x05\x12\n\n\x02\x61\x66\x18\x05 \x01(\x02"S\n\x1cGnomadMitochondrialFrequency\x12\n\n\x02\x61n\x18\x01 \x01(\x05\x12\x0b\n\x03het\x18\x02 \x01(\x05\x12\x0e\n\x06homalt\x18\x03 \x01(\x05\x12\n\n\x02\x61\x66\x18\x04 \x01(\x02"I\n\x12HelixMtDbFrequency\x12\n\n\x02\x61n\x18\x01 \x01(\x05\x12\x0b\n\x03het\x18\x02 \x01(\x05\x12\x0e\n\x06homalt\x18\x03 \x01(\x05\x12\n\n\x02\x61\x66\x18\x04 \x01(\x02"+\n\x05\x44\x62Ids\x12\x15\n\x08\x64\x62snp_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_dbsnp_id"\xdd\x01\n\x11\x43linvarAnnotation\x12\x15\n\rvcv_accession\x18\x01 \x01(\t\x12)\n!germline_significance_description\x18\x02 \x01(\t\x12Q\n\x16germline_review_status\x18\x03 \x01(\x0e\x32\x31.seqvars.pbs.output.AggregateGermlineReviewStatus\x12\x33\n+effective_germline_significance_description\x18\x04 \x01(\t"C\n\x10ScoreAnnotations\x12/\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1e.seqvars.pbs.output.ScoreEntry"O\n\nScoreEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x88\x01\x01\x42\x08\n\x06_value"O\n\x15\x43\x61llRelatedAnnotation\x12\x36\n\ncall_infos\x18\x01 \x03(\x0b\x32".seqvars.pbs.output.SampleCallInfo"\xa4\x01\n\x0eSampleCallInfo\x12\x0e\n\x06sample\x18\x01 \x01(\t\x12\x15\n\x08genotype\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02\x64p\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x0f\n\x02\x61\x64\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x02gq\x18\x05 \x01(\x02H\x03\x88\x01\x01\x12\x0f\n\x02ps\x18\x06 \x01(\x05H\x04\x88\x01\x01\x42\x0b\n\t_genotypeB\x05\n\x03_dpB\x05\n\x03_adB\x05\n\x03_gqB\x05\n\x03_ps*\x8f\x01\n\x16VariantScoreColumnType\x12)\n%VARIANT_SCORE_COLUMN_TYPE_UNSPECIFIED\x10\x00\x12$\n VARIANT_SCORE_COLUMN_TYPE_NUMBER\x10\x01\x12$\n VARIANT_SCORE_COLUMN_TYPE_STRING\x10\x02*e\n\rGenomeRelease\x12\x1e\n\x1aGENOME_RELEASE_UNSPECIFIED\x10\x00\x12\x19\n\x15GENOME_RELEASE_GRCH37\x10\x01\x12\x19\n\x15GENOME_RELEASE_GRCH38\x10\x02*\xb1\x02\n\x11ModeOfInheritance\x12#\n\x1fMODE_OF_INHERITANCE_UNSPECIFIED\x10\x00\x12*\n&MODE_OF_INHERITANCE_AUTOSOMAL_DOMINANT\x10\x01\x12+\n\'MODE_OF_INHERITANCE_AUTOSOMAL_RECESSIVE\x10\x02\x12)\n%MODE_OF_INHERITANCE_X_LINKED_DOMINANT\x10\x03\x12*\n&MODE_OF_INHERITANCE_X_LINKED_RECESSIVE\x10\x04\x12 \n\x1cMODE_OF_INHERITANCE_Y_LINKED\x10\x05\x12%\n!MODE_OF_INHERITANCE_MITOCHONDRIAL\x10\x06*\xc5\x02\n\x12\x43lingenDosageScore\x12$\n CLINGEN_DOSAGE_SCORE_UNSPECIFIED\x10\x00\x12\x36\n2CLINGEN_DOSAGE_SCORE_SUFFICIENT_EVIDENCE_AVAILABLE\x10\x01\x12\x30\n,CLINGEN_DOSAGE_SCORE_SOME_EVIDENCE_AVAILABLE\x10\x02\x12(\n$CLINGEN_DOSAGE_SCORE_LITTLE_EVIDENCE\x10\x03\x12.\n*CLINGEN_DOSAGE_SCORE_NO_EVIDENCE_AVAILABLE\x10\x04\x12"\n\x1e\x43LINGEN_DOSAGE_SCORE_RECESSIVE\x10\x05\x12!\n\x1d\x43LINGEN_DOSAGE_SCORE_UNLIKELY\x10\x06*\xe4\x05\n\x1d\x41ggregateGermlineReviewStatus\x12\x30\n,AGGREGATE_GERMLINE_REVIEW_STATUS_UNSPECIFIED\x10\x00\x12?\n;AGGREGATE_GERMLINE_REVIEW_STATUS_NO_CLASSIFICATION_PROVIDED\x10\x01\x12\x43\n?AGGREGATE_GERMLINE_REVIEW_STATUS_NO_ASSERTION_CRITERIA_PROVIDED\x10\x02\x12G\nCAGGREGATE_GERMLINE_REVIEW_STATUS_CRITERIA_PROVIDED_SINGLE_SUBMITTER\x10\x03\x12W\nSAGGREGATE_GERMLINE_REVIEW_STATUS_CRITERIA_PROVIDED_MULTIPLE_SUBMITTERS_NO_CONFLICTS\x10\x04\x12R\nNAGGREGATE_GERMLINE_REVIEW_STATUS_CRITERIA_PROVIDED_CONFLICTING_CLASSIFICATIONS\x10\x05\x12=\n9AGGREGATE_GERMLINE_REVIEW_STATUS_REVIEWED_BY_EXPERT_PANEL\x10\x06\x12\x37\n3AGGREGATE_GERMLINE_REVIEW_STATUS_PRACTICE_GUIDELINE\x10\x07\x12N\nJAGGREGATE_GERMLINE_REVIEW_STATUS_NO_CLASSIFICATIONS_FROM_UNFLAGGED_RECORDS\x10\x08\x12M\nIAGGREGATE_GERMLINE_REVIEW_STATUS_NO_CLASSIFICATION_FOR_THE_SINGLE_VARIANT\x10\tb\x06proto3' + b'\n\x1bseqvars/protos/output.proto\x12\x12seqvars.pbs.output\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1aseqvars/protos/query.proto"\xaa\x03\n\x0cOutputHeader\x12\x39\n\x0egenome_release\x18\x01 \x01(\x0e\x32!.seqvars.pbs.output.GenomeRelease\x12\x32\n\x08versions\x18\x02 \x03(\x0b\x32 .seqvars.pbs.output.VersionEntry\x12\x30\n\x05query\x18\x03 \x01(\x0b\x32\x1c.seqvars.pbs.query.CaseQueryH\x00\x88\x01\x01\x12\x11\n\tcase_uuid\x18\x04 \x01(\t\x12\x39\n\tresources\x18\x05 \x01(\x0b\x32!.seqvars.pbs.output.ResourcesUsedH\x01\x88\x01\x01\x12=\n\nstatistics\x18\x06 \x01(\x0b\x32$.seqvars.pbs.output.OutputStatisticsH\x02\x88\x01\x01\x12\x45\n\x15variant_score_columns\x18\x07 \x03(\x0b\x32&.seqvars.pbs.output.VariantScoreColumnB\x08\n\x06_queryB\x0c\n\n_resourcesB\r\n\x0b_statistics"\x80\x01\n\x12VariantScoreColumn\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x38\n\x04type\x18\x04 \x01(\x0e\x32*.seqvars.pbs.output.VariantScoreColumnType"-\n\x0cVersionEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t"\xa8\x01\n\rResourcesUsed\x12\x33\n\nstart_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x13\n\x0bmemory_used\x18\x03 \x01(\x04\x42\r\n\x0b_start_timeB\x0b\n\t_end_time"\x83\x01\n\x10OutputStatistics\x12\x13\n\x0b\x63ount_total\x18\x01 \x01(\x04\x12\x14\n\x0c\x63ount_passed\x18\x02 \x01(\x04\x12\x44\n\x16passed_by_consequences\x18\x03 \x03(\x0b\x32$.seqvars.pbs.output.ConsequenceCount"V\n\x10\x43onsequenceCount\x12\x33\n\x0b\x63onsequence\x18\x01 \x01(\x0e\x32\x1e.seqvars.pbs.query.Consequence\x12\r\n\x05\x63ount\x18\x02 \x01(\r"\xd8\x01\n\x0cOutputRecord\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x11\n\tcase_uuid\x18\x02 \x01(\t\x12\x38\n\x0bvcf_variant\x18\x03 \x01(\x0b\x32\x1e.seqvars.pbs.output.VcfVariantH\x00\x88\x01\x01\x12\x46\n\x12variant_annotation\x18\x04 \x01(\x0b\x32%.seqvars.pbs.output.VariantAnnotationH\x01\x88\x01\x01\x42\x0e\n\x0c_vcf_variantB\x15\n\x13_variant_annotation"\x9d\x01\n\nVcfVariant\x12\x39\n\x0egenome_release\x18\x01 \x01(\x0e\x32!.seqvars.pbs.output.GenomeRelease\x12\r\n\x05\x63hrom\x18\x02 \x01(\t\x12\x10\n\x08\x63hrom_no\x18\x03 \x01(\x05\x12\x0b\n\x03pos\x18\x04 \x01(\x05\x12\x12\n\nref_allele\x18\x05 \x01(\t\x12\x12\n\nalt_allele\x18\x06 \x01(\t"\xf1\x01\n\x11VariantAnnotation\x12<\n\x04gene\x18\x01 \x01(\x0b\x32).seqvars.pbs.output.GeneRelatedAnnotationH\x00\x88\x01\x01\x12\x42\n\x07variant\x18\x02 \x01(\x0b\x32,.seqvars.pbs.output.VariantRelatedAnnotationH\x01\x88\x01\x01\x12<\n\x04\x63\x61ll\x18\x03 \x01(\x0b\x32).seqvars.pbs.output.CallRelatedAnnotationH\x02\x88\x01\x01\x42\x07\n\x05_geneB\n\n\x08_variantB\x07\n\x05_call"\xdf\x02\n\x15GeneRelatedAnnotation\x12\x37\n\x08identity\x18\x01 \x01(\x0b\x32 .seqvars.pbs.output.GeneIdentityH\x00\x88\x01\x01\x12\x46\n\x0c\x63onsequences\x18\x02 \x01(\x0b\x32+.seqvars.pbs.output.GeneRelatedConsequencesH\x01\x88\x01\x01\x12\x42\n\nphenotypes\x18\x03 \x01(\x0b\x32).seqvars.pbs.output.GeneRelatedPhenotypesH\x02\x88\x01\x01\x12\x44\n\x0b\x63onstraints\x18\x04 \x01(\x0b\x32*.seqvars.pbs.output.GeneRelatedConstraintsH\x03\x88\x01\x01\x42\x0b\n\t_identityB\x0f\n\r_consequencesB\r\n\x0b_phenotypesB\x0e\n\x0c_constraints"4\n\x0cGeneIdentity\x12\x0f\n\x07hgnc_id\x18\x01 \x01(\t\x12\x13\n\x0bgene_symbol\x18\x02 \x01(\t"\xe6\x02\n\x17GeneRelatedConsequences\x12\x13\n\x06hgvs_t\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06hgvs_p\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x34\n\x0c\x63onsequences\x18\x03 \x03(\x0e\x32\x1e.seqvars.pbs.query.Consequence\x12\x19\n\x0ctx_accession\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ntx_version\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12\x35\n\x08location\x18\x06 \x01(\x0e\x32#.seqvars.pbs.output.VariantLocation\x12\x15\n\x08rank_ord\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12\x17\n\nrank_total\x18\x08 \x01(\x05H\x05\x88\x01\x01\x42\t\n\x07_hgvs_tB\t\n\x07_hgvs_pB\x0f\n\r_tx_accessionB\r\n\x0b_tx_versionB\x0b\n\t_rank_ordB\r\n\x0b_rank_total"\x89\x01\n\x15GeneRelatedPhenotypes\x12\x12\n\nis_acmg_sf\x18\x01 \x01(\x08\x12\x17\n\x0fis_disease_gene\x18\x02 \x01(\x08\x12\x43\n\x14mode_of_inheritances\x18\x03 \x03(\x0e\x32%.seqvars.pbs.output.ModeOfInheritance"\xfd\x02\n\x16GeneRelatedConstraints\x12:\n\x06gnomad\x18\x01 \x01(\x0b\x32%.seqvars.pbs.output.GnomadConstraintsH\x00\x88\x01\x01\x12>\n\x08\x64\x65\x63ipher\x18\x02 \x01(\x0b\x32\'.seqvars.pbs.output.DecipherConstraintsH\x01\x88\x01\x01\x12\x36\n\x04rcnv\x18\x03 \x01(\x0b\x32#.seqvars.pbs.output.RcnvConstraintsH\x02\x88\x01\x01\x12\x36\n\x04shet\x18\x04 \x01(\x0b\x32#.seqvars.pbs.output.ShetConstraintsH\x03\x88\x01\x01\x12\x41\n\x07\x63lingen\x18\x05 \x01(\x0b\x32+.seqvars.pbs.output.ClingenDosageAnnotationH\x04\x88\x01\x01\x42\t\n\x07_gnomadB\x0b\n\t_decipherB\x07\n\x05_rcnvB\x07\n\x05_shetB\n\n\x08_clingen"\xb6\x01\n\x11GnomadConstraints\x12\r\n\x05mis_z\x18\x01 \x01(\x02\x12\x0e\n\x06oe_lof\x18\x02 \x01(\x02\x12\x14\n\x0coe_lof_lower\x18\x03 \x01(\x02\x12\x14\n\x0coe_lof_upper\x18\x04 \x01(\x02\x12\x0e\n\x06oe_mis\x18\x05 \x01(\x02\x12\x14\n\x0coe_mis_lower\x18\x06 \x01(\x02\x12\x14\n\x0coe_mis_upper\x18\x07 \x01(\x02\x12\x0b\n\x03pli\x18\x08 \x01(\x02\x12\r\n\x05syn_z\x18\t \x01(\x02"5\n\x13\x44\x65\x63ipherConstraints\x12\x0c\n\x04p_hi\x18\x01 \x01(\x02\x12\x10\n\x08hi_index\x18\x02 \x01(\x02"4\n\x0fRcnvConstraints\x12\x0f\n\x07p_haplo\x18\x01 \x01(\x02\x12\x10\n\x08p_triplo\x18\x02 \x01(\x02" \n\x0fShetConstraints\x12\r\n\x05s_het\x18\x01 \x01(\x02"\x88\x01\n\x17\x43lingenDosageAnnotation\x12\x35\n\x05haplo\x18\x01 \x01(\x0e\x32&.seqvars.pbs.output.ClingenDosageScore\x12\x36\n\x06triplo\x18\x02 \x01(\x0e\x32&.seqvars.pbs.output.ClingenDosageScore"\xb1\x02\n\x18VariantRelatedAnnotation\x12-\n\x05\x64\x62ids\x18\x01 \x01(\x0b\x32\x19.seqvars.pbs.output.DbIdsH\x00\x88\x01\x01\x12?\n\tfrequency\x18\x02 \x01(\x0b\x32\'.seqvars.pbs.output.FrequencyAnnotationH\x01\x88\x01\x01\x12;\n\x07\x63linvar\x18\x03 \x01(\x0b\x32%.seqvars.pbs.output.ClinvarAnnotationH\x02\x88\x01\x01\x12\x39\n\x06scores\x18\x04 \x01(\x0b\x32$.seqvars.pbs.output.ScoreAnnotationsH\x03\x88\x01\x01\x42\x08\n\x06_dbidsB\x0c\n\n_frequencyB\n\n\x08_clinvarB\t\n\x07_scores"\xb3\x03\n\x13\x46requencyAnnotation\x12@\n\rgnomad_exomes\x18\x01 \x01(\x0b\x32$.seqvars.pbs.output.NuclearFrequencyH\x00\x88\x01\x01\x12\x41\n\x0egnomad_genomes\x18\x02 \x01(\x0b\x32$.seqvars.pbs.output.NuclearFrequencyH\x01\x88\x01\x01\x12K\n\x0cgnomad_mtdna\x18\x03 \x01(\x0b\x32\x30.seqvars.pbs.output.GnomadMitochondrialFrequencyH\x02\x88\x01\x01\x12>\n\thelixmtdb\x18\x04 \x01(\x0b\x32&.seqvars.pbs.output.HelixMtDbFrequencyH\x03\x88\x01\x01\x12:\n\x07inhouse\x18\x05 \x01(\x0b\x32$.seqvars.pbs.output.NuclearFrequencyH\x04\x88\x01\x01\x42\x10\n\x0e_gnomad_exomesB\x11\n\x0f_gnomad_genomesB\x0f\n\r_gnomad_mtdnaB\x0c\n\n_helixmtdbB\n\n\x08_inhouse"X\n\x10NuclearFrequency\x12\n\n\x02\x61n\x18\x01 \x01(\x05\x12\x0b\n\x03het\x18\x02 \x01(\x05\x12\x0e\n\x06homalt\x18\x03 \x01(\x05\x12\x0f\n\x07hemialt\x18\x04 \x01(\x05\x12\n\n\x02\x61\x66\x18\x05 \x01(\x02"S\n\x1cGnomadMitochondrialFrequency\x12\n\n\x02\x61n\x18\x01 \x01(\x05\x12\x0b\n\x03het\x18\x02 \x01(\x05\x12\x0e\n\x06homalt\x18\x03 \x01(\x05\x12\n\n\x02\x61\x66\x18\x04 \x01(\x02"I\n\x12HelixMtDbFrequency\x12\n\n\x02\x61n\x18\x01 \x01(\x05\x12\x0b\n\x03het\x18\x02 \x01(\x05\x12\x0e\n\x06homalt\x18\x03 \x01(\x05\x12\n\n\x02\x61\x66\x18\x04 \x01(\x02"+\n\x05\x44\x62Ids\x12\x15\n\x08\x64\x62snp_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_dbsnp_id"\xdd\x01\n\x11\x43linvarAnnotation\x12\x15\n\rvcv_accession\x18\x01 \x01(\t\x12)\n!germline_significance_description\x18\x02 \x01(\t\x12Q\n\x16germline_review_status\x18\x03 \x01(\x0e\x32\x31.seqvars.pbs.output.AggregateGermlineReviewStatus\x12\x33\n+effective_germline_significance_description\x18\x04 \x01(\t"C\n\x10ScoreAnnotations\x12/\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x1e.seqvars.pbs.output.ScoreEntry"O\n\nScoreEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12*\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueH\x00\x88\x01\x01\x42\x08\n\x06_value"O\n\x15\x43\x61llRelatedAnnotation\x12\x36\n\ncall_infos\x18\x01 \x03(\x0b\x32".seqvars.pbs.output.SampleCallInfo"\xa4\x01\n\x0eSampleCallInfo\x12\x0e\n\x06sample\x18\x01 \x01(\t\x12\x15\n\x08genotype\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0f\n\x02\x64p\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x0f\n\x02\x61\x64\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x0f\n\x02gq\x18\x05 \x01(\x02H\x03\x88\x01\x01\x12\x0f\n\x02ps\x18\x06 \x01(\x05H\x04\x88\x01\x01\x42\x0b\n\t_genotypeB\x05\n\x03_dpB\x05\n\x03_adB\x05\n\x03_gqB\x05\n\x03_ps*\x8f\x01\n\x16VariantScoreColumnType\x12)\n%VARIANT_SCORE_COLUMN_TYPE_UNSPECIFIED\x10\x00\x12$\n VARIANT_SCORE_COLUMN_TYPE_NUMBER\x10\x01\x12$\n VARIANT_SCORE_COLUMN_TYPE_STRING\x10\x02*e\n\rGenomeRelease\x12\x1e\n\x1aGENOME_RELEASE_UNSPECIFIED\x10\x00\x12\x19\n\x15GENOME_RELEASE_GRCH37\x10\x01\x12\x19\n\x15GENOME_RELEASE_GRCH38\x10\x02*m\n\x0eTranscriptType\x12\x1f\n\x1bTRANSCRIPT_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16TRANSCRIPT_TYPE_CODING\x10\x01\x12\x1e\n\x1aTRANSCRIPT_TYPE_NON_CODING\x10\x02*\xab\x01\n\x0fVariantLocation\x12 \n\x1cVARIANT_LOCATION_UNSPECIFIED\x10\x00\x12\x1d\n\x19VARIANT_LOCATION_UPSTREAM\x10\x01\x12\x19\n\x15VARIANT_LOCATION_EXON\x10\x02\x12\x1b\n\x17VARIANT_LOCATION_INTRON\x10\x03\x12\x1f\n\x1bVARIANT_LOCATION_DOWNSTREAM\x10\x04*\xb1\x02\n\x11ModeOfInheritance\x12#\n\x1fMODE_OF_INHERITANCE_UNSPECIFIED\x10\x00\x12*\n&MODE_OF_INHERITANCE_AUTOSOMAL_DOMINANT\x10\x01\x12+\n\'MODE_OF_INHERITANCE_AUTOSOMAL_RECESSIVE\x10\x02\x12)\n%MODE_OF_INHERITANCE_X_LINKED_DOMINANT\x10\x03\x12*\n&MODE_OF_INHERITANCE_X_LINKED_RECESSIVE\x10\x04\x12 \n\x1cMODE_OF_INHERITANCE_Y_LINKED\x10\x05\x12%\n!MODE_OF_INHERITANCE_MITOCHONDRIAL\x10\x06*\xc5\x02\n\x12\x43lingenDosageScore\x12$\n CLINGEN_DOSAGE_SCORE_UNSPECIFIED\x10\x00\x12\x36\n2CLINGEN_DOSAGE_SCORE_SUFFICIENT_EVIDENCE_AVAILABLE\x10\x01\x12\x30\n,CLINGEN_DOSAGE_SCORE_SOME_EVIDENCE_AVAILABLE\x10\x02\x12(\n$CLINGEN_DOSAGE_SCORE_LITTLE_EVIDENCE\x10\x03\x12.\n*CLINGEN_DOSAGE_SCORE_NO_EVIDENCE_AVAILABLE\x10\x04\x12"\n\x1e\x43LINGEN_DOSAGE_SCORE_RECESSIVE\x10\x05\x12!\n\x1d\x43LINGEN_DOSAGE_SCORE_UNLIKELY\x10\x06*\xe4\x05\n\x1d\x41ggregateGermlineReviewStatus\x12\x30\n,AGGREGATE_GERMLINE_REVIEW_STATUS_UNSPECIFIED\x10\x00\x12?\n;AGGREGATE_GERMLINE_REVIEW_STATUS_NO_CLASSIFICATION_PROVIDED\x10\x01\x12\x43\n?AGGREGATE_GERMLINE_REVIEW_STATUS_NO_ASSERTION_CRITERIA_PROVIDED\x10\x02\x12G\nCAGGREGATE_GERMLINE_REVIEW_STATUS_CRITERIA_PROVIDED_SINGLE_SUBMITTER\x10\x03\x12W\nSAGGREGATE_GERMLINE_REVIEW_STATUS_CRITERIA_PROVIDED_MULTIPLE_SUBMITTERS_NO_CONFLICTS\x10\x04\x12R\nNAGGREGATE_GERMLINE_REVIEW_STATUS_CRITERIA_PROVIDED_CONFLICTING_CLASSIFICATIONS\x10\x05\x12=\n9AGGREGATE_GERMLINE_REVIEW_STATUS_REVIEWED_BY_EXPERT_PANEL\x10\x06\x12\x37\n3AGGREGATE_GERMLINE_REVIEW_STATUS_PRACTICE_GUIDELINE\x10\x07\x12N\nJAGGREGATE_GERMLINE_REVIEW_STATUS_NO_CLASSIFICATIONS_FROM_UNFLAGGED_RECORDS\x10\x08\x12M\nIAGGREGATE_GERMLINE_REVIEW_STATUS_NO_CLASSIFICATION_FOR_THE_SINGLE_VARIANT\x10\tb\x06proto3' ) _globals = globals() @@ -26,16 +26,20 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "seqvars.protos.output_pb2", _globals) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - _globals["_VARIANTSCORECOLUMNTYPE"]._serialized_start = 4974 - _globals["_VARIANTSCORECOLUMNTYPE"]._serialized_end = 5117 - _globals["_GENOMERELEASE"]._serialized_start = 5119 - _globals["_GENOMERELEASE"]._serialized_end = 5220 - _globals["_MODEOFINHERITANCE"]._serialized_start = 5223 - _globals["_MODEOFINHERITANCE"]._serialized_end = 5528 - _globals["_CLINGENDOSAGESCORE"]._serialized_start = 5531 - _globals["_CLINGENDOSAGESCORE"]._serialized_end = 5856 - _globals["_AGGREGATEGERMLINEREVIEWSTATUS"]._serialized_start = 5859 - _globals["_AGGREGATEGERMLINEREVIEWSTATUS"]._serialized_end = 6599 + _globals["_VARIANTSCORECOLUMNTYPE"]._serialized_start = 5189 + _globals["_VARIANTSCORECOLUMNTYPE"]._serialized_end = 5332 + _globals["_GENOMERELEASE"]._serialized_start = 5334 + _globals["_GENOMERELEASE"]._serialized_end = 5435 + _globals["_TRANSCRIPTTYPE"]._serialized_start = 5437 + _globals["_TRANSCRIPTTYPE"]._serialized_end = 5546 + _globals["_VARIANTLOCATION"]._serialized_start = 5549 + _globals["_VARIANTLOCATION"]._serialized_end = 5720 + _globals["_MODEOFINHERITANCE"]._serialized_start = 5723 + _globals["_MODEOFINHERITANCE"]._serialized_end = 6028 + _globals["_CLINGENDOSAGESCORE"]._serialized_start = 6031 + _globals["_CLINGENDOSAGESCORE"]._serialized_end = 6356 + _globals["_AGGREGATEGERMLINEREVIEWSTATUS"]._serialized_start = 6359 + _globals["_AGGREGATEGERMLINEREVIEWSTATUS"]._serialized_end = 7099 _globals["_OUTPUTHEADER"]._serialized_start = 143 _globals["_OUTPUTHEADER"]._serialized_end = 569 _globals["_VARIANTSCORECOLUMN"]._serialized_start = 572 @@ -59,41 +63,41 @@ _globals["_GENEIDENTITY"]._serialized_start = 2119 _globals["_GENEIDENTITY"]._serialized_end = 2171 _globals["_GENERELATEDCONSEQUENCES"]._serialized_start = 2174 - _globals["_GENERELATEDCONSEQUENCES"]._serialized_end = 2317 - _globals["_GENERELATEDPHENOTYPES"]._serialized_start = 2320 - _globals["_GENERELATEDPHENOTYPES"]._serialized_end = 2457 - _globals["_GENERELATEDCONSTRAINTS"]._serialized_start = 2460 - _globals["_GENERELATEDCONSTRAINTS"]._serialized_end = 2841 - _globals["_GNOMADCONSTRAINTS"]._serialized_start = 2844 - _globals["_GNOMADCONSTRAINTS"]._serialized_end = 3026 - _globals["_DECIPHERCONSTRAINTS"]._serialized_start = 3028 - _globals["_DECIPHERCONSTRAINTS"]._serialized_end = 3081 - _globals["_RCNVCONSTRAINTS"]._serialized_start = 3083 - _globals["_RCNVCONSTRAINTS"]._serialized_end = 3135 - _globals["_SHETCONSTRAINTS"]._serialized_start = 3137 - _globals["_SHETCONSTRAINTS"]._serialized_end = 3169 - _globals["_CLINGENDOSAGEANNOTATION"]._serialized_start = 3172 - _globals["_CLINGENDOSAGEANNOTATION"]._serialized_end = 3308 - _globals["_VARIANTRELATEDANNOTATION"]._serialized_start = 3311 - _globals["_VARIANTRELATEDANNOTATION"]._serialized_end = 3616 - _globals["_FREQUENCYANNOTATION"]._serialized_start = 3619 - _globals["_FREQUENCYANNOTATION"]._serialized_end = 4054 - _globals["_NUCLEARFREQUENCY"]._serialized_start = 4056 - _globals["_NUCLEARFREQUENCY"]._serialized_end = 4144 - _globals["_GNOMADMITOCHONDRIALFREQUENCY"]._serialized_start = 4146 - _globals["_GNOMADMITOCHONDRIALFREQUENCY"]._serialized_end = 4229 - _globals["_HELIXMTDBFREQUENCY"]._serialized_start = 4231 - _globals["_HELIXMTDBFREQUENCY"]._serialized_end = 4304 - _globals["_DBIDS"]._serialized_start = 4306 - _globals["_DBIDS"]._serialized_end = 4349 - _globals["_CLINVARANNOTATION"]._serialized_start = 4352 - _globals["_CLINVARANNOTATION"]._serialized_end = 4573 - _globals["_SCOREANNOTATIONS"]._serialized_start = 4575 - _globals["_SCOREANNOTATIONS"]._serialized_end = 4642 - _globals["_SCOREENTRY"]._serialized_start = 4644 - _globals["_SCOREENTRY"]._serialized_end = 4723 - _globals["_CALLRELATEDANNOTATION"]._serialized_start = 4725 - _globals["_CALLRELATEDANNOTATION"]._serialized_end = 4804 - _globals["_SAMPLECALLINFO"]._serialized_start = 4807 - _globals["_SAMPLECALLINFO"]._serialized_end = 4971 + _globals["_GENERELATEDCONSEQUENCES"]._serialized_end = 2532 + _globals["_GENERELATEDPHENOTYPES"]._serialized_start = 2535 + _globals["_GENERELATEDPHENOTYPES"]._serialized_end = 2672 + _globals["_GENERELATEDCONSTRAINTS"]._serialized_start = 2675 + _globals["_GENERELATEDCONSTRAINTS"]._serialized_end = 3056 + _globals["_GNOMADCONSTRAINTS"]._serialized_start = 3059 + _globals["_GNOMADCONSTRAINTS"]._serialized_end = 3241 + _globals["_DECIPHERCONSTRAINTS"]._serialized_start = 3243 + _globals["_DECIPHERCONSTRAINTS"]._serialized_end = 3296 + _globals["_RCNVCONSTRAINTS"]._serialized_start = 3298 + _globals["_RCNVCONSTRAINTS"]._serialized_end = 3350 + _globals["_SHETCONSTRAINTS"]._serialized_start = 3352 + _globals["_SHETCONSTRAINTS"]._serialized_end = 3384 + _globals["_CLINGENDOSAGEANNOTATION"]._serialized_start = 3387 + _globals["_CLINGENDOSAGEANNOTATION"]._serialized_end = 3523 + _globals["_VARIANTRELATEDANNOTATION"]._serialized_start = 3526 + _globals["_VARIANTRELATEDANNOTATION"]._serialized_end = 3831 + _globals["_FREQUENCYANNOTATION"]._serialized_start = 3834 + _globals["_FREQUENCYANNOTATION"]._serialized_end = 4269 + _globals["_NUCLEARFREQUENCY"]._serialized_start = 4271 + _globals["_NUCLEARFREQUENCY"]._serialized_end = 4359 + _globals["_GNOMADMITOCHONDRIALFREQUENCY"]._serialized_start = 4361 + _globals["_GNOMADMITOCHONDRIALFREQUENCY"]._serialized_end = 4444 + _globals["_HELIXMTDBFREQUENCY"]._serialized_start = 4446 + _globals["_HELIXMTDBFREQUENCY"]._serialized_end = 4519 + _globals["_DBIDS"]._serialized_start = 4521 + _globals["_DBIDS"]._serialized_end = 4564 + _globals["_CLINVARANNOTATION"]._serialized_start = 4567 + _globals["_CLINVARANNOTATION"]._serialized_end = 4788 + _globals["_SCOREANNOTATIONS"]._serialized_start = 4790 + _globals["_SCOREANNOTATIONS"]._serialized_end = 4857 + _globals["_SCOREENTRY"]._serialized_start = 4859 + _globals["_SCOREENTRY"]._serialized_end = 4938 + _globals["_CALLRELATEDANNOTATION"]._serialized_start = 4940 + _globals["_CALLRELATEDANNOTATION"]._serialized_end = 5019 + _globals["_SAMPLECALLINFO"]._serialized_start = 5022 + _globals["_SAMPLECALLINFO"]._serialized_end = 5186 # @@protoc_insertion_point(module_scope) diff --git a/backend/seqvars/protos/output_pb2.pyi b/backend/seqvars/protos/output_pb2.pyi index edcd72fdb..024513137 100644 --- a/backend/seqvars/protos/output_pb2.pyi +++ b/backend/seqvars/protos/output_pb2.pyi @@ -78,6 +78,68 @@ GENOME_RELEASE_GRCH38: GenomeRelease.ValueType # 2 """GRCh38.""" global___GenomeRelease = GenomeRelease +class _TranscriptType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _TranscriptTypeEnumTypeWrapper( + google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TranscriptType.ValueType], + builtins.type, +): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + TRANSCRIPT_TYPE_UNSPECIFIED: _TranscriptType.ValueType # 0 + """Unknown transcript type.""" + TRANSCRIPT_TYPE_CODING: _TranscriptType.ValueType # 1 + """Coding transcript.""" + TRANSCRIPT_TYPE_NON_CODING: _TranscriptType.ValueType # 2 + """Non-coding transcript.""" + +class TranscriptType(_TranscriptType, metaclass=_TranscriptTypeEnumTypeWrapper): + """Transcript type.""" + +TRANSCRIPT_TYPE_UNSPECIFIED: TranscriptType.ValueType # 0 +"""Unknown transcript type.""" +TRANSCRIPT_TYPE_CODING: TranscriptType.ValueType # 1 +"""Coding transcript.""" +TRANSCRIPT_TYPE_NON_CODING: TranscriptType.ValueType # 2 +"""Non-coding transcript.""" +global___TranscriptType = TranscriptType + +class _VariantLocation: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _VariantLocationEnumTypeWrapper( + google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_VariantLocation.ValueType], + builtins.type, +): # noqa: F821 + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + VARIANT_LOCATION_UNSPECIFIED: _VariantLocation.ValueType # 0 + """Unspecified location.""" + VARIANT_LOCATION_UPSTREAM: _VariantLocation.ValueType # 1 + """Upstream of gene.""" + VARIANT_LOCATION_EXON: _VariantLocation.ValueType # 2 + """Exonic.""" + VARIANT_LOCATION_INTRON: _VariantLocation.ValueType # 3 + """Intronic.""" + VARIANT_LOCATION_DOWNSTREAM: _VariantLocation.ValueType # 4 + """Downstream of the gene.""" + +class VariantLocation(_VariantLocation, metaclass=_VariantLocationEnumTypeWrapper): + """Location where the variant falls in relation to a transcript.""" + +VARIANT_LOCATION_UNSPECIFIED: VariantLocation.ValueType # 0 +"""Unspecified location.""" +VARIANT_LOCATION_UPSTREAM: VariantLocation.ValueType # 1 +"""Upstream of gene.""" +VARIANT_LOCATION_EXON: VariantLocation.ValueType # 2 +"""Exonic.""" +VARIANT_LOCATION_INTRON: VariantLocation.ValueType # 3 +"""Intronic.""" +VARIANT_LOCATION_DOWNSTREAM: VariantLocation.ValueType # 4 +"""Downstream of the gene.""" +global___VariantLocation = VariantLocation + class _ModeOfInheritance: ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType @@ -880,6 +942,11 @@ class GeneRelatedConsequences(google.protobuf.message.Message): HGVS_T_FIELD_NUMBER: builtins.int HGVS_P_FIELD_NUMBER: builtins.int CONSEQUENCES_FIELD_NUMBER: builtins.int + TX_ACCESSION_FIELD_NUMBER: builtins.int + TX_VERSION_FIELD_NUMBER: builtins.int + LOCATION_FIELD_NUMBER: builtins.int + RANK_ORD_FIELD_NUMBER: builtins.int + RANK_TOTAL_FIELD_NUMBER: builtins.int hgvs_t: builtins.str """HGVS. {c,n} code of variant.""" hgvs_p: builtins.str @@ -891,7 +958,16 @@ class GeneRelatedConsequences(google.protobuf.message.Message): seqvars.protos.query_pb2.Consequence.ValueType ]: """Predicted variant consequences.""" - + tx_accession: builtins.str + """Transcript accession without version.""" + tx_version: builtins.int + """Transcript version.""" + location: global___VariantLocation.ValueType + """Whether exon or intron is hit.""" + rank_ord: builtins.int + """Exon/intron number (1-based).""" + rank_total: builtins.int + """Exon/intron total count.""" def __init__( self, *, @@ -900,11 +976,39 @@ class GeneRelatedConsequences(google.protobuf.message.Message): consequences: ( collections.abc.Iterable[seqvars.protos.query_pb2.Consequence.ValueType] | None ) = ..., + tx_accession: builtins.str | None = ..., + tx_version: builtins.int | None = ..., + location: global___VariantLocation.ValueType = ..., + rank_ord: builtins.int | None = ..., + rank_total: builtins.int | None = ..., ) -> None: ... def HasField( self, field_name: typing_extensions.Literal[ - "_hgvs_p", b"_hgvs_p", "_hgvs_t", b"_hgvs_t", "hgvs_p", b"hgvs_p", "hgvs_t", b"hgvs_t" + "_hgvs_p", + b"_hgvs_p", + "_hgvs_t", + b"_hgvs_t", + "_rank_ord", + b"_rank_ord", + "_rank_total", + b"_rank_total", + "_tx_accession", + b"_tx_accession", + "_tx_version", + b"_tx_version", + "hgvs_p", + b"hgvs_p", + "hgvs_t", + b"hgvs_t", + "rank_ord", + b"rank_ord", + "rank_total", + b"rank_total", + "tx_accession", + b"tx_accession", + "tx_version", + b"tx_version", ], ) -> builtins.bool: ... def ClearField( @@ -914,12 +1018,30 @@ class GeneRelatedConsequences(google.protobuf.message.Message): b"_hgvs_p", "_hgvs_t", b"_hgvs_t", + "_rank_ord", + b"_rank_ord", + "_rank_total", + b"_rank_total", + "_tx_accession", + b"_tx_accession", + "_tx_version", + b"_tx_version", "consequences", b"consequences", "hgvs_p", b"hgvs_p", "hgvs_t", b"hgvs_t", + "location", + b"location", + "rank_ord", + b"rank_ord", + "rank_total", + b"rank_total", + "tx_accession", + b"tx_accession", + "tx_version", + b"tx_version", ], ) -> None: ... @typing.overload @@ -930,6 +1052,22 @@ class GeneRelatedConsequences(google.protobuf.message.Message): def WhichOneof( self, oneof_group: typing_extensions.Literal["_hgvs_t", b"_hgvs_t"] ) -> typing_extensions.Literal["hgvs_t"] | None: ... + @typing.overload + def WhichOneof( + self, oneof_group: typing_extensions.Literal["_rank_ord", b"_rank_ord"] + ) -> typing_extensions.Literal["rank_ord"] | None: ... + @typing.overload + def WhichOneof( + self, oneof_group: typing_extensions.Literal["_rank_total", b"_rank_total"] + ) -> typing_extensions.Literal["rank_total"] | None: ... + @typing.overload + def WhichOneof( + self, oneof_group: typing_extensions.Literal["_tx_accession", b"_tx_accession"] + ) -> typing_extensions.Literal["tx_accession"] | None: ... + @typing.overload + def WhichOneof( + self, oneof_group: typing_extensions.Literal["_tx_version", b"_tx_version"] + ) -> typing_extensions.Literal["tx_version"] | None: ... global___GeneRelatedConsequences = GeneRelatedConsequences diff --git a/backend/varfish/tests/drf_openapi_schema/varfish_api_schema.yaml b/backend/varfish/tests/drf_openapi_schema/varfish_api_schema.yaml index 4c59d79a9..3cdb665a2 100644 --- a/backend/varfish/tests/drf_openapi_schema/varfish_api_schema.yaml +++ b/backend/varfish/tests/drf_openapi_schema/varfish_api_schema.yaml @@ -7458,10 +7458,37 @@ components: $ref: '#/components/schemas/SeqvarsVariantConsequenceChoice' title: Consequences type: array + tx_accession: + anyOf: + - type: string + - type: 'null' + title: Tx Accession + tx_version: + anyOf: + - type: integer + - type: 'null' + title: Tx Version + location: + $ref: '#/components/schemas/VariantLocationChoice' + rank_ord: + anyOf: + - type: integer + - type: 'null' + title: Rank Ord + rank_total: + anyOf: + - type: integer + - type: 'null' + title: Rank Total required: - hgvs_t - hgvs_p - consequences + - tx_accession + - tx_version + - location + - rank_ord + - rank_total title: GeneRelatedConsequencesPydantic type: object GeneRelatedConstraintsPydantic: @@ -13730,6 +13757,15 @@ components: - samples - seqvarstats - strucvarstats + VariantLocationChoice: + description: Enumeration for the variant location. + enum: + - upstream + - exon + - intron + - downstream + title: VariantLocationChoice + type: string strList: type: array items: diff --git a/frontend/ext/varfish-api/src/lib/@tanstack/vue-query.gen.ts b/frontend/ext/varfish-api/src/lib/@tanstack/vue-query.gen.ts index 1437725c6..7aa1ef10d 100644 --- a/frontend/ext/varfish-api/src/lib/@tanstack/vue-query.gen.ts +++ b/frontend/ext/varfish-api/src/lib/@tanstack/vue-query.gen.ts @@ -65,10 +65,10 @@ export const casesAnalysisApiCaseanalysisListInfiniteOptions = (options: Options const { data } = await casesAnalysisApiCaseanalysisList({ ...options, ...queryKey[0], - // body: { - // ...queryKey[0].body as any, - // ...page.body as any - // }, + body: { + ...queryKey[0].body as any, + ...page.body as any + }, headers: { ...queryKey[0].headers, ...page.headers @@ -137,10 +137,10 @@ export const casesAnalysisApiCaseanalysissessionListInfiniteOptions = (options: const { data } = await casesAnalysisApiCaseanalysissessionList({ ...options, ...queryKey[0], - // body: { - // ...queryKey[0].body as any, - // ...page.body as any - // }, + body: { + ...queryKey[0].body as any, + ...page.body as any + }, headers: { ...queryKey[0].headers, ...page.headers @@ -209,10 +209,10 @@ export const casesImportApiCaseImportActionListInfiniteOptions = (options: Optio const { data } = await casesImportApiCaseImportActionList({ ...options, ...queryKey[0], - // body: { - // ...queryKey[0].body as any, - // ...page.body as any - // }, + body: { + ...queryKey[0].body as any, + ...page.body as any + }, headers: { ...queryKey[0].headers, ...page.headers @@ -531,10 +531,10 @@ export const casesApiCaseListListInfiniteOptions = (options: Options; + tx_accession: (string | null); + tx_version: (number | null); + location: VariantLocationChoice; + rank_ord: (number | null); + rank_total: (number | null); }; /** @@ -3336,6 +3341,11 @@ export type VarfishStats = { strucvarstats: SampleStrucvarStatsList; }; +/** + * Enumeration for the variant location. + */ +export type VariantLocationChoice = 'upstream' | 'exon' | 'intron' | 'downstream'; + export type strList = Array<(string)>; export type CasesAnalysisApiCaseanalysisListData = { diff --git a/frontend/src/seqvars/components/QueryResults/QueryResultsTable.vue b/frontend/src/seqvars/components/QueryResults/QueryResultsTable.vue index 141c02783..935c1e7ae 100644 --- a/frontend/src/seqvars/components/QueryResults/QueryResultsTable.vue +++ b/frontend/src/seqvars/components/QueryResults/QueryResultsTable.vue @@ -395,6 +395,32 @@ watch( + + + +