Aspera批量下载fastq或sra文件(EBI数据库)

Aspera批量下载fastq或sra文件(EBI数据库)

使用 conda 安装 Aspera

创建小环境安装软件

conda create -n download 
conda activate download 
conda install -y -c hcc aspera-cli
conda install -y -c bioconda sra-tools

搞清楚文件位置

which ascp 
locate asperaweb_id_dsa.openssh
# 这个openssh的位置很重要,是ascp的证书文件
# 我的在这里:~/software/miniconda3/envs/download/etc/asperaweb_id_dsa.openssh

fastq 下载

我用 EBI 主页搜索 SRR 号搜索到项目链接,下载 fastq 数据,这里先就直接下载 fq 数据。

​​image

直接参考生信技能树的推文,我的批量下载命令:

ascp -QT -l 300m -k1 -P33001 -i ~/software/miniconda3/envs/download/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/srr/SRR239/043/SRR23901743 /mnt/archive/rawdatas/PRJNA945949\(adipose1\)

# 批量下载
# 提取sra_aspera下载链接
cut -f 3 filereport.tsv.txt > downlist.txt
# downlist.txt 是自己创建的,写入了上面tsv里提供的下载地址
cat downlist.txt | while read id; do ascp -QT -l 300m -k1 -P33001 -i ~/software/miniconda3/envs/download/etc/asperaweb_id_dsa.openssh era-fasp@$id /mnt/archive/rawdatas/PRJNA747305; done
# 后台下载
nohup cat downlist.txt | while read id; do ascp -QT -l 300m -k1 -P33001 -i ~/software/miniconda3/envs/download/etc/asperaweb_id_dsa.openssh era-fasp@$id /mnt/archive/rawdatas/PRJNA747305; done &

解决一个 bug(也许不算是 bug)

下载完才发现这个项目的 fastq 文件好像没有 R1, R2,I1,而是每个 run 合并在一个 fastq 中,无法作为 cellranger 的输入。据说这是由于上传者所用的软件导致的,这也没办法,一开始没有注意到未区分 R1, R2。参考:https://www.jianshu.com/p/d146d78f6f95

对于大多数项目,能直接下载到 R1 和 R2 序列的,就可以直接进行本文后面的重命名以及 cellranger count 流程。

下载 sra

这时候只能下载 SRA 文件,由于使用 sratools​ 中的 prefetch​ 目前已经不能调用 aspera​,其下载速度很慢,所以还是在 ENA 中下载 SRA​ 文件,勾上 sra_aspera​:

​​image

下载一个 TSV 格式的报告。

image

将该文件(filereport.tsv.txt)去掉列名,上传到服务器相应目录。

提取下载链接,即第三列:

# 提取sra_aspera下载链接
cut -f 3 filereport.tsv.txt > downlist.txt
# 批量下载sra
mkdir sra/
nohup cat downlist.txt | while read id; do ascp -QT -l 300m -k1 -P33001 -i ~/software/miniconda3/envs/download/etc/asperaweb_id_dsa.openssh era-fasp@$id /mnt/archive/rawdatas/PRJNA747305/sra; done &

md5 校验

https://zhuanlan.zhihu.com/p/604291783

拆分

使用 sratools 中提供的 fasterq-dump 命令。注意这里用的是 faster-dump​,是 fast-dump ​的升级版,其速度更快。

image

### 将sra文件拆分成R1,R2,I1三个文件,fasterq-dump拆分出1,2,3后再修改
# 先跑一个试试
fasterq-dump ./sra/SRR15178965 -S -e 60 -p --include-technical
# 参数说明:-e:线程数(dflt=6), -S:--split-files 把reads拆分到不同文件, --include-technical:包含technical reads,-p: 显示进度,-O:输出路径,不写表示在当前目录输出
# 这里的文件名前面必须加./ 表明是本地文件,不加的话可能会从GEO获取(很慢)。

# 没有问题再跑全部
ls sra/ |while read id;do (fasterq-dump ./sra/$id -S -e 60 -p --include-technical);done 
# 时间太久,后台运行
nohup ls sra/ |while read id;do (fasterq-dump ./sra/$id -S -e 60 --include-technical);done &

image

有一点还需要注意一下,faster-dump ​没有 --gzip ​参数,所以输出的 fastq​没有压缩,即没有 .gz ​后缀,如果需要压缩,得自己写脚本手动压缩一下。

拆分完之后每个 run 变成了三个文件,在 GEO 的 SRA run selector 中检索该项目。查看一个 run,发现其实已经给出了顺序,是 I1, R1, R2,当然根据拆分出的三个文件大小也可以大致推测出。

image

重命名

cellranger 的输入文件需要按照规定格式命名,具体参考官方说明书。必须有 R1, R2,而Index 可有可无。

image

### 重命名脚本1,实际上是用ln命令创建软连接
# 根据之前的结果,本项目中_1对应I1,_2对应R1,_3对应R2
ls *_1.fastq |while read id;do (pre=`basename $id|cut -d"_" -f 1`;echo $pre; ln -s $id ${pre}_S1_L001_I1_001.fastq);done
ls *_2.fastq |while read id;do (pre=`basename $id|cut -d"_" -f 1`;echo $pre; ln -s $id ${pre}_S1_L001_R1_001.fastq);done
ls *_3.fastq |while read id;do (pre=`basename $id|cut -d"_" -f 1`;echo $pre; ln -s $id ${pre}_S1_L001_R2_001.fastq);done

mv SRR15178968_S1_L001_I1_001.fastq GSM5457083_S1_L001_I1_001.fastq
mv SRR15178968_S1_L001_R1_001.fastq GSM5457083_S1_L001_R1_001.fastq
mv SRR15178968_S1_L001_R2_001.fastq GSM5457083_S1_L001_R2_001.fastq


##重命名脚本2. mv命令重命名
cut -f 1 filereport.tsv.txt | while read id ;do (mv ${id}_1.fastq ${id}_S1_L001_I1_001.fastq;mv ${id}_2.fastq ${i}_S1_L001_R1_001.fastq;mv ${id}_3.fastq ${i}_S1_L001_R2_001.fastq);done

后续就可以进行 cellranger 流程了。

cellranger count

编辑脚本:

(本文暂不讲解 cellranger,脚本仅供参考,如需使用,请自行修改)

fastqs_dir=/mnt/archive/cleandatas/PRJNA747305/input
index_dir=/usr/local/public/genome/ref/refdata-gex-mm10-2020-A
output_dir=/mnt/archive/cleandatas/PRJNA747305/quantify
cd ${output_dir}

ls ${fastqs_dir} | cut -d '_' -f 1 | uniq | while read i
do
cellranger count \
    --id=$i \
    --transcriptome=${index_dir} \
    --fastqs=${fastqs_dir} \
    --sample=$i \
    --localcores=70 \
    --localmem=96
done
nohup sh count.sh &> count.sh.log &

本文介绍了如何通过Aspera工具批量下载EBI数据库中的fastq或sra文件。首先,用户需通过conda创建一个新的环境并安装Aspera CLI和sra-tools。在获取到目标文件的下载链接后,可以使用Aspera命令进行文件下载,包括处理下载列表的命令。文中提到下载fastq文件时可能遇到合并文件的问题,因此建议在确认数据格式后选择sra文件。接下来,用户可以从下载的sra文件中使用sratools中的fasterq-dump命令将其拆分为R1、R2和I1文件,确保数据符合下游分析的需求。最后,文中还提到对下载文件进行md5校验以确保数据完整性。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容