手把手教会高速下载SRA数据

一、SRA数据结构

SRA(Sequence Read Archive)数据包括下面四级。

NCBI BioProject:PRJN**** ,是单个研究计划,可能包含多个样本和数据集。

SRA Experiment: SRX****,一个实验的数据集,含有多个样本Sample。

NCBI BioSample: SAMN**** 或者SRS**** ,每一个独立的样本都会被注册为一个BioSample,用于标注样本的标签和属性。

SRA Run: SRR**** 或者ERR****,一个样本的序列库,即样本测序数据。一个SRX一般会有1个或多个SRA Run。

二、和GEO的关系

GEO数据分为两级,GEO数据库将高通量测序的原始数据上传到SRA数据库。

GSE(GEO Series) : 是一个研究的数据集,一个GSE数据集对应一个PRJN数据。

GSM(GEO sample):每个样本具有一个特有的GSM号,每一个GSM对应一个SRX数据(有时也会有多个)。

三、SRA数据下载实例

以这篇2015年发表在CELL上的文章为例

可以看到,这篇文章数据分为两个GSE

这里只演示GSE71275数据的下载

1)可以依次点开每一个GSM,获取每一个SRR号;

optional:使用命令批量获取数据的SRR号

  1. #需要先安装esearch,efetch,可以用conda安装
  2. #下载runinfo
  3. esearch -db sra -query PRJNA290779 | efetch -format runinfo > runinfo.csv
  4. #提取其中的SRR
  5. cat runinfo.csv | cut -d, -f1 | grep SRR > ranids.txt
  6. #查看获得的SRR号
  7. cat ranids.txt
  8. SRR2125156
  9. SRR2125157
  10. SRR2125158
  11. SRR2125159
  12. #可以查看更多信息,比如数据大小,类型,单端还是双端测序等
  13. cat runinfo.csv | cut -d, -f1,8,13,16
  14. Run,size_MB,LibraryStrategy,LibraryLayout
  15. SRR2125156,1090,RNA-Seq,SINGLE
  16. SRR2125157,1114,RNA-Seq,SINGLE
  17. SRR2125158,1225,RNA-Seq,SINGLE
  18. SRR2125159,1161,RNA-Seq,SINGLE

不过runinfo中并没有样本名称和SRR的对应关系,可以通过一下命令获取

  1. #需要先安装xtract
  2. #先下载信息
  3. esearch -db sra -query PRJNA290779 | efetch -format docsum > docsum.txt
  4. #提取有用信息
  5. cat docsum.txt | xtract -pattern DocumentSummary -element Title,Bioproject,Biosample,Run@acc
  6. GSM1831735: HS5-1 Inversion rep2; Homo sapiens; RNA-Seq PRJNA290779 SAMN03897346 SRR2125159
  7. GSM1831734: HS5-1 Inversion rep1; Homo sapiens; RNA-Seq PRJNA290779 SAMN03897345 SRR2125158
  8. GSM1831733: Wild type control rep2; Homo sapiens; RNA-Seq PRJNA290779 SAMN03897344 SRR2125157
  9. GSM1831732: Wild type control rep1; Homo sapiens; RNA-Seq PRJNA290779 SAMN03897343 SRR2125156

由此,便获得了GSM编号与样本的对应关系

2)开始下载

1.prefetch

  1. #单个下载
  2. prefetch SRR2125159
  3. #批量下载
  4. for i in `cat ranids.txt`;do prefetch $i;done
  5. #如需要多线程同时下载,可使用parallel,需要先安装
  6. cat ranids.txt | parallel prefetch {}

2.直接使用fastq-dump

  1. for i in`cat ranids.txt`;do fastq-dump $i;done

3.使用Aspera

NCBI的ftp目前无法下载,可通过ENA 下载数据

  1. ascp -v -k 1 -T -l 200m -P 33001 -i /root/miniconda3/envs/bioinfo/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/SRR212/006/SRR2125156/SRR2125156.fastq.gz ./
  2. #多线程同时下载命令
  3. seq 6 9 | parallel --verbose "ascp -v -k 1 -T -l 200m -P 33001 -i /root/miniconda3/envs/bioinfo/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/SRR212/00{}/SRR212515{}/SRR212515{}.fastq.gz ./ "

可以看到下载速度高达62M/s,在1分31秒完成下载。

发表评论

匿名网友

拖动滑块以完成验证
加载失败