Advertisement

宏基因组元素循环分析(1)NCycDB数据库的使用

阅读量:

NCycDB是一个专注于分析宏基因组中氮循环相关基因的数据库,由山东大学海洋科学与技术研究所开发并维护。该数据库于2018年8月在《Bioinformatics》期刊上发表,题为《NCycDB: a curated integrative database for fast and accurate metagenomic profiling of nitrogen cycling genes》。NCycDB的创建旨在解决在宏基因组测序数据分析中,针对氮循环基因家族分析时存在的低效数据库搜索、非特异性直系同源组以及低覆盖率等问题。

1、数据库特点

全面性和准确性 :NCycDB是一个人工校正后的氮循环相关基因数据库,与COG、eggNOG、KEGG和Subsystems等通用数据库相比,其收录的基因家族数量更多且更准确。数据库共收录了68个基因家族,涵盖了8个氮循环过程,包括氨氧化、硝化、反硝化等关键步骤。

高覆盖率 :在95%和100%的相似度阈值下,NCycDB分别包含了84,759和219,146个代表性序列。这些序列的广泛覆盖使得数据库能够更全面地反映氮循环基因家族的多样性。

直系同源组鉴定 :为了避免由于“小数据库”问题导致的假阳性分配,NCycDB还鉴定了1,958个直系同源组,并将相应的序列纳入数据库。这一步骤显著提高了数据库在分析氮循环基因家族时的准确性和可靠性

2、数据库数据组成

在此,NCycDB从 UniProt、KEGG、COG、eggNOG 和 SEED 等多个公共数据库中收集了 NCyc 基因家族的蛋白质序列。NCyc数据库共包含68个基因(亚)家族,涵盖8个N循环过程,分别有84,759和219,146个代表性序列,同一性截止值分别为95%和100%。NCycDB还确定了 1,958 个同源互生组,并将相应序列纳入数据库,以避免因 “小数据库 ”问题造成的假阳性分配。

NCycDB 生成了三个文件:

1.NCyc_100.faa.gz :通过聚类 100%序列同一性的策划序列获得的 fasta 格式代表性序列。该文件可用于 “BLAST ”搜索散弹枪元基因组中的 NCyc 基因。

2. NCyc_95.faa.gz :以 95% 的序列同一性聚类得到的 fasta 格式代表性序列。该文件可用于 “BLAST ”搜索散弹枪元基因组中的 NCyc 基因。

3. id2gene.map :将序列 ID 映射到基因名称的映射文件,只包括属于 NCyc 基因家族的序列。不包括 NCyc 同源物的序列。该文件用于根据与 NCyc 数据库类似的 BLAST 结果生成 NCyc 图谱。

3、数据库使用

利用perl进行分析:

复制代码
    perl NCycProfiler.pl -d <workdir> -m <diamond|usearch|blast> -f <filetype> -s <seqtype> -si <sample size info file> -rs <random sampling size> -o <outfile>
    

参数说明:

-d :指定 fasta/fastq(或 gzip 压缩)文件所在的目录

-m : 指定您计划使用的数据库搜索程序,目前支持 Diamond、uSearch 和 Blast

-f : 指定序列文件的扩展名,例如 fastq、fastq.gz、fasta、fasta.gz、fq、fq.gz、fa、fa.gz

-s : 序列类型nucl 或 prot

-si:一个制表符分隔的文件,包含样本/文件名和它们所拥有的序列数,请注意,此处不应包含任何文件扩展名

-rs:指定随机子采样的序列数,如果未指定,则使用 -si 中的最小数字

-o : 氮循环基因图谱的输出文件

输入的fasta/fastq(或 gzip 压缩)文件可以是多个,也可以连接成一个文件进行分析。

需要额外获取,可以采用seqkit获取。

seqkit是一个用于序列数据操作的命令行工具,它可以处理FASTA和FASTQ序列数据。要使用seqkit获取序列,可以使用stats命令对FASTA/Q文件的简单统计。更多参数的应用可以参照官网:https://github.com/shenwei356/seqkit

复制代码
>     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行的命令改成这个,如下图:
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-16/7UfZ0L2WCYwi8xv3mtXSKlA4yVPk.png)

### 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.

Incorrect parameters!

perl NCycProfiler.pl -d -m <diamond|usearch|blast> -f -s -si -rs -o

-m diamond|usearch|blast

-f fastq, fastq.gz, fasta,fasta.gz, fq, fq.gz, fa, fa.gz

-s sequence type, nucl or prot

-si tab delimited file for sequence number in each file

-rs random sampling size

Died at NCycProfiler.pl line 35.

复制代码
这种情况一般都是代码的命令没有写对,逐个核对所列出的这几项是否齐全和正确,即可,有时也有可能是空格多打了一个,这个要细心核对一下,比较好解决。  

>
>
> 参考来源:[qichao1984/NCyc (github.com)](https://github.com/qichao1984/NCyc?tab=readme-ov-file "qichao1984/NCyc \(github.com\)")
>
>

全部评论 (0)

还没有任何评论哟~