Skip to main content
Glama

compare_variants

Compare two genetic variants to determine their regulatory impacts, expression changes, splicing alterations, and relative severity for variant analysis.

Instructions

Compare two variants side-by-side.

Direct comparison of regulatory impacts between two variants.

Returns:

  • Impact levels for both variants

  • Expression and splicing changes

  • Which variant is more severe

Perfect for: comparing candidate variants, understanding relative severity.

Example: "Compare rs429358 vs rs7412"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
variant1Yes
variant2Yes

Implementation Reference

  • Core handler function that executes the compare_variants tool logic by predicting effects for two variants using predict_variant_effect and comparing their impacts.
    def compare_variants(client, params: Dict[str, Any]) -> Dict[str, Any]: """ Compare two variants side-by-side. """ variant1 = params.get('variant1') variant2 = params.get('variant2') result1 = predict_variant_effect(client, variant1) result2 = predict_variant_effect(client, variant2) return { 'variant1': { 'id': result1['variant'], 'impact': result1['interpretation']['impact_level'], 'expression_fc': result1['predictions'].get('rna_seq', {}).get('fold_change', 0), 'splice_delta': result1['predictions'].get('splice', {}).get('delta', 0) }, 'variant2': { 'id': result2['variant'], 'impact': result2['interpretation']['impact_level'], 'expression_fc': result2['predictions'].get('rna_seq', {}).get('fold_change', 0), 'splice_delta': result2['predictions'].get('splice', {}).get('delta', 0) }, 'comparison': { 'more_severe': result1['variant'] if abs(result1['predictions'].get('rna_seq', {}).get('fold_change', 0)) > abs(result2['predictions'].get('rna_seq', {}).get('fold_change', 0)) else result2['variant'] } }
  • Input schema and metadata definition for the compare_variants tool, specifying structure for variant1 and variant2 inputs.
    export const COMPARE_VARIANTS_TOOL: Tool = { name: 'compare_variants', description: `Compare two variants side-by-side. Direct comparison of regulatory impacts between two variants. Returns: - Impact levels for both variants - Expression and splicing changes - Which variant is more severe Perfect for: comparing candidate variants, understanding relative severity. Example: "Compare rs429358 vs rs7412"`, inputSchema: { type: 'object', properties: { variant1: { type: 'object', properties: { chromosome: { type: 'string', pattern: '^chr([1-9]|1[0-9]|2[0-2]|X|Y)$' }, position: { type: 'number', minimum: 1 }, ref: { type: 'string', pattern: '^[ATGCatgc]+$' }, alt: { type: 'string', pattern: '^[ATGCatgc]+$' }, }, required: ['chromosome', 'position', 'ref', 'alt'], }, variant2: { type: 'object', properties: { chromosome: { type: 'string', pattern: '^chr([1-9]|1[0-9]|2[0-2]|X|Y)$' }, position: { type: 'number', minimum: 1 }, ref: { type: 'string', pattern: '^[ATGCatgc]+$' }, alt: { type: 'string', pattern: '^[ATGCatgc]+$' }, }, required: ['chromosome', 'position', 'ref', 'alt'], }, }, required: ['variant1', 'variant2'], }, };
  • src/tools.ts:709-730 (registration)
    Registration of the compare_variants tool (COMPARE_VARIANTS_TOOL) in the ALL_TOOLS array, which is served via the MCP listTools endpoint.
    export const ALL_TOOLS: Tool[] = [ PREDICT_VARIANT_TOOL, BATCH_SCORE_TOOL, ASSESS_PATHOGENICITY_TOOL, PREDICT_TISSUE_SPECIFIC_TOOL, COMPARE_VARIANTS_TOOL, PREDICT_SPLICE_IMPACT_TOOL, PREDICT_EXPRESSION_IMPACT_TOOL, ANALYZE_GWAS_LOCUS_TOOL, COMPARE_ALLELES_TOOL, BATCH_TISSUE_COMPARISON_TOOL, PREDICT_TF_BINDING_IMPACT_TOOL, PREDICT_CHROMATIN_IMPACT_TOOL, COMPARE_PROTECTIVE_RISK_TOOL, BATCH_PATHOGENICITY_FILTER_TOOL, COMPARE_VARIANTS_SAME_GENE_TOOL, PREDICT_ALLELE_SPECIFIC_EFFECTS_TOOL, ANNOTATE_REGULATORY_CONTEXT_TOOL, BATCH_MODALITY_SCREEN_TOOL, GENERATE_VARIANT_REPORT_TOOL, EXPLAIN_VARIANT_IMPACT_TOOL, ];
  • MCP server handler that dispatches compare_variants tool calls to the AlphaGenomeClient.
    case 'compare_variants': { const result = await getClient().compareVariants(args); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; }
  • Client proxy method that invokes the Python bridge for compare_variants action.
    async compareVariants(params: any): Promise<any> { try { return await this.callPythonBridge('compare_variants', params); } catch (error) { if (error instanceof ApiError) throw error; throw new ApiError(`Variant comparison failed: ${error}`, 500); } }

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/taehojo/alphagenome-mcp'

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