analyze_gwas_locus
Analyze GWAS locus variants to rank them by regulatory impact for fine-mapping and causal variant identification.
Instructions
Analyze all variants in a GWAS locus.
Ranks variants by regulatory impact for fine-mapping and causal variant identification.
Perfect for: GWAS follow-up, fine-mapping, identifying causal variants.
Example: "Analyze GWAS locus with 10 variants"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| variants | Yes | ||
| chromosome | No | ||
| start | No | ||
| end | No |
Implementation Reference
- src/index.ts:184-189 (handler)MCP CallTool request handler case for 'analyze_gwas_locus': validates input (implicitly via schema), calls AlphaGenomeClient.analyzeGwasLocus, and returns JSON-formatted result.case 'analyze_gwas_locus': { const result = await getClient().analyzeGwasLocus(args); return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }], }; }
- src/tools.ts:334-366 (schema)Tool schema and definition: specifies name, description, input schema with variants array (required), optional chromosome/start/end for locus.export const ANALYZE_GWAS_LOCUS_TOOL: Tool = { name: 'analyze_gwas_locus', description: `Analyze all variants in a GWAS locus. Ranks variants by regulatory impact for fine-mapping and causal variant identification. Perfect for: GWAS follow-up, fine-mapping, identifying causal variants. Example: "Analyze GWAS locus with 10 variants"`, inputSchema: { type: 'object', properties: { variants: { type: 'array', items: { type: 'object', properties: { chromosome: { type: 'string' }, position: { type: 'number' }, ref: { type: 'string' }, alt: { type: 'string' }, }, required: ['chromosome', 'position', 'ref', 'alt'], }, minItems: 1, }, chromosome: { type: 'string' }, start: { type: 'number' }, end: { type: 'number' }, }, required: ['variants'], }, };
- src/index.ts:99-101 (registration)MCP ListTools request handler that registers and exposes all tools, including analyze_gwas_locus via ALL_TOOLS import.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: ALL_TOOLS }; });
- src/tools.ts:709-730 (registration)Central registration array ALL_TOOLS that includes ANALYZE_GWAS_LOCUS_TOOL for exposure via MCP ListTools.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, ];
- src/alphagenome-client.ts:316-322 (helper)AlphaGenomeClient helper method that bridges to Python subprocess for 'analyze_gwas_locus' action.async analyzeGwasLocus(params: any): Promise<any> { try { return await this.callPythonBridge('analyze_gwas_locus', params); } catch (error) { if (error instanceof ApiError) throw error; throw new ApiError(`GWAS locus analysis failed: ${error}`, 500); }