diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a6bf4793f..065a059512 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ About changelog [here](https://keepachangelog.com/en/1.0.0/) - Display inheritance models on structural variantS pages (#6015) - Analysis types wgs-lr and panel-lr (#6029) - Option to specify database name for the loqusdb API in the scout config file (#6028) +- popEVE link on variant page, RefSeq transcripts table (#6016) ### Changed - Institutes are now ordered alphabetically by display name on gene panels search (#5965) - Display all available individual/sample IDs for a case (display_name, individual_id and subject_id) directly on cases page (#5966) diff --git a/scout/server/blueprints/variant/controllers.py b/scout/server/blueprints/variant/controllers.py index b2d5b04651..fc77952d2f 100644 --- a/scout/server/blueprints/variant/controllers.py +++ b/scout/server/blueprints/variant/controllers.py @@ -128,6 +128,7 @@ def tx_overview(variant_obj: dict, genome_build: str): "cbioportal_link", "mutalyzer_link", "mycancergenome_link", + "popeve_link", "tp53_link", "varsome_link", "vutr_link", diff --git a/scout/server/blueprints/variant/templates/variant/tx_overview.html b/scout/server/blueprints/variant/templates/variant/tx_overview.html index 0b9998334f..c2ee92ff9f 100644 --- a/scout/server/blueprints/variant/templates/variant/tx_overview.html +++ b/scout/server/blueprints/variant/templates/variant/tx_overview.html @@ -113,6 +113,10 @@ MCG {% endif %} + {% if tx.popeve_link %} + pE + {% endif %} {% endfor %} diff --git a/scout/server/links.py b/scout/server/links.py index e734cf5bce..a614757827 100644 --- a/scout/server/links.py +++ b/scout/server/links.py @@ -356,6 +356,8 @@ def add_tx_links(tx_obj, build=37, hgnc_symbol=None): if build == 38: tx_obj["ensembl_link"] = ensembl_38_link + tx_obj["popeve_link"] = popeve(tx_obj) + refseq_links = [] refseq_id = tx_obj.get("refseq_id") or ( tx_obj.get("transcript_id") @@ -403,6 +405,16 @@ def refseq(refseq_id): return link.format(refseq_id) +def popeve(tx_obj: dict) -> Optional[str]: + """Generates a PopEVE link for a transcript by extracting the RefSeq protein_id, if present.""" + protein_id = tx_obj.get("protein_id") + if not protein_id or not protein_id.startswith("NP_"): + return None + + protein_id = protein_id.replace(".", "-") # Format RefSeq protein ID for PopEVE URL + return f"https://pop.evemodel.org/protein/{protein_id}" + + def ensembl_tx(ens_tx_id, build=37): link = "http://grch37.ensembl.org/Homo_sapiens/" "Gene/Summary?t={}"