从SRA下载公共测序数据

· Analysis Notes

从SRA下载公共测序数据

从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
这精确地告诉你这个簇在物理流动池上的位置。


另请参阅:

SRA Troubleshooting