- 下载edirect:
为了从 NCBI 的 SRA 数据库中批量检索和下载样本信息,我们首先需要使用 NCBI 提供的命令行工具集 Entrez Direct (edirect)。该工具可以在本地通过命令行直接访问 NCBI 的各类数据库。
使用以下命令从 NCBI 官方 FTP 站点下载 edirect 工具的压缩文件:
下载完成后,解压压缩包以获取相关可执行文件:
curl ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/edirect.zip -o edirect.zip
unzip edirect.zikp
- 提取该项目号的信息
假设我们希望获取与某个 SRA 项目号(例如:PRJNA898313)相关的所有测序运行(RUN)信息,可以使用 esearch 命令结合 efetch 命令提取这些元数据,并将其输出为 CSV 格式:
./edirect/esearch -db sra -query PRJNA898313 | ./edirect/efetch -format runinfo > runinfo.csv
这一步操作会从 SRA 数据库中检索项目编号为 PRJNA898313 的所有记录,并将详细的运行信息(包括运行编号、样本名称、平台、文库类型等)保存为名为 runinfo.csv 的文件,方便后续处理。
3.提取RUNID
在下载数据前,需要先从 runinfo.csv 中提取所有运行编号(Run ID,通常以 SRR 开头),这些编号用于后续的数据下载。
使用以下命令提取第一列并筛选出以 SRR 开头的运行编号:
cat runinfo.csv | cut -d, -f1 | grep SRR > ranids.txt
生成的 ranids.txt 文件中将只包含一列运行编号,每行一个
- 生成下载脚本
有了运行编号之后,我们可以构建一个包含所有 prefetch 命令的下载脚本。prefetch 是 SRA Toolkit 中用于下载原始测序数据的工具。
使用以下命令逐行读取 ranids.txt 中的运行编号并写入下载脚本 download.sh:
cat ranids.txt | while read i ; do echo -e "prefetch $i" >> download.sh; done
生成的 download.sh 脚本中,每行都是一个用于下载对应 SRR 编号数据的命令
5.下载
sh download.sh 或者并行 parallel -j 10 < download.sh
- split (fastq-dump)
数据下载完成后,您可能需要使用 fastq-dump(或 fasterq-dump)将 SRA 格式的文件转换为常用的 FASTQ 格式,并进行后续拆分、比对等分析流程。或者推荐使用更快的工具fasterq-dump