gtex-eqtl-skill

作者: openai

通过接受rsID、GRCh37或GRCh38输入,解析为所需的GRCh38查询,从单个变异输入中获取GTEx单组织eQTL关联。

npx skills add https://github.com/openai/plugins --skill gtex-eqtl-skill

Operating rules

  • Use Python requests for all network calls.
  • Accept exactly one of rsid, grch37, grch38, or variant, and resolve to a GRCh38 chrom-pos-ref-alt query.
  • Convert to GTEx variantId format: chr{chrom}_{pos}_{ref}_{alt}_b38.
  • Always return one JSON object (no markdown) as final output.

Input

Accept JSON on stdin as either:

  • A string: "10-112998590-C-T" (treated as GRCh38)
  • An object:
{
  "grch38": "10-112998590-C-T",
  "max_results": 200
}

Other accepted object forms include:

{
  "grch37": "10-114758349-C-T"
}
{
  "rsid": "rs7903146",
  "max_results": 50
}

Allowed variant separators include -, :, _, /, or whitespace, for example:

  • 10-112998590-C-T
  • 10:112998590-C-T
  • 10:112998590:C:T
  • chr10 112998590 C T

max_results is optional and truncates returned eQTL rows when provided.

Output

Success shape:

{
  "ok": true,
  "source": "gtex-v2",
  "input": {"type": "grch38", "value": "10-112998590-C-T"},
  "query_variant": {
    "chr": "10",
    "pos": 112998590,
    "ref": "C",
    "alt": "T",
    "canonical": "10:112998590-C-T",
    "variant_id": "chr10_112998590_C_T_b38"
  },
  "eqtl_count": 2,
  "eqtl_count_total": 2,
  "truncated": false,
  "eqtls": [],
  "paging_info": {},
  "warnings": []
}

Failure shape:

{
  "ok": false,
  "error": {"code": "...", "message": "..."},
  "warnings": []
}

Execution

Use:

  • scripts/gtex_eqtl.py

The script reads JSON from stdin and prints JSON to stdout.

Example:

echo '{"grch38":"10-112998590-C-T","max_results":5}' | python scripts/gtex_eqtl.py