Skip to content

下载基因组数据

约 878 个字 26 行代码 预计阅读时间 3 分钟

工具预备

使用工具: sra-toolsaspera 两者皆可。

sra-tools官方仓库: https://github.com/ncbi/sra-tools

可以直接访问 README.md 中的下载页面下载预构建的文件、适用于Debian/Ubuntu的安装脚本或者docker镜像。

我是直接下载了相应脚本.

 wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.2.1/setup-apt.sh
 sh setup-apt.sh

aspera 官方下载页: https://www.ibm.com/products/aspera/downloads

 wget https://d3gcli72yxqn2z.cloudfront.net/downloads/connect/latest/bin/ibm-aspera-connect_4.2.16.884-HEAD_linux_x86_64.tar.gz
 tar -zxvf ibm-aspera-connect_4.2.16.884-HEAD_linux_x86_64.tar.gz 
 ./ibm-aspera-connect_4.2.16.884-HEAD_linux_x86_64.sh
# 换成你的shell配置文件
 echo 'export PATH=~/.aspera/connect/bin/:$PATH' >> ~/.zshrc
 source ~/.zshrc

Aspera 的下载链接为截止2025-09-02的最新版本,请自行前往官网确认是否有更新的版本发布。

Aspera 也可以通过conda安装。

 conda install hcc::aspera-cli

Aspera 4.2 版本后需要添加 SSH 密钥来校验,这本质上和 SSH 无密钥登录是一个概念。

比较推荐的做法是为 Aspera 专门生成一对公私钥。

 ssh-keygen -f '~/.ssh/aspera-key' -t ed25519 -C "your_name@your_email.com"

使用 Aspera 的时候请导入你的私钥 ~/.ssh/aspera-key,有时候数据库服务器需要你提供你的公钥给他们,公钥为~/.ssh/aspera-key.pub

下载数据

通过 sra-tools

查询数据库:GEO 编号 -> SRA 编号(获取特定实验的数据清单)

GEO 数据库: https://www.ncbi.nlm.nih.gov/geo/ SRA 数据库: https://www.ncbi.nlm.nih.gov/sra/

通过 GEO 编号查询 GEO 数据库内的相应数据文件,得到其在 SRA 数据库内的 SRA 编号(通常在 Relation 内),再于 SRA 数据库内通过 SRA 编号检索相应的数据文件。

Short Read Archive (SRA)

NCBI提供的数据存储服务,存储海量的公开的高通量测序数据。

关键字 特征 举例 描述
BioProject PRJN+数字 PRJNA257197 包含单一研究计划的总体描述;项目通常涉及多个样本和数据集。
BioSample SRS+数字 SRS803979 描述生物来源材料;每个物理上独特的标本应注册为具有一组独特属性的单个BioSample
SRA Run SRR+数字 SRR1553610 是链接到给定测序库(实验)的数据文件的清单。
SRA实验 SRX+数字 SRX824363 是特定样品的独特测序文库

在检索结果的页面上,点击send to,选择File,Format选择Access List,获得一个SraAccList.txt文本,里面记录了SRR编号。

SRR编号用于prefetch命令来下载相应的数据文件。

实现批量下载可以使用脚本语言。

# 定义一个存放数据的路径
output = /tmp/data/xxx/rawdata

# 创建一个批量下载的脚本
cat SraAccList.txt | while read id 
do 
    echo "prefetch ${id} -O ${output}"
done > download.sh

# 执行脚本,考虑到下载需要时间,可以后台运行 (nohup 在终端关闭后不会中断下载任务)
nohup sh download.sh > download.log &

通过 aspera

ENA 数据库官网: https://www.ebi.ac.uk/ena/browser/home

利用PRJN开头的项目在ENA数据库内检索对应的项目数据文件,在Show Column Selection中选择需要下载的数据格式的链接(例如FASTQ等等),但是一定要勾选相应的MD校验值!!!

选择TSV后下载文件,获得相应数据文件的信息与下载链接。

以下是一个命令的参考。

 ascp -k 1 -QT -l 300m -P33001 -i /path/to/your/ssh_private_key your_download_link /path/to/the/file/download
参数 描述
-Q 启用-Q或-QQ传输策略,使用-l和-m来设定目标和最低传输速度。
-T 取消加密传输。。
-i 输入私钥
-l 设置最大传输速度,比如设置为 200M 则表示最大传输速度为 200m/s。若不设置该参数,则一般可达到10m/s的速度
-k 表示断点续传,通常设置为1即可
--host ftp的host名,NCBI的为ftp-private.ncbi.nlm.nih.gov;EBI的为fasp.sra.ebi.ac.uk。
--user 用户名,NCBI的为anonftp,EBI的为era-fasp。
--mode 选择模式,上传为 send,下载为 recv。

有关于批量下载的待补充。

MD5校验和

哈希函数,启动!

通过 MD5 检验文件是否损坏是必要的,避免做到后面结果一坨发现是数据的问题。

md5sum命令带有-c选项,允许传入一个文本文件来自动校验,文本文件的格式要求为:

<file_md5_sum>  <file_path>
<file_md5_sum>  <file_path>
<file_md5_sum>  <file_path>
...

注意两列之间以制表符\t相隔!