mcpField
U
ucsc-conservation-and-tfbs

ucsc-conservation-and-tfbs

github.com/google-deepmind数据与数据库3.4k2.1k 次安装5 天前更新
代码仓库

关于 ucsc-conservation-and-tfbs

用于查询 UCSC Genome Browser 保守性评分和转录因子结合位点的研究技能,支持变异解读及调控区域分析,可指定基因组组装版本和比对集。

主要功能

  1. 01获取 phyloP 和 phastCons 评分
  2. 02查询基因组区域中的保守元件
  3. 03分析评分以判断进化加速
  4. 04按所选 UCSC 轨道查找 TFBS
  5. 05按名称或功能组搜索轨道

适用场景

  1. 01评估非编码变异位点的保守性
  2. 02比较保守性峰与调控元件预测
  3. 03检查基因组区间内的转录因子结合位点

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/google-deepmind/science-skills --skill ucsc-conservation-and-tfbs

安装后在 Claude Code 中输入/ucsc-conservation-and-tfbs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
citation.bib
scripts/
get_conservation.py
get_tfbs.py
list_tracks.py

详细介绍

保守性评分与 TFBS 查询(UCSC)

此技能可访问 UCSC Genome Browser 的进化约束评分和保守元件。它从多个比对中获取 PHAST 软件包计算的评分,具体包括 phastCons(识别功能区块)和 phyloP(衡量单个位点的约束)。

使用此技能可判断非编码变异是否命中一个自共同祖先以来从未改变的位点(这是致病性的强烈信号),或查找调控元件中的保守性峰值。

前置条件

  1. uv:阅读 uv 技能,并按照其中的设置说明确保已安装 uv,且其位于 PATH 中。
  2. 用户通知:如果工作区根目录中尚不存在 .licenses/ucsc_conservation_and_tfbs_LICENSE.txt,则 (1) 显著提醒用户查看 https://genome.ucsc.edu/conditions.html 和 https://genome.ucsc.edu/goldenPath/help/api.html 中的条款,然后 (2) 创建该文件,记录通知文本和时间戳。

核心规则

  • 使用封装脚本:始终执行提供的辅助脚本来查询数据库,而不是直接访问数据库。这些脚本会自动平稳地实施所需的速率限制。
  • 处理大型输出:始终使用 --output 将输出重定向到文件。然后单独解析(使用 jq 或自行编写代码)。
  • 通知:如果使用此技能,请确保在输出中提及。

实用脚本

此技能包含用于从 UCSC 查询不同类型基因组数据的脚本:

  1. scripts/get_conservation.py:用于进化保守性评分(phyloP、phastCons)。
  2. scripts/get_tfbs.py:用于转录因子结合位点(TFBS)。
  3. scripts/list_tracks.py:根据搜索条件或组约束列出可用轨道。

除非用户另有指定,否则始终默认使用 hg38 基因组组装。

获取特定变异的保守性

获取单个碱基或一组特定碱基的进化约束。此方法最适合单核苷酸变异(SNV)。对于单个碱基,phyloP 是最佳指标。

uv run scripts/get_conservation.py --coordinates "chr1:215867804" "chr1:215867823" --output /tmp/cons_output.json
获取区域和保守元件

识别非编码调控元件(如增强子)中的“保守性峰值”,以查看 ISM 预测的重要性峰值是否与进化历史相吻合。由于使用了 HMM 平滑,phastCons 最适合功能窗口。--conserved-elements 标志还会获取预先定义的极端约束区块。

uv run scripts/get_conservation.py --coordinates "chr8:11748914-11749085" --conserved-elements --output /tmp/region_cons.json
谱系特异性约束

可以使用 --collection 标志控制进化深度。默认值(vertebrate)对 hg38 和 hg19 均使用 100 种脊椎动物 Multiz 比对,与 UCSC Genome Browser 的默认比较基因组学轨道一致。

hg38 集合
  • vertebrate(默认):UCSC 100 种脊椎动物 Multiz 比对。phyloP: phyloP100way,phastCons:phastCons100way。
  • mammal:Hiller Lab 470 路哺乳动物比对。phyloP: phyloP470wayBW,phastCons:phastCons470way。
  • primate:UCSC 30 种灵长类动物 Multiz 比对。phyloP:phyloP30way, phastCons:phastCons30way。
hg19 集合
  • vertebrate(默认):UCSC 100 种脊椎动物 Multiz 比对。phyloP: phyloP100way,phastCons:phastCons100way。
  • vertebrate46:UCSC 46 种脊椎动物 Multiz 比对(旧版)。phyloP: phyloP46wayAll,phastCons:phastCons46way。
  • mammal:46 路有胎盘哺乳动物子集。phyloP: phyloP46wayPlacental,phastCons:phastCons46wayPlacental。
  • primate:46 路灵长类动物子集。phyloP:phyloP46wayPrimates, phastCons:phastCons46wayPrimates。
# hg38 mammal (Hiller 470-way)
uv run scripts/get_conservation.py --coordinates "chr5:1045330-1046172" --collection mammal --output /tmp/mammal_cons.json

# hg19 with legacy 46-vertebrate alignment
uv run scripts/get_conservation.py --coordinates "chr5:1045330-1046172" --genome hg19 --collection vertebrate46 --output /tmp/vert46_cons.json
分析进化加速

要分析特定基因座是否正在发生进化加速 (即进化速度是否快于中性漂变基线),请使用 --analyze。 这将计算 phyloP 分数的标量统计数据(平均值、最小值、最大值),并 提供启发式布尔值 is_accelerated,方便你进行评估。

uv run scripts/get_conservation.py --coordinates "chr5:1045330-1046172" --analyze --output /tmp/accelerated_cons.json
获取转录因子结合位点(TFBS)

要识别给定基因组区间内的转录因子结合位点。 这有助于解读可能破坏转录因子结合的非编码变异。

运行 scripts/get_tfbs.py,并指定 --coordinates 和 --tracks。你可以同时查询 多个轨道。

uv run scripts/get_tfbs.py --coordinates "chr11:1001000-1010000" --tracks encRegTfbsClustered --output /tmp/tfbs_encode.json

JASPAR 轨道可能会返回非常大的结果集。使用 --tf-filter,仅保留 TFName 字段包含给定子字符串(不区分大小写)的条目:

uv run scripts/get_tfbs.py --coordinates "chr6:36670000-36690000" --tracks jaspar2024 --tf-filter TP53 --output /tmp/tp53_sites.json
常见的已验证轨道(hg38)
  • ENCODE:encRegTfbsClustered(TF 簇)
  • JASPAR:jaspar2026、jaspar2024(预测的 TFBS)
  • ReMap:ReMapTFs(ChIP-seq 图谱)

注意

不带年份的 jaspar 或 ReMap 等轨道通常是“容器”轨道, 使用时会返回 400 错误。请务必使用具体的子轨道名称 (例如 jaspar2026)。

列出可用轨道

要列出可用轨道(例如 JASPAR 的不同版本,或仅用于 查看特定基因组组装有哪些轨道):

uv run scripts/list_tracks.py --search "jaspar" --output /tmp/jaspar_tracks.json

你也可以按功能组筛选:

uv run scripts/list_tracks.py --group "regulation" --output /tmp/regulation_tracks.json

反模式

  • 不要在明确要寻找所有脊椎动物的深层进化根源时,查询哺乳动物(--collection mammal)约束。请使用默认的 vertebrate 集合。
  • 不要使用此技能确定核苷酸的祖先状态重建结果(此技能提供的是位点 变化了多少的度量,而不是祖先核苷酸是什么)。
  • 不要认为保守性低就一定意味着序列中性或无用; 这也可能反映局部突变率较高,而仅凭保守性分数无法区分这两种情况。
  • 不要将输出打印到标准输出,也不要对输出文件运行 cat。输出文件 太大。请使用 jq 或编写自己的代码来解析输出文件。
  • 不要使用 hg19,除非用户明确要求。默认情况下 应始终使用 hg38。

评论

支持 Markdown