网址:https://huggingface.co/Rostlab/prot_bert
ProtBERT是一个基于BERT(Bidirectional Encoder Representations from Transformers)架构的预训练模型,专门用于处理蛋白质序列数据。ProtBERT的设计目的是生成高质量的蛋白质序列嵌入,以支持各种下游任务,如序列分类、功能预测等。
使用ProtBERT的基本步骤如下:
import torch
from transformers import BertTokenizer, BertModel
# 1. 加载ProtBERT模型和分词器
model_name = "Rostlab/prot_bert"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)
# 2. 准备蛋白质序列
# 示例蛋白质序列
sequence = "M A D E E N L R A V A G I R A L A A K"
# 3. 分词和编码
inputs = tokenizer(sequence, return_tensors="pt", padding=True, truncation=True)
# 4. 模型推断
with torch.no_grad():
outputs = model(**inputs)
# 5. 获取嵌入表示
# outputs[0] 是最后一层的隐藏状态
embeddings = outputs.last_hidden_state
# 6. 打印结果
print("嵌入表示的形状:", embeddings.shape)
网址: https://github.com/facebookresearch/esm
ESM(Evolutionary Scale Modeling)是由Facebook Research开发的一系列深度学习模型,专门用于处理蛋白质序列数据。ESM的设计目的是利用进化信息来生成高质量的蛋白质序列表示,以支持各种下游任务,包括结构预测、功能注释和变异影响分析等。
使用ESM的基本步骤如下:
torch
和esm
。import torch
from esm import ProteinBertModel, ProteinBertTokenizer
# 1. 加载ESM模型和分词器
model_name = "facebook/esm-1b"
tokenizer = ProteinBertTokenizer.from_pretrained(model_name)
model = ProteinBertModel.from_pretrained(model_name)
# 2. 准备蛋白质序列
# 示例蛋白质序列
sequence = "M A D E E N L R A V A G I R A L A A K"
# 3. 分词和编码
inputs = tokenizer(sequence, return_tensors="pt", padding=True, truncation=True)
# 4. 模型推断
with torch.no_grad():
outputs = model(**inputs)
# 5. 获取嵌入表示
embeddings = outputs.last_hidden_state
# 6. 打印结果
print("嵌入表示的形状:", embeddings.shape)
网址: https://huggingface.co/yangyanli/ProtGPT2
ProtGPT2是一个基于GPT-2架构的预训练模型,专门设计用于生成和预测蛋白质序列。其目标是利用生成式模型的能力,生成高质量的蛋白质序列,并支持功能相关的序列生成任务。
使用ProtGPT2的基本步骤如下:
transformers
和torch
库。import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# 1. 加载ProtGPT2模型和分词器
model_name = "yangyanli/ProtGPT2"
tokenizer = GPT2Tokenizer.from_pretrained(model_name)
model = GPT2LMHeadModel.from_pretrained(model_name)
# 2. 准备输入序列
input_sequence = "M A D E E N L R A V A G I R A"
# 3. 编码输入
inputs = tokenizer.encode(input_sequence, return_tensors="pt")
# 4. 模型推断
with torch.no_grad():
outputs = model.generate(inputs, max_length=50)
# 5. 解码生成的序列
generated_sequence = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("生成的序列:", generated_sequence)
网址: https://deepmind.com/research/case-studies/alphafold
AlphaFold是由DeepMind开发的一种深度学习模型,专注于蛋白质结构预测。该模型利用进化信息和深度学习技术,能够从氨基酸序列预测出蛋白质的三维结构,极大地推动了结构生物学的发展。
使用AlphaFold的基本步骤如下:
# 克隆AlphaFold代码库
git clone https://github.com/deepmind/alphafold.git
# 安装依赖
cd alphafold
pip install -r requirements.txt
# 运行AlphaFold预测(示例命令)
python run_alphafold.py --fasta_paths=your_protein_sequence.fasta
网址: https://github.com/songlab-cal/tape
TAPE(Task-Agnostic Protein Embeddings)是一个用于蛋白质序列表示学习的基准框架。它旨在提供一种统一的方法来训练和评估蛋白质序列嵌入,以支持多种生物信息学任务。
使用TAPE的基本步骤如下:
torch
和tape
。import torch
from tape import ProteinBERTModel, ProteinTokenizer
# 1. 加载TAPE模型和分词器
model_name = "tape/protein_bert"
tokenizer = ProteinTokenizer.from_pretrained(model_name)
model = ProteinBERTModel.from_pretrained(model_name)
# 2. 准备蛋白质序列
sequence = "M A D E E N L R A V A G I R A"
# 3. 分词和编码
inputs = tokenizer(sequence, return_tensors="pt")
# 4. 模型推断
with torch.no_grad():
outputs = model(**inputs)
# 5. 结果分析
protein_embeddings = outputs.last_hidden_state
网址: https://github.com/dmis-lab/biobert
BioBERT是一个基于BERT模型的预训练模型,专为生物医学文本挖掘和生物信息学任务而设计。BioBERT在大规模的生物医学文献和临床数据上进行了预训练,旨在提高生物医学领域的文本处理能力。
使用BioBERT的基本步骤如下:
transformers
和torch
。import torch
from transformers import BertTokenizer, BertModel
# 1. 加载BioBERT模型和分词器
model_name = "dmis-lab/biobert-v1.1"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)
# 2. 准备输入文本
input_text = "Tumor necrosis factor (TNF) is a cytokine involved in systemic inflammation."
# 3. 编码输入
inputs = tokenizer(input_text, return_tensors="pt", padding=True, truncation=True)
# 4. 模型推断
with torch.no_grad():
outputs = model(**inputs)
# 5. 结果分析
embeddings = outputs.last_hidden_state
网址: https://huggingface.co/zhihan1996/DNA_bert_6/tree/main
DNA-BERT是基于BERT架构的预训练模型,专为DNA序列的处理和分析设计。该模型旨在生成高质量的DNA序列表示,支持多种生物信息学任务,如序列分类、功能预测和变异分析。
使用DNA-BERT的基本步骤如下:
transformers
和torch
。import torch
from transformers import BertTokenizer, BertModel
# 1. 加载DNA-BERT模型和分词器
model_name = "pyuhong/DNA-BERT"
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)
# 2. 准备输入DNA序列
input_sequence = "ATGCGTAGCTAG..."
# 3. 分词和编码
inputs = tokenizer(input_sequence, return_tensors="pt")
outputs = model(**inputs)
网址: https://huggingface.co/Rostlab/prot_t5_xl_uniref50
ProtT5是基于T5(Text-to-Text Transfer Transformer)架构的预训练模型,专门设计用于处理和生成蛋白质序列。该模型通过将蛋白质序列任务转化为文本生成任务,能够有效执行多种生物信息学任务。
使用ProtT5的基本步骤如下:
transformers
和torch
。import torch
from transformers import T5Tokenizer, T5ForConditionalGeneration
# 1. 加载ProtT5模型和分词器
model_name = "yangyanli/prot_t5"
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)
# 2. 准备输入蛋白质序列
input_sequence = "Translate the following sequence: M A D E E N L R A V A G I R A"
# 3. 编码输入
inputs = tokenizer(input_sequence, return_tensors="pt")
# 4. 模型推断
with torch.no_grad():
outputs = model.generate(**inputs)
# 5. 解码生成的序列
generated_sequence = tokenizer.decode(outputs[0], skip_special_tokens=True)