用途:通过脚本向 eQTL Catalogue 公共 API 发起精简请求,检索关联数据并访问已记录的元数据端点。
主要能力:所有调用统一使用 scripts/rest_request.py,base_url 固定为 https://www.ebi.ac.uk/eqtl/api。优先使用定向的 association 端点而非宽泛的列表端点。支持 v3/studies、v3/associations、v3/studies/<study_id>/associations 以及带显式过滤条件的旧版 v1/.../associations 路径。
使用方式:从 stdin 读取一个 JSON 对象,必填字段为 base_url 和 path,可选字段包括 method、params、headers、json_body、form_body、record_path、response_format、max_items、max_depth、timeout_sec、save_raw、raw_output_path。示例:echo '{"base_url":"https://www.ebi.ac.uk/eqtl/api","path":"v3/studies","max_items":10}' | python scripts/rest_request.py。默认返回精简 markdown 摘要,仅在用户明确要求机器可读输出时返回原始 JSON。
限制:公开 API 对查询校验较严格,即使使用已记录的参数组合,实测仍会出现间歇性 400/500/超时失败,属于可用但上游较脆弱的数据源。脚本会为 association 端点回填 quant_method、p_lower、p_upper 及空过滤字符串等兼容默认值,因为当前 API 会拒绝省略可选过滤条件。请求中优先使用 variant_id,脚本会将其镜像到旧版 snp 查询键以适配服务端校验器。长对话中应重新发起请求,而非依赖较早的工具输出。上游 400/500 错误会原样呈现。失败时返回 ok=false 及 error.code、error.message;save_raw=true 时使用 raw_output_path。除本文件与 scripts/rest_request.py 外无需额外运行时引用。