Shasta — 超快速 ONT 基因组组装工具¶
一句话说明¶
Shasta 是一个极速 ONT 长读段基因组组装工具,人类基因组仅需几小时(而 Canu 需要数天),通过将读段用 marker k-mer 表示来大幅减少计算量,适合需要快速出结果的场景。
安装与配置¶
# 方法1:conda 安装(推荐)
conda install -c bioconda shasta # 从 bioconda 安装
# 方法2:直接下载预编译版本
wget https://github.com/paoloshasta/shasta/releases/download/0.12.0/shasta-Linux-0.12.0
chmod +x shasta-Linux-0.12.0 # 添加执行权限
mv shasta-Linux-0.12.0 shasta # 重命名
# 验证安装
shasta --version # 当前最新 0.12.0(2024年)
特点¶
- 极快:人类基因组约 2-5 小时(40x ONT 数据)
- 内存需求大:人类基因组约 128-256GB RAM
- 需要使用内存文件系统(/dev/shm)获得最佳性能
核心用法¶
基本组装¶
# 基本 ONT 组装
shasta \
--input ont_reads.fq.gz \ # ONT 读段(支持 FASTA/FASTQ/gz)
--assemblyDirectory shasta_output # 输出目录
# 使用预设配置(推荐,针对不同数据类型优化)
shasta \
--input ont_reads.fq.gz \
--config Nanopore-R10-Fast \ # R10 流通池快速模式
--assemblyDirectory shasta_output
# 指定线程数
shasta \
--input ont_reads.fq.gz \
--config Nanopore-R10-Fast \
--threads 32 \ # 32 线程
--assemblyDirectory shasta_output
进阶用法¶
# 使用内存文件系统加速(推荐,速度提升 2-3 倍)
shasta \
--input ont_reads.fq.gz \
--config Nanopore-R10-Fast \
--assemblyDirectory shasta_output \
--memoryMode filesystem \ # 使用文件系统存储中间数据
--memoryBacking disk # 用磁盘(默认用 /dev/shm 共享内存)
# 高质量 ONT 数据(Q20+)配置
shasta \
--input ont_hq_reads.fq.gz \
--config Nanopore-R10-Slow \ # 慢速但更准确
--threads 32 \
--assemblyDirectory shasta_hq_output
# 调整覆盖度参数(高覆盖度数据)
shasta \
--input ont_reads.fq.gz \
--config Nanopore-R10-Fast \
--Reads.minReadLength 5000 \ # 只用 >=5kb 的读段
--threads 32 \
--assemblyDirectory shasta_output
# 组装后 polishing
# Shasta 组装精度不如 Flye,通常需要 polishing
# 用 Medaka(ONT 官方 polishing 工具)
medaka_polish \
-i ont_reads.fq.gz \ # 原始 ONT 读段
-d shasta_output/Assembly.fasta \ # Shasta 组装结果
-o medaka_output \
-t 16
可用预设配置¶
# 查看所有可用预设
shasta --listConfigurations
# 常用预设:
# Nanopore-R10-Fast — R10 流通池快速模式(推荐日常使用)
# Nanopore-R10-Slow — R10 流通池慢速高精度
# Nanopore-R9-Fast — R9 流通池快速模式
# Nanopore-UL-Dec2023 — Ultra-long 读段优化
常见问题与踩坑¶
问题1:内存不足¶
原因:Shasta 默认使用共享内存(/dev/shm),需要大量 RAM
解决:用 --memoryMode filesystem --memoryBacking disk 切换到磁盘模式(牺牲速度)
问题2:组装精度不够高¶
原因:Shasta 追求速度,精度不如 Flye/Canu
解决:组装后必须用 Medaka polishing,必要时再用 Pilon + Illumina 二次 polish
问题3:选哪个 config 预设¶
建议:R10 流通池用 Nanopore-R10-Fast;追求质量用 Nanopore-R10-Slow;Ultra-long 读段用 Nanopore-UL-Dec2023
问题4:Shasta vs Flye 怎么选¶
Shasta 优势:速度极快(Flye 的 3-5 倍),适合快速筛选和大批量样本
Flye 优势:组装质量更高,内存需求更低
建议:需要快速初步结果用 Shasta + Medaka;追求最终质量用 Flye
速查卡片¶
| 命令/参数 | 用途 |
|---|---|
shasta --input reads.fq --assemblyDirectory out | 基本组装 |
--config Nanopore-R10-Fast | R10 快速预设 |
--config Nanopore-R10-Slow | R10 高精度预设 |
--threads 32 | 线程数 |
--memoryBacking disk | 使用磁盘(省内存) |
--Reads.minReadLength 5000 | 最短读段过滤 |
--listConfigurations | 列出所有预设 |
Assembly.fasta | 主要输出文件 |
Assembly.gfa | 组装图文件 |
AssemblySummary.csv | 组装统计摘要 |