NCycDB是一个专注于分析宏基因组中氮循环相关基因的数据库,由山东大学海洋科学与技术研究所开发并维护。该数据库于2018年8月在《Bioinformatics》期刊上发表,题为《NCycDB: a curated integrative database for fast and accurate metagenomic profiling of nitrogen cycling genes》。NCycDB的创建旨在解决在宏基因组测序数据分析中,针对氮循环基因家族分析时存在的低效数据库搜索、非特异性直系同源组以及低覆盖率等问题。
> seqkit stat my_data.fa > sample_info.txt
>
> ```
>
>
>
> 得到的文件中包含“file,format,type,num_seqs,sum_len,min_len,avg_len和max_len共8列,我们只保留file和num_seqs,即文件名和序列数,得到新的sample_info.txt。
>
>
## 4、报错情况
### 4.1.diamond error "Please specify the location of diamond! at NCycProfiler.PL line 42."
首先明确环境中有diamond包,可以使用以下命令对环境中的包进行查看:
复制代码
conda list
复制代码
其次,在确定环境中存在diamond的包后,查看diamond包的位置:
复制代码
conda info --env
复制代码
(我的diamond装在了单独的环境diamond中,所以找到环境之后在bin中找diamond
例如:/home/miniconda3/envs/diamond/bin/diamond
将NCycProfiler.PL中第11行的命令改成这个,如下图:

### 4.2.Error opening file data/NCyc_100: No such file or directory
cp: cannot stat
NCycBD数据库可以从GitHub上直接下载压缩包,下载下来后,NCyc_100.faa是一个压缩包的形式,无法识别,需要将压缩包解压,将NCyc_100.faa的文件挪出文件夹,放置在data的目录下,即可顺利
### 4.3.
### Total time = 316.679s
Reported 182751 pairwise alignments, 182751 HSPs.
182751 queries aligned.
#3
这是经常会遇到的问题,DIAMOND都正常,但却没有输出结果。
检查原代码发现:
复制代码
open( FILE, "$sampleinfo" ) || die "#3\n";
复制代码
这行代码用于打开一个文件,文件名由 `$sampleinfo` 变量提供。如果文件无法打开(可能是由于文件不存在、路径错误或者没有权限等问题),程序会通过 `die "#3\n"` 提示错误并终止执行。
所以这时候需要查看sampleinfo.txt文件有没有被正确书写,包括名称和路径。
### 4.4 cp: '/mnt/f/metagenome_analysis/QTP/contig/非冗余基因集/qtp4_nucl_nonerude.diamond' and './qtp4_nucl_nonerude.diamond' are the same file
这个我也没有太明白,但尝试了很多次,发现:需要有两层文件夹,第一层文件夹放置NCycProfiler.PL和data,然后新建一个work文件夹,把需要处理的文件和sampleinfo.txt放进去。
最简单的方法就是:从官网下载文件后,直接在文件的第一层里新建work文件,然后直接跑就可以。
同时还需要注意,使用DIAMOND的时候,要将NCycProfiler.PL里面DIAMOND的文件路径设置成自己的,然后将用到的数据库NCyc_100,提前建成DIAMOND的数据库,也就是NCyc_100.dmnd
不知道会不会有影响,我现在这样操作下来是可以完全跑成功的。
### 4.5 Died at NCycProfiler.pl line 35.