Skip to main content
Glama
test_links.py2.55 kB
"""Tests for the links module.""" import json import os from typing import Any import pytest from biomcp.variants.links import inject_links @pytest.fixture def braf_variants() -> list[dict[str, Any]]: """Load BRAF V600 test data.""" test_data_path = os.path.join( os.path.dirname(__file__), "../../data/myvariant/variants_part_braf_v600_multiple.json", ) with open(test_data_path) as f: return json.load(f) def test_inject_links_braf_variants(braf_variants): """Test URL injection for BRAF variants data.""" result = inject_links(braf_variants) # Test first variant (no CIViC) variant0 = result[0] assert ( variant0["dbsnp"]["url"] == f"https://www.ncbi.nlm.nih.gov/snp/{variant0['dbsnp']['rsid']}" ) assert ( variant0["clinvar"]["url"] == f"https://www.ncbi.nlm.nih.gov/clinvar/variation/{variant0['clinvar']['variant_id']}/" ) assert ( variant0["cosmic"]["url"] == f"https://cancer.sanger.ac.uk/cosmic/mutation/overview?id={variant0['cosmic']['cosmic_id']}" ) assert "civic" not in variant0 or "url" not in variant0["civic"] assert ( variant0["url"]["ensembl"] == f"https://ensembl.org/Homo_sapiens/Variation/Explore?v={variant0['dbsnp']['rsid']}" ) assert variant0["url"]["ucsc_genome_browser"].startswith( "https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=chr7:" ) assert ( variant0["url"]["hgnc"] == "https://www.genenames.org/data/gene-symbol-report/#!/symbol/BRAF" ) # Test second variant (with CIViC) variant1 = result[1] assert ( variant1["civic"]["url"] == f"https://civicdb.org/variants/{variant1['civic']['id']}/summary" ) # Test empty list assert inject_links([]) == [] # Test insertion (no REF) insertion = { "chrom": "7", "vcf": {"position": "123", "alt": "A"}, "dbnsfp": {"genename": "GENE1"}, } result = inject_links([insertion])[0] assert ( result["url"]["ucsc_genome_browser"] == "https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=chr7:123-124" ) # Test deletion (no ALT) deletion = { "chrom": "7", "vcf": {"position": "123", "ref": "AAA"}, "dbnsfp": {"genename": "GENE1"}, } result = inject_links([deletion])[0] assert ( result["url"]["ucsc_genome_browser"] == "https://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&position=chr7:123-126" )

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/genomoncology/biomcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server