省事地获取已公开测序数据的下载链接(.sra|.fastq.gz)
写在前面
课题需要,前述,在TBtools中开放了一个SraExperimentXML2InfoTable的功能。在这个功能的辅助下,我们较快的完成了阶段任务。筛选数据完成了,但是下载数据却出现了问题。
主要遇到的问题是
NCBI的数据,似乎有时候能下载到,有时候却下载不到。或许网速是一个原因,但我更多地开始认为或许NCBI并没有存储所有的短读段测序数据。DDBJ也是一样。相反ENA似乎存储全面,只是传输速度一般。
无论如何,下载数据的第一步是需要获取数据所在链接。
为了让小课题成员快速获得链接并完成各自的任务,我做了两个小事情。
优化原有功能
对SraExperimentXML2InfoTable工具的输出,增加两列,
NCBI FTP link
DDBJ Potential FTP link
如图
总的来说,NCBI FTP link多数时候是可以下载的;而DDBJ存储的数据确实很少,所以link是Potential的,意思就是,数据很可能并不存在。我个人的经验是,NCBI下载不了的时候,从DDBJ的link却常常可以下载。
But,最优秀的终归还是ENA。如前所述,ENA不仅存储了数据的SRA格式的数据,还存储了Fastq格式。在早前NCBI还没发表fasterq-dump时,直接下载fastq.gz文件的整体耗时明显短于下载SRA格式数据之后用fastq-dump转格式。
虽然现在耗时不相上下,不过下载fastq.gz仍然是一个选择,比如,你并没有fasterq-dump的时候,你却一定会有gzip甚至是pgzip.
Anyway,总会有某种情况,我们会需要从ENA下载数据,无论是SRA格式还是DDBJ格式。正如我们本次课题遇到的情况。所以TBtools增加一个功能
基于SRRnum获取ENA links信息
ENA存储测序数据,并没有绝对的规律,部分数据有专门的目录,部分数据放在不同深度的目录。故,无法通过像NCBI或者DDBJ一样的操作去拼接链接。而只有两个操作:
爬虫,解析整个ENA的FTP,获得并保存文件地址
爬虫,针对给定的SRR获取其对应的信息
第一个操作比较重,很多时候也没必要。于是我采用的是第二个操作。花了大半个小时,顺带打了GUI
打开TBtools,跳转到对应功能
设置输入文件,图中可见,准备一个txt文本文件,每行一个SRR number,保存并用做输入;设置输出文件是,注意补齐文件名。
为了避免被ENA封杀IP,操作是大概每个SRRnumber信息获取后等待1~3s,所以输入100个SRRnum可能需要花5min才能将信息获取完毕。
信息获取完毕后会有弹窗提示,所以此时最好去玩一局贪吃蛇。
OK,弹窗时,贪吃蛇是没有暂停的(所以一定会Game Over),用Excel打开结果文件
可以看到,左侧即为fastq.gz文件下载链接(推荐用aria2c或者迅雷,IDM下载),右侧为sra格式文件
写在后面
Done. 节后开工第一天。
祝大家科研顺利。
题外
课题组每年暑期有内部生信入门培训,主要是对实验室新生开展(以及湿实验为主的成员)培训。一直有收到其他课题组想要了解我们课题组生信数据分析的想法。故,在博导的提议和课题组的讨论后,我们近期计划,在本年度暑期(7~8月份之间)对外增设生信基础培训名额10枚(前面每年只是课题组内培训,而不对外)。具体请见https://mp.weixin.qq.com/s/OtmeTErd9f9rvjJPtBKjMw