Bio Clinical Databases Clinvar Lookup
Query ClinVar for variant pathogenicity classifications, review status, and disease...
Install
npx skills add FreedomIntelligence/OpenClaw-Medical-Skills --skill bio-clinical-databases-clinvar-lookup -g -a claude-code -y- Repository
- FreedomIntelligence/OpenClaw-Medical-Skills3.1k
- Category
- Writing
- Updated
- 4mo ago
- License
- See repository
- Context cost
- Lightabout 1,348 tokens
- Runs scripts
- Yes, review before use
What it does
Query ClinVar for variant pathogenicity classifications, review status, and disease associations via REST API or local VCF. Use when determining clinical significance of variants for diagnostic or research purposes.
Version Compatibility
Reference examples tested with: Entrez Direct 21.0+, bcftools 1.19+
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package>thenhelp(module.function)to check signatures - CLI:
<tool> --versionthen<tool> --helpto confirm flags
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
ClinVar Lookup
REST API Queries
Goal: Retrieve ClinVar pathogenicity classifications and disease associations for variants via REST API.
Approach: Query NCBI E-utilities endpoints with variant IDs, gene symbols, or HGVS notation and parse JSON responses.
"Look up this variant in ClinVar" → Query ClinVar database for clinical significance, review status, and disease associations.
- Python:
requests.get()against NCBI E-utilities (requests) - CLI:
esearch/efetch(Entrez Direct)
Query by Variant ID
import requests
def query_clinvar_by_id(variation_id):
'''Query ClinVar by variation ID'''
url = f'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi'
params = {
'db': 'clinvar',
'id': variation_id,
'retmode': 'json'
}
response = requests.get(url, params=params)
return response.json()
result = query_clinvar_by_id('16609')
Search by Gene
def search_clinvar_gene(gene_symbol, pathogenic_only=False):
'''Search ClinVar for variants in a gene'''
url = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi'
term = f'{gene_symbol}[gene]'
if pathogenic_only:
term += ' AND pathogenic[clinical_significance]'
params = {
'db': 'clinvar',
'term': term,
'retmax': 500,
'retmode': 'json'
}
response = requests.get(url, params=params)
return response.json()
