DeepARG——一种基于深度学习更加准确预测ARG的方法

DeepARG——一种基于深度学习更加准确预测ARG的方法

本文介绍的是发表于Microbiome名为DeepARG: a deep learning approach for predicting antibiotic resistance genes from metagenomic data的文章,截至本文投稿已被引高达388次
在这里插入图片描述

背景

以往ARG的识别鉴定通常是根据比对现有数据库的序列并设置 "best hits "来确定或预测的。但是这种方法产生的假阴性率很高。为了解决这种局限性,文章提出了一种深度学习方法,考虑到使用所有已知的ARG类别创建的异同矩阵。两个深度学习模型,DeepARG-SS(针对短序列reads)和DeepARG-LS(针对长序列基因组,开放阅读框ORF)。

方法原理

参考三个数据库:

  • ARDB
  • CARD
  • UNIPROT

合并去冗余
在这里插入图片描述预处理和UNIPROT ARGs注释。将来自CARD、ARDB和UNIPROT的抗生素耐药基因合并并聚类以去除重复基因。 然后,利用metadata与ARDB和CARD的抗生素类别名称之间的匹配,对UNIPROT的序列进行注释。

UNIPROT gene构建

ARDB和CARD数据库都包含有助于ARG分类的信息,但序列水平上还没有证据表明UNIPROT基因与抗生素耐药性真正相关。由于这个原因,UNIPROT基因的注释通过它们在CARD和ARDB数据库中的序列同一性被进一步验证。下图展示的就是UNI-gene的构建过程与其不同分类介绍。
在这里插入图片描述

Deep learning

CARD和ARDB基因代表已知的ARG,而UNIPROT (High+Mid)基因用于模型的训练和验证。
在这里插入图片描述

软件安装与使用

安装

# 创建环境
#使用conda加速器mamba运行
#未安装可执行:conda install -c conda-forge mamba
mamba create -n deeparg python=2.7.18 -y
conda activate deeparg

# 安装diamond
mamba install -c bioconda diamond==0.9.24 -y

# 安装其他依赖项
mamba install trimmomatic vsearch bedtools bowtie2 samtools -y

# 安装DeepARG
pip install deeparg==1.0.1 
#若无法安装使用镜像源这里使用豆瓣源
pip install deeparg==1.0.1 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

# 下载数据库, -o指定下载路径
deeparg download_data -o ./database

使用

示例:
deeparg predict \
    --model LS \
    -i ./test/ORFs.fa \
    -o ./test/X \
    -d /path/to/data/ \
    --type nucl \
    --min-prob 0.8 \
    --arg-alignment-identity 30 \
    --arg-alignment-evalue 1e-10 \
    --arg-num-alignments-per-entry 1000
主要参数设置:

–model LS和SS两种方式
-i 输入文件
-o 输出文件
-d 数据库位置
–type 核苷酸nucl还是氨基酸prot,默认nucl

输出结果

四个文件:

x.mapping.ARG最终的注释结果文件
x.mapping.potential.ARG预测后可能还含有 ARG-like sequences但还需验证
x.align.daa.tsv和x.align.daa是比对的结果文件

参考

[1] https://bitbucket.org/gusphdproj/deeparg-ss/src/master/README.md

更多的最新最全内容欢迎关注公众号:生信指南

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于深度学习的分割方法需要使用深度学习框架进行实现,比如TensorFlow、PyTorch等。下面是一个使用PyTorch实现基于深度学习的分割方法的代码示例: ```python import torch import torchvision import numpy as np from PIL import Image # 设置设备 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # 加载预训练模型 model = torchvision.models.segmentation.fcn_resnet50(pretrained=True).to(device) # 打开证件照图片 img = Image.open('证件照.jpg') # 对图片进行预处理 transform = torchvision.transforms.Compose([ torchvision.transforms.Resize((256, 256)), torchvision.transforms.ToTensor(), torchvision.transforms.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] ) ]) img_tensor = transform(img).unsqueeze(0).to(device) # 预测分割结果 model.eval() with torch.no_grad(): output = model(img_tensor)['out'][0] output = torch.argmax(output, dim=0) output = output.cpu().numpy() # 将分割结果转换为掩码 mask = np.zeros_like(output) mask[output == 15] = 1 # 设置前景为1,背景为0 # 将掩码转换为红色 red_mask = Image.fromarray(mask*255).convert('RGBA') red_mask = red_mask.point(lambda x: (255, 0, 0, x)) # 将红色背景掩码与证件照合并 result = Image.alpha_composite(img.convert('RGBA'), red_mask) # 保存修改后的图片 result.save('红色背景证件照.jpg') ``` 在上述代码中,我们首先使用PyTorch中的`torchvision.models.segmentation.fcn_resnet50`模型加载预训练模型,该模型使用Fully Convolutional Network(FCN)和ResNet50网络结构进行图像分割。接下来,我们使用Pillow库中的Image模块打开证件照图片,并使用PyTorch中的`torchvision.transforms`模块对图片进行预处理,以便输入到模型中进行分割。然后,我们将预处理后的图片输入到模型中进行预测,得到分割结果。接着,我们将分割结果转换为掩码,并将其转换为红色背景掩码。最后,我们将红色背景掩码与证件照进行合并,得到最终的结果。 需要注意的是,基于深度学习的分割方法需要大量的训练数据和计算资源,而且对硬件设备的要求较高。如果没有相关经验和设备,可以考虑使用其他的分割方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值