跳转至

IGV 基因组浏览器

IGV(Integrative Genomics Viewer)是最主流的基因组数据可视化工具,能直观地查看 BAM 比对、VCF 变异、BED 区域等各种基因组数据,是生信分析中"用眼睛看数据"的必备工具。

核心知识点

知识点说明
工具定位高性能基因组数据交互式可视化工具
最新版本v2.19.7(需要 Java 21+)
开发团队UC San Diego + Broad Institute
许可证MIT License
核心功能可视化 BAM、VCF、BED、BigWig 等各种基因组数据
支持格式BAM/CRAM/SAM、VCF/BCF、BED、GFF/GTF、BigWig、FASTA 等
生态系统IGV Desktop、igv.js(网页版)、igv-reports(批量报告)
新功能CRAM 3.1 支持、大 BigBed 支持、本地基因组下载

安装配置

方法一:官网下载(推荐)

# 从官网下载适合你系统的版本
# https://igv.org/doc/desktop/DownloadPage/

# Linux 版本下载
wget https://data.broadinstitute.org/igv/projects/downloads/2.19/IGV_Linux_2.19.7_WithJava.sh
bash IGV_Linux_2.19.7_WithJava.sh     # 运行安装器

# 下载带 Java 的版本可以避免 Java 版本问题

方法二:Conda 安装

conda install -c bioconda igv         # 安装 IGV
igv                                    # 启动 IGV

方法三:命令行版本(无GUI环境用)

# 安装 igv-reports(用于生成批量 HTML 报告)
pip install igv-reports               # 安装 igv-reports

系统要求

# IGV 2.19.1+ 需要 Java 21 或更高
java -version                          # 检查 Java 版本

# 如果 Java 版本不对,下载带 Java 的 IGV 版本
# 或者安装 Java 21
# conda install -c conda-forge openjdk=21

基本使用

1. 启动 IGV 并加载基因组

# 命令行启动 IGV
igv                                    # 启动 IGV 图形界面

# 或者带参数启动
igv --genome hg38                      # 启动并加载 hg38 基因组

在 IGV 界面中: 1. 选择参考基因组:顶部下拉菜单选择(如 Human (hg38)) 2. 加载数据文件:File → Load from File → 选择 BAM/VCF/BED 文件 3. 导航:在搜索框输入基因名或坐标(如 chr1:100000-200000TP53

2. 加载常用文件类型

# BAM 文件(需要 .bai 索引在同目录下)
# 确保 BAM 文件已排序并建索引
samtools sort input.bam -o sorted.bam     # 排序
samtools index sorted.bam                  # 建索引(生成 .bai 文件)
# 然后在 IGV 中加载 sorted.bam

# VCF 文件(需要 .tbi 索引)
bgzip variants.vcf                        # 压缩
tabix -p vcf variants.vcf.gz             # 建索引
# 然后在 IGV 中加载 variants.vcf.gz

# BED 文件(可选排序和索引)
sort -k1,1 -k2,2n regions.bed > sorted.bed  # 排序
# 直接加载即可

3. 常用导航操作

界面操作速查:
- 搜索框输入: chr1:100000-200000   → 跳转到指定坐标
- 搜索框输入: TP53                  → 跳转到基因
- 鼠标滚轮: 放大/缩小
- 鼠标拖拽: 左右平移
- 双击读长: 查看读长详细信息
- 右键轨道: 调整显示选项

快捷键:
- Ctrl + F      全文搜索
- Ctrl + G      跳转到坐标
- +/-           放大/缩小
- Home          缩放到全基因组视图
- Ctrl + S      保存截图

高级用法

1. 批处理脚本(无GUI自动化)

# 用 IGV 的 batch 模式自动截图
cat > igv_batch.txt << 'EOF'
new
genome hg38
load sorted.bam
load variants.vcf.gz
goto TP53
snapshot tp53_region.png
goto BRCA1
snapshot brca1_region.png
exit
EOF

# 运行 batch 脚本
igv -b igv_batch.txt               # 自动执行并截图

2. 常用 batch 命令

# IGV batch 命令参考
# new                              新建会话
# genome <id>                      加载基因组
# load <file>                      加载数据文件
# goto <locus>                     跳转到位置
# region <chr> <start> <end>       定义感兴趣区域
# snapshot <filename>              截图保存
# sort <option>                    排序读长(base/quality/strand/...)
# collapse                         折叠显示
# expand                           展开显示
# squish                           压缩显示
# group <option>                   分组显示
# colorBy <option>                 着色方式
# maxPanelHeight <n>               面板最大高度
# setSleepInterval <ms>            操作间隔
# exit                             退出

3. igv-reports 生成 HTML 报告

# 用 igv-reports 为变异位点生成可分享的 HTML 报告
pip install igv-reports              # 安装

# 为 VCF 中的每个变异生成可视化报告
create_report \
  variants.vcf.gz \                  # 变异文件
  ref.fa \                           # 参考基因组
  --tracks sorted.bam \              # 比对数据
  --output report.html               # 输出 HTML 报告

# 生成的 HTML 可以直接在浏览器中查看
# 不需要安装 IGV,非常适合分享给同事

4. igv.js 网页嵌入

<!-- 在网页中嵌入 IGV 浏览器 -->
<div id="igv-div"></div>
<script src="https://cdn.jsdelivr.net/npm/igv@3.7.0/dist/igv.min.js"></script>
<script>
// 创建 IGV 浏览器实例
var options = {
    genome: "hg38",                    // 参考基因组
    locus: "chr8:127,736,588-127,739,371",  // 初始位置
    tracks: [
        {
            type: "alignment",         // BAM 轨道
            format: "bam",
            url: "https://example.com/sorted.bam",
            indexURL: "https://example.com/sorted.bam.bai",
            name: "Sample BAM"
        }
    ]
};

// 渲染到页面
igv.createBrowser(document.getElementById('igv-div'), options);
</script>

5. 查看特定类型数据的技巧

=== BAM 文件查看技巧 ===
1. 右键 BAM 轨道 → Color alignments by → Insert size  查看异常插入片段
2. 右键 → Group alignments by → Read pair orientation  检查结构变异
3. 右键 → Sort alignments by → Base  在变异位点排序查看支持/反对读长
4. 右键 → Show soft clips  显示软裁剪序列

=== VCF 文件查看技巧 ===
1. 点击变异标记查看详细信息(等位基因频率、深度等)
2. 配合 BAM 文件一起看,验证变异的可靠性

=== RNA-seq 数据 ===
1. 用 Sashimi Plot 查看剪接事件
2. 右键 → Sashimi Plot  显示外显子连接和读长覆盖

常见报错与解决

报错信息原因解决方法
Index file not foundBAM/VCF 没有索引文件samtools indextabix 建索引
Java version errorJava 版本低于 21安装 Java 21 或下载带 Java 的 IGV
内存不足 / 卡顿加载了太大的文件只查看感兴趣的区域,不要加载全基因组
看不到读长缩放级别太高(全基因组视图)放大到具体区域(< 1Mb)
BAM 显示空白BAM 文件未排序samtools sort 排序
颜色看不懂不了解颜色编码红色=正向链,蓝色=反向链,灰色=正常

速查表

# ===== IGV 速查表 =====

# 安装
# 官网下载:https://igv.org/doc/desktop/DownloadPage/
conda install -c bioconda igv          # conda 安装
pip install igv-reports                 # 安装报告工具

# 启动
igv                                     # 启动 GUI
igv --genome hg38                       # 指定基因组启动
igv -b batch.txt                        # 批处理模式

# 文件准备
samtools sort in.bam -o sorted.bam      # 排序 BAM
samtools index sorted.bam               # 建 BAM 索引
bgzip variants.vcf && tabix -p vcf variants.vcf.gz  # 压缩并索引 VCF

# Batch 命令
# genome hg38        加载基因组
# load file.bam      加载文件
# goto TP53           跳转到基因
# snapshot out.png    截图
# exit                退出

# igv-reports(生成 HTML 报告)
create_report variants.vcf.gz ref.fa \
  --tracks sorted.bam --output report.html

# 快捷键
# Ctrl+G    跳转坐标
# +/-       放大缩小
# Ctrl+S    截图
# Home      全基因组视图

# 颜色编码
# 灰色      正常比对
# 红/蓝     正向/反向链
# 白色间隙   删除(deletion)
# 紫色      插入(insertion)
# 彩色碱基   与参考不同的碱基(可能是变异)