Skip to main content

ClinVar & Variants

Query clinical variant databases — ClinVar, dbSNP, and COSMIC — for pathogenicity, population frequencies, and somatic mutation landscapes.

TOOLclinvar_search

Search ClinVar for variants by gene, rsID, or genomic position. Returns clinical significance, review status, and submitter information.

ParameterTypeDescription
genestringGene symbol (e.g. BRCA1).
variant_namestringHGVS or protein change (e.g. p.Arg1699Gln).
rsidstringdbSNP rsID (e.g. rs28897696).
significancestring[]Filter by pathogenic, likely_pathogenic, benign, vus.
max_resultsintegerMax variants to return (default 20).
from smartsbio import SmartsBio

client = SmartsBio(api_key="sk_live_...")

# Pathogenic BRCA1 variants
result = client.tools.run(
    tool_id="clinvar_search",
    input={
        "gene": "BRCA1",
        "significance": ["pathogenic", "likely_pathogenic"],
        "max_results": 10,
    },
)
print(f"Pathogenic variants: {result['total']}")
for v in result["variants"][:5]:
    print(f"  {v['name']:<35}  {v['clinical_significance']:<20}  stars={'★'*v['review_stars']}")
TOOLdbsnp_fetch

Look up population allele frequencies and functional annotations for an rsID from dbSNP / gnomAD.

from smartsbio import SmartsBio

client = SmartsBio(api_key="sk_live_...")

result = client.tools.run(
    tool_id="dbsnp_fetch",
    input={"rsid": "rs28897696"},
)
snp = result["variant"]
print(f"rsID       : {snp['rsid']}")
print(f"Gene       : {snp['gene']}")
print(f"HGVS       : {snp['hgvs']}")
print(f"gnomAD AF  : {snp['gnomad_af']:.6f}  (EUR: {snp['gnomad_af_eur']:.6f})")
print(f"ClinVar    : {snp['clinical_significance']}")
TOOLcosmic_search

Search COSMIC for somatic mutations, hotspot positions, and cancer type frequencies.

from smartsbio import SmartsBio

client = SmartsBio(api_key="sk_live_...")

result = client.tools.run(
    tool_id="cosmic_search",
    input={
        "gene": "TP53",
        "cancer_type": "breast",
        "limit": 10,
    },
)
print(f"Mutations found: {result['total']}")
for mut in result["mutations"][:5]:
    print(f"  {mut['aa_change']:<15}  count={mut['sample_count']:<6}  cancers={', '.join(mut['cancer_types'][:2])}")