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
程序有两个参数:
训练自己的病毒分类数据库
如果您想训练自己的病毒分类数据库,请按照以下步骤操作。
首先,您需要使用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
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
python3 deal_result.py
python3 pre_train.py --contig all_simple_pre.fasta --len 1700
(示例见CHEER/train_example文件夹)
如果您想使用PhaGCN,您需要注意三件事
确保你所有的contigs都是病毒contigs。您可以使用VirSorter或DeepVirFinder来清除细菌
脚本将传递带有非ACGT字符的contigs,这意味着这些非ACGT contigs将保持不可预测。
如果程序输出错误(由您的机器引起):错误:mkl-service + Intel(R) MKL:MKL_THREADING_LAYER=INTEL与libgomp.so.1库不兼容。您可以在运行run_Speed_up.py之前输入命令export MKL_SERVICE_FORCE_INTEL=1
如果您想训练自己的病毒分类数据库,硬件要求可能相当可观(超过48 GB,至少一个GPU),这主要取决于数据集的大小和复杂性。(内存需求和即将分析的序列之间的关系)