美文网首页Linux_learning生信分析流程
你真的知道如何下载生物信息学公众数据吗

你真的知道如何下载生物信息学公众数据吗

作者: lakeseafly | 来源:发表于2019-06-15 15:37 被阅读11次

    随着测序技术的发展,每天都会有不少的测试数据上传到NCBI SRA等的数据库上,但是如果快速稳定的下载上传好的数据其实也是一门学问,今天就给大家总结一下,wget的使用和SRA里面相关数据下载的方法,

    wget的使用总结

    如果你要下载一个文件,wget最简单的用法,当然就是:

    wget http://xxx.xxx/filename
    

    嗯简单得没有什么好说的,但是如果你要将整个文件夹里面的文件全部下载下来,这样的用法就不够用了。

    那么我们可以怎么解决这个问题呢?这里给大家提供了两种解决办法,你可以为文件指定正则表达式,也可以在URL本身中放置正则表达式。当目录中存在大量文件但是,你只想获取特定格式的文件时(例如,fasta格式的文件),第一个方法会更加合适:

    wget -r --no-parent -A 'bar.*.tar.gz' http://url/dir/
    

    如果您有许多具有相同名称但位于不同目录中的文件,则第二个方法会更加适用:

    wget -r --no-parent accept-regex=/pub/current_fasta/*/dna/*dna.toplevel.fa.gz ftp://ftp.ensembl.org
    

    有时,如果您要下载一系列文件(并相应编号),则可以使用UNIX内置的扩展方式来下载:

    wget http://xxxx/file_{1..10}.txt
    
    # 这将会下载一系列的文件 file_1.txt, file_2.txt, file_3.txt, file_4.txt and file_5.txt
    

    一些可能会用到的options:

    -limit-rate=20k 速度限制为20KiB/s    
    ##限制数据速率以避免影响其他用户访问服务器。
    -spider 检查文件是否存在    ###如果你不想保存文件但只想知道它是否仍然存在。
    -w  在此适用该option之后,在每个请求之间添加等待的秒数 
    ###使用这个参数的原因是,不要使服务器过载。
    -user=  设置用户名   ###wget将尝试使用提供的用户名登录。
    -password=  使用密码    ####wget将使用此密码和您的用户名进行身份验证。
    

    使用Linux命令进行SRA文件下载

    如果你无法运行SRA工具包或任何其他程序来下载文件,你仍然可以使用Linux的内置命令,例如wget和curl。

    使用wget:

    wget http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=dload&run_list=SRRNNNNNN&format=fastq
    

    要么 curl:

    curl -O http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=dload&run_list=SRRNNNNNN&format=fastq
    

    如果你有一个含有很多id的列表,你可以使用while循环简单地循环它:

    while read line; do
    wget http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=dload&run_list=${line}&format=fastq;
    done<list_of_ids
    

    SRA文件下载的总结

    介绍完比较基础的wget之后,就是该推文的重头戏,如何高速下载SRA文件?咱们日常用到的各种已经发表的测序数据,大部分都存储于NCBI SRA数据中。掌握该技能是所有生信工作者最基础的技能。

    首先我们要将sra-tools下载好,

    ###点击下载网站,下载好你所需要的对应版本的sra-tools
    https://github.com/ncbi/sra-tools/wiki/Downloads
    

    fastq-dump 可以用来直接下载文件并生成fastq文件,使用方法也比较简单:

    ###直接fastq-dump加上你所需要下载的SRR序列号就好了
    fastq-dump SRR1234567
    

    但某些程序可能会抛出错误,说它无法处理这些fastq文件。为避免这种情况,我们可以采用原始格式(--origfmt)。另请注意,如果你批量下载文件,则可以通过以gzip格式(--gzip)压缩文件来节省大量空间。

    使用Aspera Connect(ascp),高速下载文件

    Aspera使用高速文件传输在现有WAN基础设施上快速传输大型文件和数据集。

    首先要把ascp文件安装好:

    ## 点击下载网页,检查最新版的ascp,并进行下载 http://downloads.asperasoft.com/en/downloads/8?list
    wget -qO- https://download.asperasoft.com/download/sw/connect/3.8.1/ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.tar.gz | tar xvz
    
    ## 安装
    chmod +x ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.sh
    ./ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.sh
    
    

    接着可以使用sra-tools中prefetch开始高速下载文件了:

    prefetch --max-size 100G --transport ascp --ascp-path "/path/to/aspera/3.6.2/bin/ascp|/path/to/aspera/3.6.2/etc/asperaweb_id_dsa.openssh" SRRNNNNNN
    

    如果你需要下载大批量的SRA文件你可以将SRR的ID存储于一个ID.list中,然后通过参数--option-file,来通过指定文件来下载SRR文件。

    这里prefetch会默认将SRA文件存到HOME directory中的ncbi文件夹中。一般来说HOME directory存储空间都是有限的,我们可能需要创建另一个目录和然后将软链接放到HOME中:

    cd ~
    mkdir -p /project/storage/your_dir/ncbi
    ln -s /project/storage/your_dir/ncbi
    

    当你运行它时,你将有一个ncbi在你HOME directory中,但数据实际存储在/project/storage/your_dir/ncbi

    这里下载好的格式都是sra文件,可以使用fastq-dump命令将SRA文件转换成fastq格式。

    for sra file in ~/ncbi/public/sra/*; do
    fastq-dump --split-files --origfmt --gzip ${sra};
    done
    

    相关文章

      网友评论

        本文标题:你真的知道如何下载生物信息学公众数据吗

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