关于近期kraken2:rsync_from_ncbi.pl: unexpected FTP path (new server?) 的报错对策-爱代码爱编程
近期,我在使用kraken2进行各个物种序列库构建的时候,出现了报错,内容是:rsync_from_ncbi.pl: unexpected FTP path (new server?) for https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/762/265/GCF_000762265.1_ASM76226v1
就很气,因为以前做的时候没有这个错误,于是进行百度,在kraken2的github官网上找到了答案,链接如下:unexpected FTP path (new server?) · Issue #508 · DerrickWood/kraken2 · GitHub
其中一个叫 lynngao的小姐姐提出报错原因是:原作者在写rsync_from_ncbi.pl这个文件的时候读取的文件里面下载网址是ftp开头的,但是实际我们下载下来网址是https开头的,所以只需要把这个文件里面的ftp改成https即可。
解决方案如下:
即把rsync_from_ncbi.pl文件的第46行的
“ if (! ($full_path =~ s#^ftp://${qm_server}${qm_server_path}/##)) ”
换成
“if (! ($full_path =~ s#^https://${qm_server}${qm_server_path}/##))”
具体操作如下:
(1)首先在服务器中定位rsync_from_ncbi.pl 文件的位置,使用find命令:
find -name rsync_from_ncbi.pl 查找目录,我们先把标记kraken2的文件夹下的rsync_from_ncbi.pl文件进行修改,将第46行的ftp改成https。
rsync_from_ncbi.pl 文件的修改位置如下:
结果发现还是不行,报错内容同上
(2)于是,我推测应该是修改的不彻底的原因,kraken2依托的conda环境qc2的rsync_from_ncbi.pl 也需要修改,于是cd到~/miniconda3/envs/qc2/libexec 文件夹下,将rsync_from_ncbi.pl按照同样的方式进行了修改。结果又报错了,报错内容如下:
(3)一看是文件权限问题,那么一定是我没有按照标准流程使用命令在线修改(事实上,我是手动修改的,就是将文件下载下来,修改后再替换原文件),导致文件属性发生变化,于是我在FileZilla上比较各个文件的权限,在FileZilla上有几种文件的权限格式,其中包括-rwxrwxr-x和-rwxrwxr--(手动修改的rsync_from_ncbi.pl文件就是这种格式,不要被下图误导,下图的rsync_from_ncbi.pl文件是我修改权限之后的),如图:
两类文件的权限有什么区别呢?查看一下他们的权限信息,比较如下:
在FileZilla上的权限查看:
-rwxrwxr--文件的权限:
-rwxrwxr-x文件的权限:
可见,-rwxrwxr--权限的文件实际上是不能进行执行的,这也正是download_genomic_library.sh文件不能读取rsync_from_ncbi.pl的原因,把所有的rsync_from_ncbi.pl文件的执行权限都勾选上,就可以了!再次运行就顺利跑通!
写在最后:
感谢 lynngao小姐姐(哇她竟是外国知名大学的生信博士,厉害)不厌其烦的教我如何操作(没错,kraken2官网例,issue部分 #508专栏 的一直提问小姐姐的shengxin450就是我),希望本文对大家有帮助,期待大家有更方便快捷的解决方法,更期待kraken2的官方能尽快写个脚本修复这个错误(如果它是个错误的话),遇到困难多查多问,祝大家科研顺利!!!