TOOLs:高通量测序数据下载之aspera和SRA Toolkit

高通量数据库的数据,下载方法有三种:

  1. 常规下载(wget,迅雷、IDM)
  2. aspera
  3. SRA Toolkit 的prefetch
    wget下载数据速度很慢,比较容易断。
    wget -c 下载地址
    保持断点下载
    ENA数据下载方法汇总 https://ena-docs.readthedocs.io/en/latest/retrieval/file-download.html#using-wget

下载数据库

优先选择 快速下载fq格式的数据,EBI数据库下载
从EBI数据库直接获取到aspera的下载代码,复制到本地服务器,可以直接运行。

cd ~/wes_cancer/project/1.raw_fq
ascp -QT -l 300m -P33001 -i $HOME/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/SRR318/008/SRR3182418/SRR3182418_2.fastq.gz . 
ascp -QT -l 300m -P33001 -i $HOME/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/SRR318/003/SRR3182423/SRR3182423_1.fastq.gz . 

注意:上述是apera的下载格式,最后面的.代表保存的路径是本目录,一定不能省略,不然会报错。
网络有时候会提示SSH或者UDP错误,可能是服务器的33001端口没有开,打开这个端口即可。

上面这种下载时候,搜索框可以是SRA号、SRR号或者Project号也可以。输入PRJAN号可以一次获取所有的下载链接地址。

新的工具ffq可以用来批量获取下载地址。
ffq github
直接pip安装即可 pip install ffq
ffq 参数说明
-o 输出文件名称
-t 指定输入的编号类型,默认是:SRR,可用选项:SRR, ERR, DRR, SRP, ERP, DRP, GSE, DOI
ffq输出的结果格式是json

#获取一个SRR的下载地址
ffq  SRR12455819

输出信息如下:直接包括文章的标题摘要,数据类型,数据下载地址和md5

{
    "SRR12455819": {
        "accession": "SRR12455819",
        "experiment": {
            "accession": "SRX8950230",
            "title": "Illumina HiSeq 4000 sequencing; GH0202",
            "platform": "ILLUMINA",
            "instrument": "Illumina HiSeq 4000"
        },
        "study": {
            "accession": "SRP275570",
            "title": "Genebank resequencing of tetraploid cottons",
            "abstract": "Modern cultivated tetraploid cottons contain two species, Gossypium barbadense and Gossypium hirsutum. Among them, G. hirsutum is the significant species cultivated worldwide and contributes more than 90% natural fiber for the industry. To completely reveal the genetic diversity and population divergence within cultivated tetraploid cotton, we resequenced more than 1,700 accessions, which mostly included the South-China landraces, the elite introgression lines, and the obsoleted historic varieties. After integrating them with the major public resequencing data (PRJNA257154, PRJNA336461, PRJNA375965, PRJNA399050, and PRJNA414461), we obtained a whole Genebank variation map contained 3,248 tetraploid cottons (included 2,922 G. hirsutum). This variation map covered more than 1/3 of current G. hirsutum Genebank in China (~9,000 accessions), which could represent the genetic diversity of G. hirsutum."
        },
        "sample": {
            "accession": "SRS7128615",
            "title": "Gossypium hirsutum",
            "organism": "Gossypium hirsutum",
            "attributes": {
                "isolate": "not applicable",
                "cultivar": "GH0202",
                "ecotype": "not applicable",
                "age": "not applicable",
                "dev_stage": "not applicable",
                "geo_loc_name": "not applicable",
                "tissue": "Leaf",
                "BioSampleModel": "Plant",
                "ENA-SPOT-COUNT": "231824444",
                "ENA-BASE-COUNT": "34773666600",
                "ENA-FIRST-PUBLIC": "2020-12-09",
                "ENA-LAST-UPDATE": "2020-12-09"
            }
        },
        "title": "Illumina HiSeq 4000 sequencing; GH0202",
        "files": [
            {
                "url": "ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR124/019/SRR12455819/SRR12455819.fastq.gz",
                "md5": "056333e1c9fba8b9ff930496073cbb95",
                "size": "7552277314"
            }
        ]
    }
}

获取的地址ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR124/019/SRR12455819/SRR12455819.fastq.gz和上面使用aspera下载的地址era-fasp@fasp.sra.ebi.ac.uk:vol1/fastq/SRR124/019/SRR12455819/SRR12455819.fastq.gz只有前面的ftp://ftp修改为era-fasp@fasp即可。

批量获取下载地址输出到1个json文件

ffq -o SRA_Acc.json SRR12455818 SRR12455819 SRR12455820 SRR12455821 SRR12455822 SRR12455823 SRR12455824
所有的结果输出到SRA_Acc.json文件

批量获取下载地址,并自动生成ascp的下载命令行

#输出文件在NCBI.json
ffq -o NCBI.json SRR12455818 SRR12455819 SRR12455820 SRR12455821 SRR12455822 SRR12455823 SRR12455824

json2tab.py脚本内容如下:
此脚本目前适配的是SRR和ERP的输出,其他的输出如果不一致,需要自己手动修改。

#!/usr/bin/python3
##用法:python3 json2tab.py NCBI.json
#输入文件是ffq输出的json文件
#输出是"projectID","sampleID","fq_url","size","md5","organism"
import sys
import pandas as pd
import json
#jsonfile = "NCBI.json"
jsonfile = sys.argv[1]
#filename = jsonfile.split('.')[0]
#解析输入的json文件
with open(jsonfile,"r") as load_f:
    load_dict = json.load(load_f)
#输出文件头部信息
#print("projectID","sampleID","fq1_url","fq2_url","size_1","size_1","md5_1","md5_2")
for i in load_dict.keys(): #i是项目的编号,当有多个NCBI的号的时候
    idlist=[]
    for j in load_dict[i].keys():
        idlist.append(j) #把每一个的keys输出到idlist,如果keys里有files选项,则直接输出,如果有runs,需要多解析一层
    if "files" in idlist:
        data_ID=load_dict[i] #此时有files直接解析即可
        for list_url in data_ID['files']:
            print(load_dict[i]['accession'],data_ID['accession'],list_url['url'],list_url['size'],list_url['md5'],data_ID['sample']['organism'],sep='\t')
    elif "runs" in idlist: #此时是需要多解析一层
        for id in load_dict[i]['runs'].keys(): #id是每个项目里,对应的文件的号
            data_ID=load_dict[i]['runs'][id]
            for list_url in data_ID['files']:
                print(load_dict[i]['accession'],data_ID['accession'],list_url['url'],list_url['size'],list_url['md5'],data_ID['sample']['organism'],sep='\t')
    else: #此时可能是其他情况,自行解决
        print("不符合已知的字段,需要自行解析如下内容:")
        print(load_dict[i])

脚本输出的格式如下:

SRR12455818     SRR12455818     ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR124/018/SRR12455818/SRR12455818.fastq.gz  5425719230      67a1ba5cafd70f6137916589bf9bb437        Gossypium hirsutum
SRR12455819     SRR12455819     ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR124/019/SRR12455819/SRR12455819.fastq.gz  7552277314      056333e1c9fba8b9ff930496073cbb95        Gossypium hirsutum
直接生成转换后的下载地址
python3 json2tab.py NCBI.json >info.list
cat info.list|awk '{print $3}'|sed 's/ftp:\/\/ftp.sra.ebi.ac.uk/ascp -QT -l 30m -P33001 -i \$HOME\/.aspera\/connect\/etc\/asperaweb_id_dsa.openssh era-fasp\@fasp.sra.ebi.ac.uk:/g;s/$/ ./g' >download.sh
nohup bash download.sh & #直接即可下载

download.sh的内容如下:

ascp -QT -l 30m -P33001 -i $HOME/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR124/018/SRR12455818/SRR12455818.fastq.gz .
ascp -QT -l 30m -P33001 -i $HOME/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR124/019/SRR12455819/SRR12455819.fastq.gz .

md5检测下载的数据是否完整

awk '{print $3,$5}' info.list|rev|cut -d "/" -f1|rev|awk '{print $2,$1}' >md5.txt
md5sum -c md5.txt

如果全部ok,就说明数据没问题。

下面内容可忽略


批量获取下载地址分别输出到json文件

ffq -o srr_split --split SRR12455818 SRR12455819 SRR12455820 SRR12455821 SRR12455822 SRR12455823 SRR12455824
所有的结果输出到srr_split的目录里,分别是SRR12455818.json …… SRR12455824.json

不推荐 下载原始的SRA格式,NCBI数据库
在NCBI数据库会获取到Accession List里面是SRR的列表。

使用prefetch下载

##单行手动下载
prefetch SRR3182423

##批量自动化下载
cat SRR_Acc_List.txt | while read id
do
    prefetch ${id} -O  ./
done
数据格式

SRA数据格式,是NCBI数据库的格式,我们下载之后,需要自己手动转换成fq格式。
SRA的数据是每一个SRR数据,是一个文件夹。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341