🚀 Isoformer
Isoformer 是一個能夠準確預測差異轉錄表達的模型,它超越了現有方法,並充分利用了多種模態的數據。該框架能夠從三個預訓練編碼器中高效地遷移知識,這些編碼器分別是用於 DNA 模態的 Enformer、用於 RNA 模態的 Nucleotide Transformer v2 以及用於蛋白質模態的 ESM2。
標籤與數據集
屬性 |
詳情 |
標籤 |
DNA、RNA、蛋白質、生物學、基因組學 |
數據集 |
InstaDeepAI/multi_omics_transcript_expression |
開發者
由 InstaDeep 開發。
🚀 快速開始
下面是一個簡單的代碼片段,用於根據 DNA、RNA 和蛋白質序列獲取嵌入向量和基因表達預測結果。
基礎用法
from transformers import AutoTokenizer, AutoModelForMaskedLM
import numpy as np
import torch
tokenizer = AutoTokenizer.from_pretrained("InstaDeepAI/isoformer", trust_remote_code=True)
model = AutoModelForMaskedLM.from_pretrained("InstaDeepAI/isoformer",trust_remote_code=True)
protein_sequences = ["RSRSRSRSRSRSRSRSRSRSRL" * 9]
rna_sequences = ["ATTCCGGTTTTCA" * 9]
sequence_length = 196_608
rng = np.random.default_rng(seed=0)
dna_sequences = ["".join(rng.choice(list("ATCGN"), size=(sequence_length,)))]
torch_tokens = tokenizer(
dna_input=dna_sequences, rna_input=rna_sequences, protein_input=protein_sequences
)
dna_torch_tokens = torch.tensor(torch_tokens[0]["input_ids"])
rna_torch_tokens = torch.tensor(torch_tokens[1]["input_ids"])
protein_torch_tokens = torch.tensor(torch_tokens[2]["input_ids"])
torch_output = model.forward(
tensor_dna=dna_torch_tokens,
tensor_rna=rna_torch_tokens,
tensor_protein=protein_torch_tokens,
attention_mask_rna=rna_torch_tokens != 1,
attention_mask_protein=protein_torch_tokens != 1,
)
print(f"Gene expression predictions: {torch_output['gene_expression_predictions']}")
print(f"Final DNA embedding: {torch_output['final_dna_embeddings']}")
📦 訓練數據
Isoformer 在從 GTex 門戶獲取的 RNA 轉錄表達數據上進行訓練。具體來說,這些數據是來自 5000 多個個體的 30 種組織的轉錄本 TPM 測量值。總體而言,該數據集包含約 17 萬個獨特的轉錄本,其中 9 萬個是蛋白質編碼轉錄本,對應約 2 萬個獨特的基因。