下载测序数据 SRA/

目录

要点: 下载和批量下载测序数据的一般流程。

下载GEO/SRA上的测序数据

以下示例适合大多数情况,但不能保证适合你的情况,仅供参考。

1. 准备 (1) 安装软件: SRA Toolkit https://www.ncbi.nlm.nih.gov/sra/docs/sradownload/ 下载 https://github.com/ncbi/sra-tools/wiki 配置 https://github.com/ncbi/sra-tools/wiki/03.-Quick-Toolkit-Configuration https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit # on centOS $ wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.10.9/sratoolkit.2.10.9-centos_linux64.tar.gz $ tar zxvf sratoolkit.2.10.9-centos_linux64.tar.gz $ cd sratoolkit.2.10.9-centos_linux64/ $ echo 'export PATH=/home/wangjl/software/sratoolkit.2.10.9-centos_linux64/bin:$PATH' >> ~/.bashrc $ source ~/.bashrc 设置,否则无法启动下载: $ vdb-config --interactive # test $ prefetch SRR1511730 -O ./ #下载数据的路径 注:aspera 加速 2020.6 年至今不可用,不用折腾了(https://github.com/ncbi/sra-tools/issues/304)。目前只有https慢速下载这一条路可用了。 (2) 准备 SRR id列表 先找到合适的文献,文献中最后会说测序数据放到哪里了,有了GEO编号就可以开始下载数据了。 比如 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE75790 底部有 SRA Run Selector ,点击跳转到SRA。 左侧根据条件做筛选,比如我挑选 scrb-seq,剩下 168 个文件。 右侧 Found 168 Items 勾选前面的对勾,然后上一行的 Selected 168 16.61 Gb 27.14 G 右侧表格的信息显示,SRR3729829 对应的就是 GSM2220384,通过第二列 样本编号 SAMN05326970,可知它的另一端的测序文件是 SRR5197345。 也即是说 我们也要下载 这个表格上面的 Metadata,方便对应上。 单击后面的 Accession List,会下载一个txt文件 SRR_Acc_List.txt ,传到服务器上。 $ head SRR_Acc_List.txt SRR3729829 SRR3729830 SRR3729831 2. 测试几个常用命令: 推荐直接看(3) (1) 下载sra文件 $ prefetch `head -n 1 SRR_Acc_List.txt` 2021-08-23T07:09:59 prefetch.2.10.9: 1) Downloading 'SRR3729829'... 2021-08-23T07:09:59 prefetch.2.10.9: Downloading via HTTPS... 2021-08-23T07:10:13 prefetch.2.10.9: HTTPS download succeed 2021-08-23T07:10:13 prefetch.2.10.9: 'SRR3729829' is valid 2021-08-23T07:10:13 prefetch.2.10.9: 1) 'SRR3729829' was downloaded successfully 2021-08-23T07:10:13 prefetch.2.10.9: 'SRR3729829' has 0 unresolved dependencies 加上输出文件夹,发现和没加一样,因为默认就是当前文件夹。 $ prefetch `head -n 2 SRR_Acc_List.txt | tail -n 1` -O . 2021-08-23T07:10:59 prefetch.2.10.9: 1) Downloading 'SRR3729830'... 2021-08-23T07:10:59 prefetch.2.10.9: Downloading via HTTPS... 2021-08-23T07:11:09 prefetch.2.10.9: HTTPS download succeed 2021-08-23T07:11:09 prefetch.2.10.9: 'SRR3729830' is valid 2021-08-23T07:11:09 prefetch.2.10.9: 1) 'SRR3729830' was downloaded successfully 2021-08-23T07:11:09 prefetch.2.10.9: 'SRR3729830' has 0 unresolved dependencies 发现都是在文件夹内,有一个同名的.sra文件。 $ ls -lth total 12K drwxr-xr-x. 2 wangjl jinwf 4.0K Aug 23 15:11 SRR3729830 drwxr-xr-x. 2 wangjl jinwf 4.0K Aug 23 15:10 SRR3729829 (2) 转sra文件为 fastq 文件 $ fasterq-dump --split-files SRR3729830/SRR3729830.sra spots read : 3,426,841 reads read : 3,426,841 reads written : 3,426,841 $ ls -lht total 545M -rw-r--r--. 1 wangjl jinwf 545M Aug 23 15:13 SRR3729830.fastq (3) 把下载和上传 二合一 警告:一定要先测试,合适了再二合一测试,最后再批量化。 因为有些文件的测序方式很特别,需要特殊处理。有些是一个sra转成.1和.2两个fastq文件。有特殊情况自己百度吧。 $ fasterq-dump -e 20 --split-files `head -n 3 SRR_Acc_List.txt | tail -n 1` spots read : 5,226,718 reads read : 5,226,718 reads written : 5,226,718 -e|threads, 用于选择使用多少线程进行运行,默认是6个线程。 $ ls -lth -rw-r--r--. 1 wangjl jinwf 834M Aug 23 15:19 SRR3729831.fastq (4) 批量化运行 $ cat SRR_Acc_List.txt| while read id; do echo $id; fasterq-dump --split-files -e 10 $id; done 更简单粗暴的办法,是把命令末尾去掉分号加上 空格和 & 符号。全部启动,都后台运行。 fasterq-dump --split-files -e 10 $id & 加上日志文件 fasterq-dump --split-files -e 10 $id 2>logs/${id}.log & 优化版本:多开几个tmux窗口,手动修改head -n 20, 30, ...,一个窗口中下载10个文件。 相当于手动多进程 + 程序内多进程 $ cat SRR_Acc_List.txt | head -n 10 | tail -n 10 | while read id; do echo $id; fasterq-dump --split-files -e 10 $id; done;

参考资料

https://github.com/ncbi/sra-tools/wiki