美文网首页
SRA数据下载

SRA数据下载

作者: RachaelRiggs | 来源:发表于2020-05-16 14:44 被阅读0次

    http://zhaohuanan.cc/2020/04/15/11.bioinfo/bioinfo-SRA%E6%95%B0%E6%8D%AE%E4%B8%8B%E8%BD%BD/

    应用场景:

    如果自己没有测序数据,比如Pacbio数据,nanopore数据等,想要测试一些软件,或者想重复文章的内容,就需要从SRA数据库下载数据。

    SRA数据库介绍

    https://www.ncbi.nlm.nih.gov/sra/
    SRA(Sequence ReadArchive)数据库是NCBI用于存储二代测序的原始数据,包括 454,Illumina,SOLiD,IonTorrent等。

    我们经常会看到文献中给出数据名字为SRA然后后面接一些数字。

    我们根据这个SRA的ID就可以进行下载了,然后进行数据的分析,重复文献的分析内容 。

    根据SRA数据产生的特点,将SRA数据分为四类:

    • Studies -- 研究课题
    • Experiments -- 实验设计
    • Samples -- 样品信息
    • Runs -- 测序结果集

    这四种分类有一个层次关系。

    首先是Studies -> Experiments -> Samples -> Runs。

    这也是一个研究项目正常的逻辑关系。

    了解这个层级关系,否则找sra数据就会感觉比较混乱。

    一个study可能包含多个Experiment,Experiments包含了Sample、DNA source、测序平台、数据处理等信息。

    SRA数据库用不同的前缀加以区分:

    • ERP或SRP表示Studies;

    • SRS 表示 Samples;

    • SRX 表示 Experiments;

    • SRR 表示 Runs。

    SRA数据下载

    sra数据的下载可以通过网页端下载,但是比较不方便。

    1. NCBI官方提供了SRA Toolkit软件包来进行下载。https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software 软件的下载比较容易,都是编译好的版本,选择对应的体统,下载之后解压缩就可以使用了。

    2. 也可以使用bioconda直接进行安装,需要注意的是软件的名字在bioconda中是sra-tools。

    conda install sra-tools
    

    软件的用法也比较简单,根据命名我们就可以看出来,它是一个处理sra格式文件的工具包。可以用来管理和操作sra数据库的资源,里面包含了很多工具。可以处理多种测序平台的数据,这些工具大部分根据命名就知道功能。

    • fastq-dump: 最常用的,将SRA数据转换为fastq格;
    • prefetch: 下载sra数据
    • sam-dump: 将 SRA 转换为sam格式,如果原始数据是sam或bam,就需要使用这个工具;
    • sra-pileup: 生成 pileup统计结果,pileup是堆叠的意思,类似于samtools的pileup;
      一些不太常用的工具:
      -- abi-dump: 处理abi格式数据;
      -- sff-dump: 处理454测序数据;
      由于abi和454测序数据越来越少,相应的工具也不是特别重要了。
      -- illumina-dump: 将sra转换为illumina原始的qseq文件;
      -- sra-stat: 统计sra文件
      -- vdb-config,vdb-decrypt,vdb-dump,vdb-encrypt,vdb-validate处理vdb格式数据。

    这里我们要下载PRJNA553240的数据。

    如果想知道数据的具体信息,比如数据是什么样品,采用哪种平台测序的,测序长度是多少,测序深度是多少,都可以到SRA网站上去查。

    1. 首先可以使用esearch 搜索sra数据库。看这个项目下都有哪些数据。esearch默认的结果是xml格式,需要使用efetch进行解析。efetch来自NCBI另一款工具edirect。
      https://blog.csdn.net/zhanyongjia_cnu/article/details/50717717
    # 安装
    conda install entrez-direct
    # 解析路径到文件
    esearch -db sra -query PRJNA553240 | efetch -format runinfo >info.csv
    
    image.png
    1. 这里面有很多数据,选择其中一个作为演示。直接使用prefetch进行下载。如果系统中安装了Asprea,prefetch会调用aspera进行下载,还是很方便的。如果不在默认路径下,可以通过-a选项指定。

    2. 我们下载一个SRA数据,SRR1972917,直接输入SRA ID即可。

     prefetch SRR1972917
    

    检查当前地址,如果没有就在~/ncbi下

    image.png

    我试了一下应该是prefetch版本问题,mac上的prefetch会直接下载到~/ncbi下,而服务器centos则会下载到当前文件夹

    1. 若要批量下载csv中的文件,提供一个思路:

    首先输入上面得到的info.csv,使用pandas解析表格并且获得Run名称和原文件名,使用prefetch下载文件并命名为原文件名

    print ok说明下载正常

    print not found说明没找到

    print Error 说明遇到了其他问题

    zhn写了个小脚本prefetch_download_from_efetch.py
    下载地址

    image.png image.png

    可以配合screen命令扔后台跑着,这要手动下载不得累死。。

    5.注意事项
    i. 默认下载的是sra格式数据,可以使用fastq-dump将sra转换为fastq了。

    fastq-dump --gzip --split-3 SRR1972917.sra  
    

    ii. 其实,也可以直接使用fastq-dump下载数据,下载之后直接即使fastq格式,不过还是选择prefetch比较好,因为sra数据格式比fastq格式占用空间较小,下载速度快;另一方面,sra也方便断点续传。

    #直接利用fastq-dump下载数据  
     fastq-dump --split-files SRR1972917 
    

    下载和合并hg19

    • 可以去ucsu官网下载

    • 这里图方便直接使用它给的tar包

    wget ftp://hgdownload.cse.ucsc.edu/goldenPath/hg19/bigZips/chromFa.tar.gz
    tar zxvf chromFa.tar.gz
    

    然后只留下我们需要的chr1~22XY,其他都删掉;

    image.png

    于是。。。。

    import os
    ls = list(range(1,23))
    ls.extend(["X","Y"])
    para = ""
    for i in ls:
        para += "chr%s.fa " % str(i)
    print(para)
    os.system('cat %s > hg_19.fa' % para)
    print('success!')
    
    image.png

    然后全删光只留下hg_19.fa即可,less查看一下,

    image.png image.png

    相关文章

      网友评论

          本文标题:SRA数据下载

          本文链接:https://www.haomeiwen.com/subject/ptilohtx.html