从SRA下载公共测序数据

从SRA下载公共测序数据
TL;DR: 使用 sra-toolkit(特别是 prefetch + fasterq-dump)下载原始测序数据。对于10x单细胞数据,确保正确拆分文件,或者在有条件时下载原始的BAM文件。
什么是SRA?
序列读段存档(Sequence Read Archive, SRA) 是由NCBI托管的最大的原始测序数据公共存储库。要复现一项研究或重新分析数据,通常需要从这里开始。
关键工具:
- SRA Toolkit: 官方的命令行工具套件(
prefetch,fasterq-dump,fastq-dump)。 - SRA Explorer: 用于查找直接下载链接的第三方网络工具。
- Kingfisher: 快速、多源下载器。
方法一:官方SRA Toolkit(推荐)
1. 安装
Conda(最简单):
conda install -c bioconda sra-tools
验证:
fastq-dump --version
2. 配置(一次性)
在开始之前,将下载路径配置到具有充足空间的驱动器(FASTQ文件非常大!)。
vdb-config -i
导航到“Cache”选项卡并设置目录(例如,/data/sra_cache)。
3. 获取登录号列表
在SRA网站上找到你的研究。你需要SRR(运行)登录号(例如,SRR13644607)。
创建一个文件 SRR_Acc_List.txt:
SRR13644607
SRR13644608
SRR13644609
提示: 使用NCBI网站上的
SRA Run Selector可以自动下载此列表。
4. 两步下载流程
步骤A:预取(下载.sra文件)
这比直接下载FASTQ文件更可靠。
# 下载单个运行
prefetch SRR13644607
# 从列表批量下载
prefetch --option-file SRR_Acc_List.txt
步骤B:转换为FASTQ
使用fasterq-dump(多线程,比fastq-dump更快的替代工具)。
# 基本用法(标准RNA-seq)
fasterq-dump --split-files --progress SRR13644607.sra
# 循环处理所有已下载的文件
for sra in */*.sra; do
fasterq-dump --split-files --progress "$sra"
done
| 标志 | 用途 |
|---|---|
--split-files |
将双端读段拆分为_1.fastq和_2.fastq |
--include-technical |
保留索引读段(对单细胞测序至关重要) |
--progress |
显示进度条 |
--threads 8 |
使用8个CPU核心(默认为6) |
特殊情况:10x单细胞数据
10x Genomics数据较为复杂。单个“运行”通常包含:
- R1: 细胞条形码 + UMI(26-28bp)
- R2: cDNA插入片段(90bp+)
- I1/I2: 样本索引(8-10bp)
关键: 你必须包含技术读段才能获取条形码!
fasterq-dump --split-files --include-technical SRR13644607.sra
预期输出
如果成功,你会得到3或4个文件:
SRR..._1.fastq: I1(索引)SRR..._2.fastq: R1(条形码/UMI)SRR..._3.fastq: R2(cDNA)
验证: 根据长度检查前几行,以识别哪个文件对应哪个读段。
# 检查第一个读段的长度
head -n 2 SRR*_1.fastq | tail -n 1 | wc -c
| 读段长度 | 身份 |
|---|---|
| 8-10 bp | 样本索引(I1/I2) |
| 26-28 bp | 细胞条形码 + UMI(R1) |
| 90+ bp | cDNA / 转录本(R2) |
故障排除与替代方案
问题:"fasterq-dump处理10x数据失败"
有时fasterq-dump会错误地拆分10x数据文件。
解决方案1:下载原始BAM文件
提交者通常会上传原始的10x BAM文件。检查SRA元数据中是否有"10x Genomics bam file"。
# 直接下载BAM
prefetch --type bam --max-size u SRR13644617 -O ./outs/
# 将BAM转换回FASTQ(使用cellranger bamtofastq)
bamtofastq SRR13644617.bam ./fastqs
解决方案2:使用Kingfisher
Kingfisher会尝试多个来源(ENA, AWS, SRA)以找到最快的下载方式。
# 安装
conda install -c bioconda kingfisher
# 运行
kingfisher get -r SRR13644607 -m separate
解决方案3:SRA Explorer
使用sra-explorer.info为FASTQ文件生成直接的FTP/curl链接(通常由ENA托管),完全绕过SRA工具包。
理解FASTQ格式
每个读段由4行组成:
@SRR13644607.1 unique_instrument_id length=91 <-- 头部(ID)
NCCCATCCCCCCTTATTTATGGGGCTTTCTGTGTAGCTTT... <-- 序列
+SRR13644607.1 unique_instrument_id length=91 <-- 分隔符
#-----CCC--;-;C--;--;CC-;-CCCC;CC-CC;C;;... <-- 质量分数
头部解析: @Instrument:Run:Flowcell:Lane:Tile:X:Y
这精确地告诉你这个簇在物理流动池上的位置。
另请参阅: