Transformers documentation
ESMFold2
Model ini disumbangkan ke Hugging Face Transformers pada 2026-08-19.
ESMFold2
Ikhtisar
ESMFold2 adalah model prediksi struktur protein all-atom. Model ini memprediksi koordinat 3D dan kepercayaan per residu (pLDDT, PAE, PDE) langsung dari urutan asam amino, dengan menggunakan model bahasa protein ESMC sebagai tulang punggungnya. Arsitekturnya menggabungkan encoder atom sliding-window dengan 3D rotary position embeddings, trunk folding pairwise yang diterapkan secara iteratif, kepala struktur berbasis difusi, dan kepala kepercayaan.
Checkpoint model tersedia di Hugging Face Hub di biohub/ESMFold2.
Contoh penggunaan
import torch
from transformers import EsmFold2Model
# The ESMC backbone is bundled in the checkpoint and loaded with the model.
# bf16 is the recommended inference precision.
model = EsmFold2Model.from_pretrained("biohub/ESMFold2", dtype=torch.bfloat16, device_map="auto")
pdb_string = model.infer_protein_as_pdb("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ")
print(pdb_string)infer_protein mengembalikan output mentah (koordinat atom, logit distogram, dan metrik kepercayaan) sebagai EsmFold2Output jika Anda membutuhkannya alih-alih string PDB. Anda mungkin mendapatkan prediksi yang sedikit berbeda jika menjalankan urutan yang sama beberapa kali. Tetapkan seed manual jika Anda menginginkan struktur yang benar-benar dapat direproduksi.
ESMFold2 menggambar config.structure_head.num_diffusion_samples struktur per lipatan. infer_protein_as_pdb merender yang peringkat terbaik (pTM tertinggi); lewati sample_idx untuk memilih sampel tertentu. PDB membawa pLDDT per residu di kolom b-faktor, pada skala 0-1 yang sama dengan output plddt.
forward vs fold
Prediksi struktur memiliki dua bagian. EsmFold2Model.forward adalah bagian pertama: ia menjalankan trunk pelipatan pada input yang telah difeaturisasi dan mengembalikan representasi pasangan yang disempurnakan beserta distogram, sebagai EsmFold2TrunkOutput. Ia tidak menghasilkan koordinat 3D — ESMFold2 memperolehnya melalui denoising iteratif, dan loop sampling tersebut (jadwal noise, penyesuaian Kabsch, dan pembaruan ODE/SDE) berada di EsmFold2FoldingMixin bersama dengan panggilan confidence head:
| Metode | Gunakan untuk |
|---|---|
infer_protein_as_pdb(sequence) | string PDB, langsung dari urutan asam amino |
infer_protein(sequence) | EsmFold2Output mentah |
fold(**features) | input yang sudah difeaturisasi sebelumnya (yang dipanggil oleh infer_protein) |
forward(**features) | hanya trunk — distogram dan representasi pasangan, tanpa sampling |
Panggil fold atau infer_protein untuk struktur aktual. Gunakan forward ketika Anda hanya membutuhkan distogram, atau ketika Anda ingin mengoperasikan sampler difusi sendiri: fold memanggil forward sekali lalu menyerahkan outputnya ke EsmFold2DiffusionModule, di mana forward miliknya adalah langkah denoising tunggal.
Inferensi lebih cepat dengan kernel yang digabungkan
Biaya dominan dari folding trunk adalah pembaruan perkalian segitiga. Menjalankan use_kernels=True ke from_pretrained() menggantinya dengan kernel Triton yang terintegrasi dan dimuat dari Hub melalui pustaka kernels, tanpa mengubah prediksi. Fitur ini hanya untuk inferensi dan
hanya untuk CUDA; pada CPU atau jika kernel tidak terpasang, model secara transparan kembali ke implementasi PyTorch murni.
Pastikan model berada pada perangkat CUDA saat kernelisasi terjadi (misalnya dengan device_map).
import torch
from transformers import EsmFold2Model
model = EsmFold2Model.from_pretrained(
"biohub/ESMFold2", dtype=torch.bfloat16, device_map="cuda", use_kernels=True
)
pdb_string = model.infer_protein_as_pdb("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ")EsmFold2Config
kelas transformers.EsmFold2Config
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int | None = 384pairwise_hidden_size: int | None = 256single_inputs_size: int | None = 451pair_transition_intermediate_size: int | None = 1024sliding_window: int | None = 128chunk_size: int | None = 64num_relative_residx_bins: int | None = 32num_relative_chain_bins: int | None = 2num_loops: int | None = 10num_res_types: int | None = 33max_atomic_number: int | None = 128char_vocab_size: int | None = 64max_chars: int | None = 4max_atoms_per_token: int | None = 23atom_feature_dim: int | None = Nonefolding_trunk_num_hidden_layers: int | None = 24parcae_num_coda_layers: int | None = 2atom_encoder: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2AtomEncoderConfig | None = Nonestructure_head: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2StructureHeadConfig | None = Noneconfidence_head: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2ConfidenceHeadConfig | None = Nonemsa_encoder: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2MsaEncoderConfig | None = Nonelm_encoder: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2LmEncoderConfig | None = Noneesmc_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
Parameter
- hidden_size (
int, opsional, default 384) — Lebar representasi tunggal. - pairwise_hidden_size (
int, opsional, default 256) — Lebar representasi pasangan. - single_inputs_size (
int, opsional, default 451) — Lebar fitur single-input yang digabungkan dan diberikan ke trunk serta kondisioning difusi:atom_encoder.output_dimditambah dua one-hot tipe residu dan skalar profil. - pair_transition_intermediate_size (
int, opsional, default 1024) — Lebar SwiGLU dari transisi pair-stream. - sliding_window (
int, opsional, default 128) — Ukuran jendela geser (jarak indeks token) untuk atom-stack attention, sebagai lebar total jendela, bukan radius. - chunk_size (
int, opsional, default 64) — Ukuran chunk untuk operasi pair-/MSA-stream yang berat memori.Nonemenonaktifkan chunking. - num_relative_residx_bins (
int, opsional, default 32) — Jumlah bin indeks residu relatif dalam encoding posisi relatif. - num_relative_chain_bins (
int, opsional, defaultnya 2) — Jumlah bin indeks rantai relatif dalam pengkodean posisi relatif. - num_loops (
int, opsional, default 10) — Jumlah loop penyempurnaan trunk. - num_res_types (
int, opsional, defaultnya 33) — Jumlah tipe residu. - max_atomic_number (
int, opsional, default 128) — Ukuran one-hot elemen dalam fitur atom. - char_vocab_size (
int, opsional, default 64) — Ukuran kosakata karakter untuk nama atom yang dikodekan. - max_chars (
int, opsional, default 4) — Jumlah karakter per nama atom yang dikodekan. - max_atoms_per_token (
int, opsional, default 23) — Jumlah maksimum atom per token. - atom_feature_dim (
int, opsional) — Lebar fitur atom: xyz, muatan dan mask, plus one-hot untuk elemen dan karakter nama atom. Diturunkan darimax_atomic_number,char_vocab_sizedanmax_charsjika tidak disetel. - folding_trunk_num_hidden_layers (
int, opsional, default 24) — Jumlah blok pembaruan pasangan di folding trunk. - parcae_num_coda_layers (
int, opsional, default 2) — Jumlah blok pair-update dalam parcae coda. - atom_encoder (
EsmFold2AtomEncoderConfig, opsional) — Konfigurasi untuk encoder atom SWA inputs-embedder. - structure_head (
EsmFold2StructureHeadConfig, opsional) — Konfigurasi untuk kepala prediksi struktur difusi (menyimpan sub-konfigurasidiffusion_module). - confidence_head (
EsmFold2ConfidenceHeadConfig, opsional) — Konfigurasi untuk confidence head. - msa_encoder (
EsmFold2MsaEncoderConfig, opsional) — Konfigurasi untuk encoder MSA. - lm_encoder (
EsmFold2LmEncoderConfig, opsional) — Konfigurasi untuk encoder hidden-state model bahasa. - esmc_config (EsmcConfig, opsional) — Konfigurasi untuk backbone ESMC yang disertakan.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Esmfold2Model. Kelas ini digunakan untuk membuat instans model Esmfold2 sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari biohub/ESMFold2
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Memeriksa relasi lebar yang melintasi sub-konfigurasi; setiap sub-konfigurasi memeriksa miliknya sendiri.
EsmFold2PreTrainedModel
kelas transformers.EsmFold2PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Parameter
- config (PreTrainedConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
EsmFold2Model
kelas transformers.EsmFold2Model
< source >( config: EsmFold2Config )
Parameter
- config (EsmFold2Config) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Prediksi struktur protein all-atom ESMFold2 dengan backbone model bahasa protein ESMC yang disertakan. Ini adalah arsitektur ESMFold2 standar yang dirilis, yang trunk-nya adalah tumpukan rekurens linear (secara internal disebut “parcae”).
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( token_index: Tensorresidue_index: Tensorasym_id: Tensorsym_id: Tensorentity_id: Tensormol_type: Tensorres_type: Tensortoken_bonds: Tensorattention_mask: Tensoratom_inputs: EsmFold2AtomInputsdeletion_mean: typing.Optional[torch.Tensor] = Nonemsa: typing.Optional[torch.Tensor] = Nonehas_deletion: typing.Optional[torch.Tensor] = Nonedeletion_value: typing.Optional[torch.Tensor] = Nonemsa_attention_mask: typing.Optional[torch.Tensor] = Noneinput_ids: typing.Optional[torch.Tensor] = Nonelm_hidden_states: typing.Optional[torch.Tensor] = Nonenum_loops: int | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] or tuple(torch.Tensor)
Parameter
- token_index (torch.Tensor dengan bentuk (batch_size, num_tokens)) — Indeks posisi per token di dalam kompleks penuh; memberi makan encoding posisi relatif.
- residue_index (torch.Tensor dengan bentuk (batch_size, num_tokens)) — Indeks residu di dalam setiap rantai; memberi makan encoding posisi relatif.
- asym_id (torch.Tensor dengan bentuk (batch_size, num_tokens)) — ID unit asimetris (rantai) untuk setiap token.
- sym_id (torch.Tensor dengan bentuk (batch_size, num_tokens)) — ID salinan simetri yang membedakan rantai identik dari homomer.
- entity_id (torch.Tensor dengan bentuk (batch_size, num_tokens)) — Entity ID yang mengelompokkan token-token yang termasuk dalam entitas molekuler yang sama.
- mol_type (torch.Tensor dengan bentuk (batch_size, num_tokens)) —
Kode tipe molekul untuk setiap token:
0= protein,1= DNA,2= RNA,3= non-polymer (ligan). - res_type (torch.Tensor dengan bentuk (batch_size, num_tokens)) — Indeks tipe residu (identitas asam amino) untuk setiap token.
- token_bonds (torch.Tensor dengan bentuk (batch_size, num_tokens, num_tokens, 1)) — Fitur ikatan kovalen antar-token pairwise.
- attention_mask (torch.Tensor dengan bentuk (batch_size, num_tokens)) —
Mask yang menandai token valid (
1) dan padding (0). Input harus di-padding di sisi kanan. - atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — Tensor atom konformer referensi mentah, yang dibundel: posisi, nomor atom, muatan formal, nama atom yang dikodekan, ID grup per atom, mask padding atom, dan peta atom->token.
- deletion_mean (torch.Tensor dengan bentuk (batch_size, num_tokens), opsional) — Jumlah rata-rata penghapusan MSA per kolom. Nilainya secara default nol (tanpa MSA).
- msa (torch.Tensor dengan bentuk (batch_size, msa_depth, num_tokens), opsional) — Token tipe residu MSA (baris 0 adalah urutan query). Secara default menggunakan MSA berurutan tunggal.
- has_deletion (torch.Tensor dengan bentuk (batch_size, msa_depth, num_tokens), opsional) — Bendera boolean yang menandai posisi MSA yang didahului oleh penghapusan.
- deletion_value (torch.Tensor dengan bentuk (batch_size, msa_depth, num_tokens), opsional) — Jumlah penghapusan MSA per posisi.
- msa_attention_mask (torch.Tensor dengan bentuk (batch_size, msa_depth, num_tokens), opsional) — Mask validitas untuk baris/kolom MSA.
- input_ids (torch.Tensor dengan bentuk (batch_size, num_tokens), opsional) — ID token ESMC-vocabulary untuk urutan. Diberikan ke backbone ESMC bawaan untuk menghasilkan lm_hidden_states ketika nilai tersebut tidak diberikan secara langsung; diabaikan ketika lm_hidden_states diberikan.
- lm_hidden_states (torch.Tensor dengan bentuk (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size), opsional) — Hidden states backbone ESMC yang telah dihitung sebelumnya, satu untuk setiap lapisan backbone ditambah embeddings. Jika disediakan, backbone tidak dijalankan dan input_ids tidak digunakan.
- num_loops (int, opsional) — Jumlah loop penyempurnaan trunk. Bawaan adalah config.num_loops.
Mengembalikan
[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] atau tuple(torch.Tensor)
A [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] atau tuple dari torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([EsmFold2Config]) dan input.
Jalankan folding trunk: featurize input, embed mereka ke dalam representasi pair, haluskan melalui num_loops iterasi recycling, dan baca distogram. Ini adalah bagian deterministik dari prediksi struktur; diffusion sampler yang mengubah representasi pair yang dikembalikan menjadi koordinat 3D berada di EsmFold2FoldingMixin — panggil [~EsmFold2Model.fold] atau [~EsmFold2Model.infer_protein] untuk prediksi end-to-end.
- distogram_logits (torch.Tensor dengan bentuk (batch_size, num_tokens, num_tokens, distogram_bins)) — Logit distribusi jarak yang diprediksi untuk pasangan residu.
- pair_states (torch.Tensor dengan bentuk (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Representasi pasangan akhir dari trunk, dalam fp32.
- single_inputs (torch.Tensor dengan bentuk (batch_size, num_tokens, single_inputs_size)) — Fitur input tunggal yang digabungkan, dibuat oleh embedder input.
- relative_position_encoding (torch.Tensor dengan bentuk (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Encoding pasangan posisi relatif.
- token_bonds_encoding (torch.Tensor dengan bentuk (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Fitur ikatan kovalen antar-token yang ter-embed.
- atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, opsional) — Input atom dari konformer referensi yang telah difeaturisasi, digunakan kembali oleh tumpukan atom difusi.
lipat
< source >( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )
Prediksi struktur secara end-to-end dari input yang telah difeaturisasi: jalankan trunk (EsmFold2Model.forward, yang mendokumentasikan argumen fitur), ambil sampel koordinat dari kepala struktur difusi, dan beri skor dengan kepala kepercayaan.
Hanya argumen yang dibutuhkan oleh sampler dan confidence head yang disebutkan di sini; sisanya diteruskan ke trunk tanpa perubahan, sehingga fold menerima argumen yang sama dengan forward.
attention_mask (torch.Tensor dengan bentuk (batch_size, num_tokens)):
Mask yang menandai token valid (1) dan padding (0). Juga diteruskan ke trunk.
asym_id (torch.Tensor dengan bentuk (batch_size, num_tokens)):
ID unit asimetris (rantai) untuk setiap token. Juga diteruskan ke trunk.
mol_type (torch.Tensor dengan bentuk (batch_size, num_tokens)):
Kode tipe molekul untuk setiap token: 0 = protein, 1 = DNA, 2 = RNA, 3 = non-polymer (ligan). Juga diteruskan ke trunk.
distogram_atom_idx (torch.Tensor dengan bentuk (batch_size, num_tokens)):
Indeks atom representatif (Cβ, atau Cα untuk glisin) dari setiap token. Digunakan oleh confidence head; trunk tidak membutuhkannya.
num_diffusion_samples (int, opsional):
Jumlah sampel struktur paralel yang akan diambil; confidence head dijalankan ulang sekali per sampel.
Nilai defaultnya adalah config.structure_head.num_diffusion_samples.
num_sampling_steps (int, opsional):
Jumlah langkah sampling difusi. Nilai defaultnya adalah config.structure_head.inference_num_steps.
trunk_kwargs:
Input yang telah difeaturisasi lainnya (termasuk num_loops, serta tensor per-atom mentah yang dibundel
di bawah menjadi atom_inputs), diteruskan ke [EsmFold2Model.forward], yang mendokumentasikannya.
Featurize sequence dan lipat. forward_kwargs diteruskan ke [~EsmFold2Model.fold].
Lipat sequence dan render prediksi sebagai string PDB.
sample_idx memilih sampel difusi mana yang akan dirender; secara default, yang memiliki peringkat terbaik.
EsmFold2Output
kelas transformers.models.esmfold2.modeling_esmfold2.EsmFold2Output
< source >( distogram_logits: typing.Optional[torch.Tensor] = Nonesample_atom_coords: typing.Optional[torch.Tensor] = Noneplddt_logits: typing.Optional[torch.Tensor] = Noneplddt: typing.Optional[torch.Tensor] = Noneplddt_per_atom: typing.Optional[torch.Tensor] = Noneplddt_ca: typing.Optional[torch.Tensor] = Nonecomplex_plddt: typing.Optional[torch.Tensor] = Nonecomplex_iplddt: typing.Optional[torch.Tensor] = Nonepae_logits: typing.Optional[torch.Tensor] = Nonepae: typing.Optional[torch.Tensor] = Nonepde_logits: typing.Optional[torch.Tensor] = Nonepde: typing.Optional[torch.Tensor] = Noneresolved_logits: typing.Optional[torch.Tensor] = Noneptm: typing.Optional[torch.Tensor] = Noneiptm: typing.Optional[torch.Tensor] = Nonepair_chains_iptm: typing.Optional[torch.Tensor] = None )
Parameter
- distogram_logits (
torch.Tensordengan bentuk(batch_size, num_tokens, num_tokens, distogram_bins)) — Logit distribusi jarak yang diprediksi untuk pasangan residu (tidak bergantung pada RNG; tanpa sampling difusi). - sample_atom_coords (
torch.Tensordengan bentuk(num_diffusion_samples, num_atoms, 3)) — Koordinat Kartesius semua atom yang diprediksi untuk setiap sampel difusi. - plddt_logits (
torch.Tensordengan bentuk(num_diffusion_samples, num_atoms, num_plddt_bins)) — Logits bin pLDDT per atom. - plddt (
torch.Tensordengan bentuk(num_diffusion_samples, num_tokens)) — Keyakinan lDDT prediksi per residu. - plddt_per_atom (
torch.Tensordengan bentuk(num_diffusion_samples, num_atoms)) — Keyakinan lDDT prediksi per atom. - plddt_ca (
torch.Tensordengan bentuk(num_diffusion_samples, num_tokens)) — lDDT yang diprediksi pada atom representatif (Cα) dari setiap token. - complex_plddt (
torch.Tensordengan bentuk(num_diffusion_samples,)) — Rata-rata pLDDT di semua atom kompleks. - complex_iplddt (
torch.Tensordengan bentuk(num_diffusion_samples,)) — pLDDT kompleks berbobot antarmuka. - pae_logits (
torch.Tensordengan bentuk(num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — Logit bin predicted-aligned-error. - pae (
torch.Tensordengan bentuk(num_diffusion_samples, num_tokens, num_tokens)) — Expected predicted aligned error (Å) untuk setiap pasangan residu. - pde_logits (
torch.Tensordengan bentuk(num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — Logit bin untuk jarak prediksi-kesalahan. - pde (
torch.Tensordengan bentuk(num_diffusion_samples, num_tokens, num_tokens)) — Kesalahan jarak prediksi yang diharapkan (Å) untuk setiap pasangan residu. - resolved_logits (
torch.Tensordengan bentuk(num_diffusion_samples, num_atoms, 2)) — Logits terurai/tidak terurai per atom. - ptm (
torch.Tensordengan bentuk(num_diffusion_samples,)) — Skor TM yang diprediksi untuk setiap sampel. - iptm (
torch.Tensordengan bentuk(num_diffusion_samples,)) — Skor TM antarmuka yang diprediksi untuk setiap sampel. - pair_chains_iptm (
torch.Tensordengan bentuk(num_diffusion_samples, num_chains, num_chains)) — Skor TM antarmuka yang diprediksi untuk setiap pasangan rantai yang terurut.
Output dari EsmFold2Model. Semua skor kepercayaan berada pada skala 0-1; tensor per sampel memiliki sumbu num_diffusion_samples di depan.
EsmFold2TrunkOutput
kelas transformers.models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput
< source >( distogram_logits: typing.Optional[torch.Tensor] = Nonepair_states: typing.Optional[torch.Tensor] = Nonesingle_inputs: typing.Optional[torch.Tensor] = Nonerelative_position_encoding: typing.Optional[torch.Tensor] = Nonetoken_bonds_encoding: typing.Optional[torch.Tensor] = Noneatom_inputs: transformers.models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs | None = None )
Parameter
- distogram_logits (
torch.Tensordengan bentuk(batch_size, num_tokens, num_tokens, distogram_bins)) — Logit distribusi jarak yang diprediksi untuk pasangan residu. - pair_states (
torch.Tensordengan bentuk(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Representasi pasangan akhir dari trunk, dalam fp32. - single_inputs (
torch.Tensordengan bentuk(batch_size, num_tokens, single_inputs_size)) — Fitur input tunggal yang digabungkan, dibuat oleh inputs embedder. - relative_position_encoding (
torch.Tensordengan bentuk(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Enkoding pasangan posisi relatif. - token_bonds_encoding (
torch.Tensordengan bentuk(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Fitur ikatan kovalen antar-token yang ter-embed. - atom_inputs (
~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, opsional) — Input atom dari konformer referensi yang telah difeaturisasi, digunakan kembali oleh tumpukan atom difusi.
Output dari EsmFold2Model.forward(): representasi pasangan dari trunk folding, distogram yang dibaca darinya, dan tensor kondisioning yang dikonsumsi oleh kepala struktur dan kepercayaan. Semua di sini bersifat deterministik mengingat inputnya, kecuali keadaan pasangan awal acak dari trunk.
EsmFold2AtomInputs
kelas transformers.models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs
< source >( ref_pos: Tensorref_charge: Tensoratom_attention_mask: Tensorref_element: Tensorref_atom_name_chars: Tensorref_space_uid: Tensoratom_to_token: Tensor )
Parameter
- ref_pos — (batch_size, num_atoms, 3) koordinat Kartesius konformer referensi.
- ref_charge — muatan formal setiap atom (batch_size, num_atoms).
- atom_attention_mask — (batch_size, num_atoms) atom valid (1) versus padding (0).
- ref_element — (batch_size, num_atoms, max_atomic_number) nomor atom one-hot.
- ref_atom_name_chars — (batch_size, num_atoms, max_chars, char_vocab_size) nama atom one-hot.
- ref_space_uid — (batch_size, num_atoms) ID grup per atom (indeks token atom tersebut).
- atom_to_token — (batch_size, num_atoms) indeks token yang dimiliki oleh setiap atom.
Input atom referensi-konformer yang telah difeaturisasi, dibundel agar tumpukan atom hanya memerlukan satu argumen.
Diterima sebagai satu argumen oleh [EsmFold2Model.forward], berisi tensor featurizer mentah. EsmFold2Model._prepare_features kemudian melakukan one-hot encoding pada field kategorikal dan menolkan padding, dan forward mengganti tensor tersebut dengan dataclasses.replace, sehingga setiap konsumen di hilir titik tersebut melihat bentuk terenkod yang didokumentasikan di bawah. Dikembalikan pada [EsmFold2TrunkOutput] agar diffusion sampler dan confidence head dapat menggunakan kembali featurisasi trunk alih-alih melakukannya ulang.
Dataclass biasa alih-alih [~utils.ModelOutput]: setiap field di sini wajib dan dibaca tanpa syarat di hilir, sedangkan ModelOutput hanya mengizinkan satu field wajib (sisa field harus memiliki nilai default None), yang akan mengubah tensor yang hilang dari error konstruktor menjadi None yang muncul jauh di dalam atom encoder.