Skip to main content
Glama
taehojo
by taehojo

predict_allele_specific_effects

Analyze how genetic variants affect gene regulation differently across alleles to support allele-specific expression analysis and imprinting studies.

Instructions

Analyze allele-specific regulatory effects.

Detailed analysis of how each allele affects gene regulation differently.

Perfect for: ASE analysis, imprinting studies.

Example: "Analyze allele-specific effects of chr15:67890123A>G"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chromosomeYes
positionYes
refYes
altYes
tissue_typeNo

Implementation Reference

  • MCP callTool request handler case that executes the tool by calling the AlphaGenomeClient method.
    case 'predict_allele_specific_effects': {
      const params = validateInput(variantPredictionSchema, args) as VariantPredictionParams;
      const result = await getClient().predictAlleleSpecificEffects(params);
      return {
        content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
      };
    }
  • Tool schema definition including input validation schema, description, and name.
    export const PREDICT_ALLELE_SPECIFIC_EFFECTS_TOOL: Tool = {
      name: 'predict_allele_specific_effects',
      description: `Analyze allele-specific regulatory effects.
    
    Detailed analysis of how each allele affects gene regulation differently.
    
    Perfect for: ASE analysis, imprinting studies.
    
    Example: "Analyze allele-specific effects of chr15:67890123A>G"`,
      inputSchema: {
        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]+$' },
          tissue_type: { type: 'string' },
        },
        required: ['chromosome', 'position', 'ref', 'alt'],
      },
    };
  • src/tools.ts:709-730 (registration)
    Registration of the tool in the ALL_TOOLS array exported for use in MCP listTools handler.
    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,
    ];
  • Core handler function implementing the allele-specific effects prediction by calculating ASE ratio from reference and alternate expression scores.
    def predict_allele_specific_effects(client, params: Dict[str, Any]) -> Dict[str, Any]:
        """Analyze allele-specific expression effects."""
        result = predict_variant_effect(client, params)
    
        rna_data = result['predictions'].get('rna_seq', {})
        ref_score = rna_data.get('reference_score', 0)
        alt_score = rna_data.get('alternate_score', 0)
    
        # Calculate allele-specific ratio
        if ref_score + alt_score > 0:
            ase_ratio = alt_score / (ref_score + alt_score)
        else:
            ase_ratio = 0.5
    
        return {
            'variant': result['variant'],
            'ref_expression': ref_score,
            'alt_expression': alt_score,
            'ase_ratio': float(ase_ratio),
            'interpretation': 'alt_biased' if ase_ratio > 0.6 else ('ref_biased' if ase_ratio < 0.4 else 'balanced')
        }
  • Helper client method that invokes the Python bridge for the tool execution.
    async predictAlleleSpecificEffects(params: VariantPredictionParams): Promise<any> {
      try {
        return await this.callPythonBridge('predict_allele_specific_effects', params);
      } catch (error) {
        if (error instanceof ApiError) throw error;
        throw new ApiError(`Allele-specific effects prediction 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