Skip to main content
Glama

get_variant_liftover

Convert genomic variant coordinates between GRCh37 and GRCh38 reference genomes using the gnomAD database, enabling cross-version data analysis and comparison.

Instructions

[gnomAD API] Retrieve liftover info (v2 only) Args: reference_genome (str): Reference genome (GRCh37 or GRCh38) source_variant_id (str, optional): Source variant ID (e.g. 12-112241766-G-A on GRCh37) liftover_variant_id (str, optional): Lifted over variant ID (e.g. 12-111803962-G-A on GRCh38) Returns: dict: liftover info Note: Not supported in v3/v4.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reference_genomeYes
source_variant_idNo
liftover_variant_idNo
datasetNognomad_r2_1

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The implementation of get_variant_liftover, which validates input parameters and calls run_query_with_metadata to fetch liftover data.
    def get_variant_liftover(
        reference_genome: str,
        source_variant_id: Optional[str] = None,
        liftover_variant_id: Optional[str] = None,
        dataset: str = 'gnomad_r2_1'
    ) -> dict:
        """
        [gnomAD API] Retrieve liftover info (v2 only)
        Args:
            reference_genome (str): Reference genome (GRCh37 or GRCh38)
            source_variant_id (str, optional): Source variant ID (e.g. 12-112241766-G-A on GRCh37)
            liftover_variant_id (str, optional): Lifted over variant ID (e.g. 12-111803962-G-A on GRCh38)
        Returns:
            dict: liftover info
        Note:
            Not supported in v3/v4.
        """
    
        if dataset != 'gnomad_r2_1':
            raise ValueError("Only v2 is supported for liftover.")
        
        if source_variant_id and liftover_variant_id:
            raise ValueError("Only one of source_variant_id or liftover_variant_id must be provided.")
        
        # Build check
        if source_variant_id:
            if reference_genome != 'GRCh37':
                raise ValueError("Source variant ID must be on GRCh37.")
        elif liftover_variant_id:
            if reference_genome != 'GRCh38':
                raise ValueError("Lifted over variant ID must be on GRCh38.")
        else:
            raise ValueError("Either source_variant_id or liftover_variant_id must be provided.")
    
        variables = {
            'dataset': dataset,
            'reference_genome': reference_genome,
            'source_variant_id': source_variant_id,
            'liftover_variant_id': liftover_variant_id,
        }
        return run_query_with_metadata('liftover', variables)
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It mentions the API version limitation (v2 only) and that it returns a dictionary, but doesn't disclose important behavioral traits like whether this is a read-only operation, potential rate limits, authentication needs, error conditions, or what specific fields the returned dict contains. The description adds minimal value beyond basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (Args, Returns, Note) and uses minimal space. The first sentence states the core purpose, followed by parameter details and important notes. However, the 'Args' and 'Returns' labels are somewhat redundant since this information is in structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters with 0% schema coverage and an output schema exists, the description provides basic parameter examples and return type but doesn't fully compensate for the missing schema documentation. It covers the version limitation but lacks details about authentication, error handling, or the structure of the returned dictionary. The existence of an output schema reduces but doesn't eliminate the need for behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides examples for source_variant_id and liftover_variant_id parameters, which helps understand format, but doesn't explain the reference_genome parameter (despite it being required) or the dataset parameter at all. The description mentions 'Args' and 'Returns' sections but leaves 2 of 4 parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves liftover information for variants, specifying it's for gnomAD API v2 only. It distinguishes from siblings by focusing on variant coordinate conversion rather than variant annotation, gene info, or searches. However, it doesn't explicitly contrast with the most similar sibling 'get_variant_info' which might also handle variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying 'v2 only' and 'Not supported in v3/v4', providing some context about when NOT to use it. However, it doesn't explicitly state when to choose this tool over alternatives like 'get_variant_info' or provide guidance on parameter combinations (e.g., when to use source_variant_id vs liftover_variant_id).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/koido/gnomad-mcp'

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