就在半个月前,我还能正常使用ascp快乐地下载数据。然后在一周前,我的学员找到我,说ascp下载一直报错,如下所示。
这个错误太常见了啊,因为下载数据的数据库那个服务器(不是我们自己的服务器)好像经常抽风,我没当回事呢,安慰学员说过几天就好了。
因为今天要下载数据,我才意识到前面学员反馈的这个问题有点严重啊!
ascp: failed to authenticate, exiting.Session Stop (Error: failed to authenticate)一开始我以为是 ascp 的版本问题,直到我测试了好几个版本,不同的服务器(网络不一样),才惊觉这个问题好像有点严重啊!好像是真的不能下载数据了!(不知道是什么原因,有懂的朋友可以留言区告诉我一下或者帮我测试一下你们能不能下载呢?)。
用我之前写的更新版本的也不行了:数据下载喊你来看:ascp
这个时候我想起了我们生信入门班级第三周的linux课上面,萌老师有一次给大家介绍了很多的fq数据下载方法,我去他的公众号重新回顾了一下,找到了下面的帖子:
额,测试了好几个工具后,我发现他们下载数据的方法基本上都是使用http的方式或者调用ascp。
现在ascp挂了,那还说啥啊!!!
比如我以为可以用多线程的 iSeq:
# 环境配置conda create -n aspera -c conda-forge ruby aspera-cliconda activate asperaconda install iseq -y# 测试一个数据看看iseq -i ERR2498028 -g -t 8 -p 2上面帖子中的备注参数:
-i是--input,必须要指定的参数-g 是--gzip, 直接下载fastq.gz格式的文件,免去转换的步骤-t是--threads, 指定用8个线程来下载-p是--parallel,可以并行的下载数据,而非串联下载,这一步我设置成2,iSeq将会同时下载两个文件,速度更快。这个功能是之前别的工具所不具备的,好评!看到-t我还以为能加速呢!
走的ftp路径,下载速度感人肺腑!

然后我看了下参数:
iseq -h
-t 只是人家用来将SRA转为fq的时候用的线程数。
可以添加 -a 来指定 ascp下载,但是ascp现在挂了啊!
那还是用以前的套路下载吧!
既然有ftp地址,那就上 axel, wget -c 等这些命令。
项目去ENA数据库得到 fq链接表格:https://www.ebi.ac.uk/ena/browser/view/PRJEB25780
把刚刚选择的下载下来,格式选择 TSV:filereport_read_run_PRJEB25780-RNA.txt
选择RNA样本。
# 查看 链接在哪一行:head -n 1 filereport_read_run_PRJEB25780-RNA.txt |tr '\t''\n' |cat -n |grep "fastq_ftp"# 我这里为30行# 30 fastq_aspera# 得到fq链接cut -f 30 filereport_read_ru* | tr ';''\n' | sed '1d' >fq.url# 看一下链接:head fq.url |cat -A # 如果行尾存在^M字符 可以运行这句# sed -i -e "s/\r//g" fq.url
写个循环得到down.sh:
cat fq.url |whileread id doecho"axel -n 30 $id"done >down.sh# 检查生成的down.sh文件less down.sh# 下载nohup sh down.sh 1>down.log 2>&1 &

这个速度技能树的服务器专线太恐怖了!一个fq仅用2分钟!赞!
最后,今天520过节福利:单身的别走,技能树拉了个群,免费来领个对象吧!

友情转发:
GEO数据实战训练直播(学员免收门票),课后有大量案例实战训练