opentargets / issues

Issue tracker for Open Targets Platform and Open Targets Genetics Portal
https://platform.opentargets.org https://genetics.opentargets.org
Apache License 2.0
12 stars 2 forks source link

VEP widget FE scoping #3386

Open buniello opened 3 months ago

buniello commented 3 months ago

This ticket will include scoping iterations for the VEP widget on the variant page.

Please note that at time of issue opening, the variant index data/API is not completed e.g. the data team is working on adding new fields to capture distance info from VEP output. Also, we expect the majority of VEP widgets to consist of just one row.

Example of variant consequences API query ``` query { variant(variantId:"1_150556742_A_AG"){ transcriptConsequences { variantConsequences { id label } aminoAcidChange uniprotAccessions isEnsemblCanonical codons distance target { id approvedName } impact transcriptId lofteePrediction siftPrediction polyphenPrediction } } } ```
Example of variant consequences API response ``` { "data": { "variant": { "transcriptConsequences": [ { "variantConsequences": [ { "id": "SO:0001589", "label": "frameshift_variant" } ], "aminoAcidChange": "-567X", "uniprotAccessions": [ "Q6UY14" ], "isEnsemblCanonical": true, "codons": "-/G", "distance": null, "target": { "id": "ENSG00000143382", "approvedName": "ADAMTS like 4" }, "impact": "HIGH", "transcriptId": "ENST00000271643", "lofteePrediction": "HC", "siftPrediction": null, "polyphenPrediction": null }, { "variantConsequences": [ { "id": "SO:0001627", "label": "intron_variant" }, { "id": "SO:0001619", "label": "non_coding_transcript_variant" } ], "aminoAcidChange": null, "uniprotAccessions": [], "isEnsemblCanonical": true, "codons": null, "distance": null, "target": { "id": "ENSG00000237781", "approvedName": "ADAMTSL4 antisense RNA 2" }, "impact": "MODIFIER", "transcriptId": "ENST00000442435", "lofteePrediction": null, "siftPrediction": null, "polyphenPrediction": null }, { "variantConsequences": [ { "id": "SO:0001632", "label": "downstream_gene_variant" } ], "aminoAcidChange": null, "uniprotAccessions": [], "isEnsemblCanonical": true, "codons": null, "distance": 4728, "target": { "id": "ENSG00000264553", "approvedName": "microRNA 4257" }, "impact": "MODIFIER", "transcriptId": "ENST00000581735", "lofteePrediction": null, "siftPrediction": null, "polyphenPrediction": null }, { "variantConsequences": [ { "id": "SO:0001632", "label": "downstream_gene_variant" } ], "aminoAcidChange": null, "uniprotAccessions": [], "isEnsemblCanonical": true, "codons": null, "distance": 3459, "target": { "id": "ENSG00000203804", "approvedName": "ADAMTSL4 antisense RNA 1" }, "impact": "MODIFIER", "transcriptId": "ENST00000615012", "lofteePrediction": null, "siftPrediction": null, "polyphenPrediction": null }, { "variantConsequences": [ { "id": "SO:0001631", "label": "upstream_gene_variant" } ], "aminoAcidChange": null, "uniprotAccessions": [], "isEnsemblCanonical": true, "codons": null, "distance": 4723, "target": { "id": "ENSG00000289457", "approvedName": "novel transcript" }, "impact": "MODIFIER", "transcriptId": "ENST00000689641", "lofteePrediction": null, "siftPrediction": null, "polyphenPrediction": null } ] } } } ```

VEP Widget Subheader text: Variant consequence prediction for FIXED VARIANT ON PAGE Source: VEP

NOTE: please show / for null values

HORIZONTAL TABLE VERSION:

  1. COLUMN HEADER: TRANSCRIPT (Tooltip: Ensembl canonical transcript) transcriptIdPLEASE NOTE: this field should be hyperlinked to Ensembl transcript page but don’t have enough info in data to build link
  2. COLUMN HEADER: PREDICTED CONSEQUENCE - variantConsequences label resolved object hyperlinked to [http://purl.obolibrary.org/obo/`variantConsequencesId] (tooltip:impact`) — please note you could re-use VEP chip from ClinVar widget, where predicted consequence object is resolved by identifiers.org already
  3. COLUMN HEADER: CONSEQUENCE SCORE - consequenceScore
  4. COLUMN HEADER: GENE - approvedName within ‘target’ object hyperlinked to Platform page for targetId
  5. COLUMN HEADER: AMMINOACID CHANGE aminoAcidChange
  6. COLUMN HEADER: CODING CHANGE codons
  7. COLUMN HEADER: DISTANCE FROM FOOTPRINT distanceFromFootprint (this field will be introduced with next data/API release)
  8. COLUMN HEADER: DISTANCE FROM START SITE distanceFromTss (this field will be introduced with next data/API release)
  9. COLUMN HEADER: LOFTEE PREDICTION - lofteePrediction
  10. COLUMN HEADER: SIFT PREDICTION - siftPrediction
  11. COLUMN HEADER: POLYPHEN PREDICTION - polyphenPrediction
  12. UNIPROT ACCESSION: uniprotAccessions (can be more than one separated by comma) hyperlinked to https://www.uniprot.org/uniprotkb/uniprotAccessions
d0choa commented 3 months ago

While the new data is propagated, the current API column distance corresponds to the upcoming distanceFromFootprint. It can contain null values, but they will be replaced by 0 in the upcoming data. @DSuveges can provide more details if needed.

@buniello if I understood you well, the transcript link can be built like the next: http://www.ensembl.org/Homo_sapiens/Transcript/Summary?db=core;g=ENSG00000139618;t=ENST00000700199 We would get ENSG00000139618 from target.id and ENST00000700199 from transcriptId. Please confirm is this is what you were after.

Please keep using identifiers.org for sequence ontology and UniProt.

d0choa commented 3 months ago

Something important is that we will like this table to be sorted but after discussion with @DSuveges, we are still undecided on how to do it.

buniello commented 3 months ago

Thank you @d0choa, yes these are the links i was after. For table sorting, i kept that choice for later, not critical now

buniello commented 3 months ago

Comment on widget table sorting @gjmcn: a new field has been added to variant index dataset (and soon deployed in API) - transcriptIndex- , a non-nullable integer from 1 to the number of transcripts, where 1 is assigned to the most relevant relevant. This field should be used to order the genes in the VEP widget from most relevant and going down the list.

buniello commented 3 months ago

Pending: I decision on whether the two new transcript annotation fields, maneselect and appris should be presented to users in VEP widget and how (additional transcript annotation column similar to other resources)? Any feedback welcome

d0choa commented 3 months ago

Suggested changes in Aug 7th:

buniello commented 2 months ago

i agree with the suggested changes above

We should think about table sorting

buniello commented 2 months ago

note from Ellie:

d0choa commented 2 months ago

Unless I'm missing something, the above comment requires no additional action @gjmcn