AlphaGenome的简单使用方法

AlphaGenome 使用指南

AlphaGenome 是一个强大的 DNA 序列预测模型,可以从 DNA 序列中预测多种基因组功能输出。本指南总结了其主要功能和使用方法。

安装和导入

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装
! pip install alphagenome

# 主要导入
from alphagenome.data import gene_annotation
from alphagenome.data import genome
from alphagenome.data import transcript as transcript_utils
from alphagenome.interpretation import ism
from alphagenome.models import dna_client
from alphagenome.models import variant_scorers
from alphagenome.visualization import plot_components
import matplotlib.pyplot as plt
import pandas as pd

模型初始化

1
2
# 创建DNA模型客户端
dna_model = dna_client.create('YOUR_API_KEY')

支持的输出类型

AlphaGenome 支持多种基因组功能预测:

1
2
3
# 查看所有支持的输出类型
[output.name for output in dna_client.OutputType]
# 包括:DNASE, RNA_SEQ, CAGE, H3K4ME3, H3K27AC 等

支持的序列长度

1
2
3
# 查看支持的序列长度
dna_client.SUPPORTED_SEQUENCE_LENGTHS.keys()
# 包括:2KB, 8KB, 32KB, 128KB, 1MB 等

主要功能

1. DNA 序列预测

对给定的 DNA 序列进行功能预测:

1
2
3
4
5
6
7
8
9
output = dna_model.predict_sequence(
sequence='GATTACA'.center(2048, 'N'), # 填充到有效长度
requested_outputs=[dna_client.OutputType.DNASE],
ontology_terms=['UBERON:0002048'], # 肺组织
)

# 获取预测结果
dnase = output.dnase
print(f"预测形状: {dnase.values.shape}") # (序列长度, 轨道数)

2. 基因组区间预测

直接对人类参考基因组的特定区间进行预测:

1
2
3
4
5
6
7
8
9
10
# 根据基因符号获取基因组区间
interval = gene_annotation.get_gene_interval(gtf, gene_symbol='CYP2B6')
interval = interval.resize(dna_client.SEQUENCE_LENGTH_1MB)

# 进行预测
output = dna_model.predict_interval(
interval=interval,
requested_outputs=[dna_client.OutputType.RNA_SEQ],
ontology_terms=['UBERON:0001114'], # 右肝叶
)

3. 变异效应预测

预测基因变异对基因表达的影响:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 定义变异
variant = genome.Variant(
chromosome='chr22',
position=36201698,
reference_bases='A',
alternate_bases='C',
)

# 预测变异效应
variant_output = dna_model.predict_variant(
interval=interval,
variant=variant,
requested_outputs=[dna_client.OutputType.RNA_SEQ],
ontology_terms=['UBERON:0001157'], # 结肠横部
)

# 比较REF和ALT预测
ref_predictions = variant_output.reference.rna_seq
alt_predictions = variant_output.alternate.rna_seq

4. 变异评分

使用预定义的评分器对变异进行评分:

1
2
3
4
5
6
7
8
9
10
11
# 使用推荐的变异评分器
variant_scorer = variant_scorers.RECOMMENDED_VARIANT_SCORERS['RNA_SEQ']

variant_scores = dna_model.score_variant(
interval=interval,
variant=variant,
variant_scorers=[variant_scorer]
)

# 获取整理后的评分
tidy_scores = variant_scorers.tidy_scores([variant_scores[0]], match_gene_strand=True)

5. In Silico 突变分析 (ISM)

系统性突变特定区域以识别功能重要位点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 定义突变区间
sequence_interval = genome.Interval('chr20', 3_753_000, 3_753_400)
sequence_interval = sequence_interval.resize(dna_client.SEQUENCE_LENGTH_2KB)
ism_interval = sequence_interval.resize(256)

# 定义评分器
dnase_variant_scorer = variant_scorers.CenterMaskScorer(
requested_output=dna_client.OutputType.DNASE,
width=501,
aggregation_type=variant_scorers.AggregationType.DIFF_MEAN,
)

# 执行ISM分析
variant_scores = dna_model.score_ism_variants(
interval=sequence_interval,
ism_interval=ism_interval,
variant_scorers=[dnase_variant_scorer],
)

数据结构

TrackData 对象

预测结果存储在 TrackData 对象中:

  • .values: 预测值数组,形状为 (序列长度, 轨道数)
  • .metadata: 轨道元数据,描述每个轨道的组织/细胞类型
  • .interval: 基因组区间信息

AnnData 对象

变异评分结果存储在 AnnData 对象中:

  • .X: 评分矩阵
  • .obs: 行(基因)注释
  • .var: 列(轨道)注释
  • .uns: 额外元数据

可视化

使用内置可视化工具绘制预测结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 绘制轨道和转录本注释
plot_components.plot(
components=[
plot_components.TranscriptAnnotation(longest_transcripts),
plot_components.Tracks(output.rna_seq),
],
interval=output.rna_seq.interval,
)
plt.show()

# 绘制变异效应对比
plot_components.plot(
[
plot_components.TranscriptAnnotation(longest_transcripts),
plot_components.OverlaidTracks(
tdata={'REF': variant_output.reference.rna_seq,
'ALT': variant_output.alternate.rna_seq},
colors={'REF': 'dimgrey', 'ALT': 'red'},
),
],
interval=variant_output.reference.rna_seq.interval.resize(2**15),
annotations=[plot_components.VariantAnnotation([variant], alpha=0.8)],
)

小鼠预测

AlphaGenome 也支持小鼠基因组预测:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 小鼠序列预测
output = dna_model.predict_sequence(
sequence='GATTACA'.center(2048, 'N'),
organism=dna_client.Organism.MUS_MUSCULUS,
requested_outputs=[dna_client.OutputType.DNASE],
ontology_terms=['UBERON:0002048'], # 肺
)

# 小鼠基因组区间预测
interval = genome.Interval('chr1', 3_000_000, 3_000_001).resize(
dna_client.SEQUENCE_LENGTH_1MB
)

output = dna_model.predict_interval(
interval=interval,
organism=dna_client.Organism.MUS_MUSCULUS,
requested_outputs=[dna_client.OutputType.RNA_SEQ],
ontology_terms=['UBERON:0002048'], # 肺
)

关键特性

  1. 多模态预测: 支持 DNase-seq、RNA-seq、CAGE、组蛋白修饰等多种基因组功能
  2. 组织特异性: 通过本体术语指定特定组织和细胞类型
  3. 多尺度分析: 支持从 2KB 到 1MB 的多种序列长度
  4. 变异影响评估: 系统评估基因变异的功能后果
  5. 功能重要性映射: 通过 ISM 分析识别功能关键区域
  6. 跨物种支持: 同时支持人类和小鼠基因组预测
  7. 丰富的可视化: 内置专业的基因组数据可视化工具

AlphaGenome 为基因组功能预测、变异效应分析和转录调控研究提供了强大而全面的工具集。


AlphaGenome的简单使用方法
https://lixiang117423.github.io/article/alphagenome/
作者
李详【Xiang LI】
发布于
2025年6月29日
许可协议