基于预训练模型,进行氨基酸序列编码,用于深度学习模型构建

本文主要是介绍基于预训练模型,进行氨基酸序列编码,用于深度学习模型构建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本团队提供生物医学领域专业的AI(机器学习、深度学习)技术支持服务。如果您有需求,请扫描文末二维码关注我们。

在这里插入图片描述


在对氨基酸序列数据进行深度学习模型构建时,首先需要将字符形式的序列数据进行编码操作。最简单的当然是One-hot编码,但会引入稀疏性问题。这里提供一种基于预训练模型的编码方法,代码如下:

import os 
import pandas as pd 
import numpy as np 
from sentence_transformers import SentenceTransformer
import warningswarnings.filterwarnings('ignore')# 定义读取FASTA格式的氨基酸序列文件
def read_fasta(file_path):with open(file_path, 'r') as file:sequences = []sequence_names = []current_sequence = []for line in file:line = line.strip()if line.startswith('>'):if current_sequence:sequences.append(''.join(current_sequence))current_sequence = []sequence_names.append(line[1:])else:current_sequence.append(line)if current_sequence:sequences.append(''.join(current_sequence))# 返回两个list# 第一个为序列名,第二个为序列return sequence_names, sequences# 将自动下载预训练模型,如果失败,需要手动从网站下载。
# 网站地址:https://huggingface.co/monsoon-nlp/protein-matryoshka-embeddings
model = SentenceTransformer('monsoon-nlp/protein-matryoshka-embeddings')# 创建结果文件
outdir = 'embedding_results'
os.makedirs(outdir, exist_ok=True)
os.makedirs(f"{outdir}/SingleSeqEmbedding", exist_ok=True)# 读取氨基酸序列
sequence_names, sequences = read_fasta('proteinSquence-zheng.txt')
print(f"共读入了 {len(sequence_names)} 条氨基酸序列")# 将读入的序列转为CSV格式,并进行保存
df = pd.DataFrame({'seq_name': sequence_names,'sequence': sequences})
df.to_csv(f"{outdir}/sequences.csv", index=False)# 每条序列单独编码
for idx, sequence in enumerate(sequences):embedding = model.encode(sequence)np.save(f'{outdir}/SingleSeqEmbedding/embedding_{idx}.npy', embedding)# 所有序列编码为一个矩阵
embeddings = model.encode(sequences)
np.save(f'{outdir}/embeddings.npy', embeddings)print('编码后的序列维度为: ', embeddings.shape)

在这里插入图片描述

这篇关于基于预训练模型,进行氨基酸序列编码,用于深度学习模型构建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100688

相关文章

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

Python结合Flask框架构建一个简易的远程控制系统

《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C