用户工具

站点工具


phagcn2.0

PhaGCN2

PhaGCN2是一个基于GCN的模型,它可以通过深度学习分类器学习物种屏蔽特征,用于新的病毒分类。要使用PhaGCN2,只需要将contigs输入到程序中。

用法

在你每次使用它之前,你需要运行的是

source /TJPROJ1/META_ASS/soft/anaconda3/bin/activate /TJPROJ1/META_ASS/soft/PhaGCN2.0-main
export MKL_SERVICE_FORCE_INTEL=1

在这里,我们举了一个例子来展示如何运行PhaGCN2。我们支持Github文件夹中一个名为“contigs.fa”的文件,其中包含从大体大体噬菌体模拟的contigs。你唯一需要运行的命令是

python run_Speed_up.py --contigs contigs.fa --len 8000 --outpath result

程序有两个参数:

  • –contigs是您的contigs文件的路径。
  • –len是你想预测的contigs的长度。正如我们的论文所示,随着contigs的长度的增加,召回和精度也会增加。我们建议您根据您的需求选择合适的长度。默认长度为8000bp。支持的最短长度为1700bp。输出文件是final_prediction.csv。这个csv文件中有三列:“contig_name,median_file_name,prection”。

训练自己的病毒分类数据库

如果您想训练自己的病毒分类数据库,请按照以下步骤操作。

首先,您需要使用gpu模式(确保您在系统上安装了cuda)并运行

pip install bio
pip install torch
sudo apt install prodigal
cd CHEER
sh creat.sh

第一步:在此步骤中,您需要将病毒序列(已知家族)放入不同的文件夹中,分为训练集和验证集。确保您的病毒序列超过1700BP。(如果您有分段病毒,将其组合成单个序列,否则,它将被分为几种不同类型的病毒)以ICTV 2021年记者为例,Lipothrixviridae中有11个病毒序列。随机划分10个序列中的9个用于进行训练集,1个用于进行测试集。将9个训练集序列组合到一个名为Lipothrixviridae的序列文件中,并将其放入火车文件夹中。将一个验证集序列组合到一个名为Lipothrixviridae的序列文件中,并将其放入验证文件夹中。另一个家族也是如此。(确保验证集不是空的)。

 bash code/re_train_script.sh
  • 训练你的数据集CNN模型
python3 train.py --n 8 --gpus 1 --weight "1,1,1,1,1,1,1,1"

–n是您的家族数量,–weight是权重系数,重量中的数字等于n的数量,–gpu是您拥有的Gpus数量,这将生成两个文件Embed.pkl和Params.pkl,替换CNN_Classifier文件夹中同名的两个文件。它需要大约250GB的内存(数据集越大,所需的内存就越多)。

第二步:将所有序列文件合并到一个文件中,并将其命名为all_pre.fasta,然后将其移动到CHEER文件夹。然后运行:

python3 deal_all_pre.py
  • 请修改您的数据集,直到没有报告标签错误(标签应包含至少一个空格)。获取TXT文本中的序号和相应的姓氏,并命名为taxa.txt(用制表符分隔),然后将其放入CHEER文件夹中。运行:
python3 deal_result.py
  • 它生成一个结果文件夹,在此文件夹中,将Code.txt的第一行替换为PhaGCN正文中run_GCN.py的第159行,第二行替换为run_Knowledgegraph.py的第643行,其他五个文件替换了数据库文件夹中的五个文件中的每个文件。3.第三步:将run_CNN.py第76行的默认n更改为第二步中的–n数字,将all_simple_pre.fasta复制到您的PhaGCN文件夹并运行():
python3 pre_train.py --contig all_simple_pre.fasta --len 1700
  • 运行后,将Cyber_data文件夹中的contig.F重命名为dataset_compressF,并将文件替换为数据库文件夹中的相同名称。

(示例见CHEER/train_example文件夹)

如果您想使用PhaGCN,您需要注意三件事

  1. 确保你所有的contigs都是病毒contigs。您可以使用VirSorter或DeepVirFinder来清除细菌
  2. 脚本将传递带有非ACGT字符的contigs,这意味着这些非ACGT contigs将保持不可预测。
  3. 如果程序输出错误(由您的机器引起):错误:mkl-service + Intel(R) MKL:MKL_THREADING_LAYER=INTEL与libgomp.so.1库不兼容。您可以在运行run_Speed_up.py之前输入命令export MKL_SERVICE_FORCE_INTEL=1
  4. 如果您想训练自己的病毒分类数据库,硬件要求可能相当可观(超过48 GB,至少一个GPU),这主要取决于数据集的大小和复杂性。(内存需求和即将分析的序列之间的关系)

phagcn2.0.txt · 最后更改: 2024/10/22 03:51 由 yuxi