代码编织梦想

近期,我在使用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的官方能尽快写个脚本修复这个错误(如果它是个错误的话),遇到困难多查多问,祝大家科研顺利!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52602016/article/details/120689897

rsync常见问题及解决办法(亲测)_我叫她狗子的博客-爱代码爱编程

错误一: password file must not be other-accessible continuing without password file Password: rsync客户端路径是否写错,权限设置不

kraken建库错误_常玉俊bioinfo的博客-爱代码爱编程

kraken 出现错误 运行命令kraken-build --standard --threads 24 --db MY_KRAKEN_DATABASE,返回错误: Found jellyfish v1.1.12 --2

VIRUSBreakend Debug-爱代码爱编程

https://github.com/PapenfussLab/gridss https://github.com/PapenfussLab/gridss/blob/master/VIRUSBreakend_Readme.md build it from source. To build gridsstools from source run

如何下载NCBI的ftp数据-爱代码爱编程

如何下载NCBI的ftp数据 因为要从refseq中下载数据,知道 ftp 地址,浏览器打不开,用了好多下载工具都下不下来,所以有点难受。。。 一般的 ftp 下载链接是长这样的:ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/001/696/305/GCF_001696305.1_UCN72.1 但无意间

Gitlab升级(12.2.1到14.6.4)-爱代码爱编程

背景介绍那些乱七八糟的就跳过吧,直接上干货 一、准备 1.1:确定安装方式 开始纠结于到底是rpm还是yum,后来知道yum相当于对rpm进行了一系列的加壳,目的是解决rpm的依赖问题。那么就果断选择yum方式即可。 当前操作系统环境为centos7,当前gitalb版本为12.2.1 1.2:确定升级路线 好多人介绍过,gitlab的跨版本升

lxd容器安装cuda11-爱代码爱编程

目录 1 安装驱动 2 安装cuda 3 环境变量配置 4 安装cudnn 1 安装驱动 在安装cuda时一般先把显卡驱动安装上,lxd容器由于是虚拟化,因此安装显卡驱动不能安装到内核,在安装命令需加上“--no-kernel-module”,安装命令如下: sudo chmod +x NVIDIA-Linux-x86_64-X.run

【校招 --阶段一 操作系统基础】继进程概念-爱代码爱编程

通过系统调用创建进程-fork初识创建子进程 #include <sys/types.h> #include <unistd.h> pid_t fork( void) 给父进程返回子进程的pid,给子进程返回0 返回值 fork有两个返回值 父子进程代码共享,数据各自开辟空间,私有一份(采用写时拷贝) int m

一言难尽的Prometheus监控实践-爱代码爱编程

说到TiDB的监控,大家第一时间想到的就是 Prometheus 和 Grafana,这两个已经是非常成熟的监控产品了,相信大家都有一定的了解。那么这里对于 Prometheus 和 Grafana 不做过多的介绍,大概就是 Prometheus 会收集 TiDB 集群信息,Grafana 会调用这些信息生成可视化图标来进行展示。 而作为一名 DBA,为