Transformers documentation

ESMFold2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Mô hình này đã được đóng góp cho Hugging Face Transformers vào ngày 2026-08-19.

ESMFold2

Tổng quan

ESMFold2 là mô hình dự đoán cấu trúc protein toàn nguyên tử. Nó dự đoán tọa độ 3D và độ tin cậy theo từng residue (pLDDT, PAE, PDE) trực tiếp từ trình tự amino acid, sử dụng mô hình ngôn ngữ protein ESMC làm khung xương. Kiến trúc kết hợp bộ mã hóa nguyên tử cửa sổ trượt với nhúng vị trí quay 3D, thân gấp đôi cặp được áp dụng lặp lại, đầu cấu trúc dựa trên diffusion và đầu độ tin cậy.

Checkpoint của mô hình có sẵn trên Hugging Face Hub tại biohub/ESMFold2.

Ví dụ sử dụng

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 trả về các đầu ra thô (tọa độ nguyên tử, distogram logits và các chỉ số độ tin cậy) dưới dạng EsmFold2Output nếu bạn cần chúng thay vì chuỗi PDB. Bạn có thể nhận được các dự đoán hơi khác nhau nếu chạy cùng một trình tự nhiều lần. Hãy đặt seed thủ công nếu bạn muốn các cấu trúc tái lập chính xác.

ESMFold2 vẽ config.structure_head.num_diffusion_samples cấu trúc cho mỗi lần gấp. infer_protein_as_pdb hiển thị cấu trúc có thứ hạng cao nhất (pTM cao nhất); truyền sample_idx để chọn một mẫu cụ thể thay thế. Tệp PDB chứa pLDDT cho từng residue trong cột b-factor, trên cùng thang đo 0-1 như đầu ra plddt.

forward so với fold

Dự đoán cấu trúc gồm hai phần. EsmFold2Model.forward là phần đầu tiên: nó chạy phần thân gấp cuộn trên các đầu vào đã được đặc trưng hóa và trả về biểu diễn cặp đã tinh chỉnh cùng với distogram, dưới dạng EsmFold2TrunkOutput. Nó không tạo ra tọa độ 3D — ESMFold2 lấy được những tọa độ đó bằng cách khử nhiễu lặp lại, và vòng lặp lấy mẫu đó (lịch trình nhiễu, căn chỉnh Kabsch và cập nhật ODE/SDE) nằm trong EsmFold2FoldingMixin cùng với lời gọi đầu ra độ tin cậy:

Phương phápSử dụng cho
infer_protein_as_pdb(sequence)chuỗi PDB, trực tiếp từ trình tự axit amin
infer_protein(sequence)bản thô EsmFold2Output
fold(**features)đầu vào đã được tạo đặc trưng trước (gọi là infer_protein)
forward(**features)chỉ phần thân — một biểu đồ phân phối và biểu diễn cặp, không có lấy mẫu

Gọi fold hoặc infer_protein để lấy cấu trúc thực tế. Dùng forward khi bạn chỉ cần distogram, hoặc khi bạn muốn tự điều khiển diffusion sampler: fold gọi forward một lần rồi chuyển kết quả của nó sang EsmFold2DiffusionModule, trong đó forward của module này chính là bước khử nhiễu duy nhất.

Suy luận nhanh hơn với kernel đã hợp nhất

Chi phí chủ đạo của folding trunk là thao tác cập nhật nhân tam giác. Truyền use_kernels=True vào from_pretrained() sẽ thay thế nó bằng một Triton kernel đã được hợp nhất, tải từ Hub thông qua thư viện kernels, trong khi giữ nguyên kết quả dự đoán. Tính năng này chỉ dành cho suy luận và chỉ chạy trên CUDA; trên CPU hoặc khi chưa cài đặt kernel, mô hình sẽ tự động chuyển về cài đặt thuần PyTorch. Hãy đảm bảo mô hình nằm trên thiết bị CUDA tại thời điểm kernelization diễn ra (ví dụ bằng 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

lớp transformers.EsmFold2Config

< >

( 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 )

Tham số

  • hidden_size (int, tùy chọn, mặc định là 384) — Chiều rộng của biểu diễn đơn.
  • pairwise_hidden_size (int, tùy chọn, mặc định là 256) — Độ rộng của biểu diễn cặp.
  • single_inputs_size (int, tuỳ chọn, mặc định là 451) — Chiều rộng của các đặc trưng đầu vào đơn đã được nối ghép, được đưa vào phần thân (trunk) và điều kiện khuếch tán (diffusion conditioning): atom_encoder.output_dim cộng thêm hai one-hot kiểu residue và một scalar profile.
  • pair_transition_intermediate_size (int, tùy chọn, mặc định là 1024) — Chiều rộng SwiGLU của các chuyển tiếp trong luồng cặp.
  • sliding_window (int, tùy chọn, mặc định là 128) — Kích thước cửa sổ trượt (khoảng cách chỉ số token) cho chú ý atom-stack, tính theo tổng chiều rộng cửa sổ thay vì bán kính.
  • chunk_size (int, tùy chọn, mặc định là 64) — Kích thước chunk cho các thao tác pair-/MSA-stream tốn nhiều bộ nhớ. None để tắt việc chia chunk.
  • num_relative_residx_bins (int, tuỳ chọn, mặc định là 32) — Số lượng bin chỉ số dư tương đối trong mã hóa vị trí tương đối.
  • num_relative_chain_bins (int, tùy chọn, mặc định là 2) — Số lượng bin chỉ số chuỗi tương đối trong mã hóa vị trí tương đối.
  • num_loops (int, tùy chọn, mặc định là 10) — Số vòng lặp tinh chỉnh thân.
  • num_res_types (int, tùy chọn, mặc định là 33) — Số lượng loại residue.
  • max_atomic_number (int, tùy chọn, mặc định là 128) — Kích thước của one-hot phần tử trong các đặc trưng của nguyên tử.
  • char_vocab_size (int, tuỳ chọn, mặc định là 64) — Kích thước từ điển ký tự cho các tên nguyên tử đã mã hóa.
  • max_chars (int, tùy chọn, mặc định là 4) — Số lượng ký tự cho mỗi tên nguyên tử đã mã hóa.
  • max_atoms_per_token (int, tùy chọn, mặc định là 23) — Số lượng nguyên tử tối đa cho mỗi token.
  • atom_feature_dim (int, tùy chọn) — Độ rộng đặc trưng của nguyên tử: xyz, charge và mask, cùng với one-hot của element và atom-name-char. Được suy ra từ max_atomic_number, char_vocab_size và max_chars nếu không được đặt.
  • folding_trunk_num_hidden_layers (int, tùy chọn, mặc định là 24) — Số lượng khối cập nhật cặp trong thân folding.
  • parcae_num_coda_layers (int, tùy chọn, mặc định là 2) — Số lượng khối cập nhật cặp trong parcae coda.
  • atom_encoder (EsmFold2AtomEncoderConfig, tùy chọn) — Cấu hình cho bộ mã hóa nguyên tử SWA của inputs-embedder.
  • structure_head (EsmFold2StructureHeadConfig, tùy chọn) — Cấu hình cho đầu dự đoán cấu trúc khuếch tán (chứa cấu hình con diffusion_module).
  • confidence_head (EsmFold2ConfidenceHeadConfig, tùy chọn) — Cấu hình cho phần đầu độ tin cậy.
  • msa_encoder (EsmFold2MsaEncoderConfig, tùy chọn) — Cấu hình cho bộ mã hóa MSA.
  • lm_encoder (EsmFold2LmEncoderConfig, tuỳ chọn) — Cấu hình cho bộ mã hóa trạng thái ẩn của mô hình ngôn ngữ.
  • esmc_config (EsmcConfig, tùy chọn) — Cấu hình cho bộ khung ESMC được tích hợp sẵn.

Đây là lớp cấu hình để lưu trữ cấu hình của một Esmfold2Model. Nó được sử dụng để khởi tạo một mô hình Esmfold2 theo các đối số được chỉ định, xác định kiến trúc mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như của biohub/ESMFold2

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

validate_architecture

< >

( )

Kiểm tra các quan hệ về chiều rộng bao trùm các cấu hình con; mỗi cấu hình con sẽ tự kiểm tra phần của mình.

EsmFold2PreTrainedModel

lớp transformers.EsmFold2PreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Tham số

  • config (PreTrainedConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

EsmFold2Model

lớp transformers.EsmFold2Model

< >

( config: EsmFold2Config )

Tham số

  • config (EsmFold2Config) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

ESMFold2 là bộ dự đoán cấu trúc protein toàn nguyên tử với bộ khung protein-language-model ESMC được tích hợp sẵn. Đây là kiến trúc ESMFold2 tiêu chuẩn được phát hành, trong đó phần thân là một chồng tuyến tính-đệ quy (được gọi là “parcae” bên trong).

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( 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.FloatTensor)

Tham số

  • token_index (torch.Tensor có hình dạng (batch_size, num_tokens)) — Chỉ số vị trí cho từng token trong toàn bộ complex; dùng để cung cấp cho mã hóa vị trí tương đối.
  • residue_index (torch.Tensor có hình dạng (batch_size, num_tokens)) — Chỉ số residue trong mỗi chuỗi; cung cấp dữ liệu cho mã hóa vị trí tương đối.
  • asym_id (torch.Tensor có hình dạng (batch_size, num_tokens)) — ID của đơn vị bất đối xứng (chuỗi) cho mỗi token.
  • sym_id (torch.Tensor có hình dạng (batch_size, num_tokens)) — ID bản sao đối xứng phân biệt các chuỗi giống hệt nhau của một homomer.
  • entity_id (torch.Tensor có hình dạng (batch_size, num_tokens)) — ID thực thể nhóm các token thuộc cùng một thực thể phân tử.
  • mol_type (torch.Tensor có hình dạng (batch_size, num_tokens)) — Mã loại phân tử cho mỗi token: 0 = protein, 1 = DNA, 2 = RNA, 3 = không phải polymer (ligand).
  • res_type (torch.Tensor có hình dạng (batch_size, num_tokens)) — Chỉ số loại residue (bản dạng amino acid) cho mỗi token.
  • token_bonds (torch.Tensor có hình dạng (batch_size, num_tokens, num_tokens, 1)) — Đặc trưng liên kết cộng hóa trị giữa các cặp token.
  • attention_mask (torch.Tensor có hình dạng (batch_size, num_tokens)) — Mặt nạ đánh dấu các token hợp lệ (1) so với padding (0). Đầu vào phải được đệm bên phải.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — Các tensor nguyên tử của cấu hình tham chiếu thô, được đóng gói: vị trí, số nguyên tử, điện tích hình thức, tên nguyên tử đã mã hóa, ID nhóm cho từng nguyên tử, mặt nạ đệm nguyên tử và bản đồ ánh xạ nguyên tử->token.
  • deletion_mean (torch.Tensor có hình dạng (batch_size, num_tokens), tuỳ chọn) — Số lượng xoá MSA trung bình cho mỗi cột. Mặc định là các số 0 (không có MSA).
  • msa (torch.Tensor có hình dạng (batch_size, msa_depth, num_tokens), tuỳ chọn) — Các token kiểu residue của MSA (dòng 0 là trình tự truy vấn). Mặc định là MSA đơn trình tự.
  • has_deletion (torch.Tensor có hình dạng (batch_size, msa_depth, num_tokens), tuỳ chọn) — Cờ Boolean đánh dấu các vị trí MSA có một khoảng xoá (deletion) đứng trước.
  • deletion_value (torch.Tensor có hình dạng (batch_size, msa_depth, num_tokens), tùy chọn) — Số lượng xóa MSA theo từng vị trí.
  • msa_attention_mask (torch.Tensor có hình dạng (batch_size, msa_depth, num_tokens), tuỳ chọn) — Mặt nạ hợp lệ cho các hàng/cột của MSA.
  • input_ids (torch.Tensor có shape (batch_size, num_tokens), optional) — Các token id theo từ vựng ESMC cho chuỗi. Được đưa vào backbone ESMC đi kèm để tạo ra lm_hidden_states khi các hidden states này không được truyền trực tiếp; bị bỏ qua khi lm_hidden_states được cung cấp.
  • lm_hidden_states (torch.Tensor có hình dạng (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size), optional) — Trạng thái ẩn (hidden states) của backbone ESMC đã được tính trước, một trạng thái cho mỗi lớp backbone cùng với embeddings. Khi được cung cấp, backbone sẽ không được chạy và input_ids sẽ không được sử dụng.
  • num_loops (int, tuỳ chọn) — Số vòng lặp tinh chỉnh thân. Mặc định là config.num_loops.

Trả về

[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] hoặc tuple(torch.FloatTensor)

Một [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] hoặc một tuple của torch.FloatTensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình ([EsmFold2Config]) và đầu vào.

Chạy phần thân gấp cuộn: đặc trưng hóa các đầu vào, nhúng chúng vào biểu diễn cặp, tinh chỉnh qua num_loops lần lặp lại tái chế, và đọc ra distogram. Đây là nửa tất định của một dự đoán cấu trúc; trình lấy mẫu khuếch tán biến đổi biểu diễn cặp được trả về thành tọa độ 3D nằm trong EsmFold2FoldingMixin — gọi [~EsmFold2Model.fold] hoặc [~EsmFold2Model.infer_protein] để có dự đoán đầu-cuối.

  • distogram_logits (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, distogram_bins)) — Logits của phân bố khoảng cách dự đoán trên các cặp residue.
  • pair_states (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Đại diện cặp cuối cùng của phần thân, ở fp32.
  • single_inputs (torch.FloatTensor có hình dạng (batch_size, num_tokens, single_inputs_size)) — Các đặc trưng đầu vào đơn được nối lại, do bộ nhúng đầu vào tạo ra.
  • relative_position_encoding (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Mã hóa cặp vị trí tương đối.
  • token_bonds_encoding (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Đặc trưng liên kết cộng hóa trị giữa các token đã nhúng.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, optional) — Đầu vào nguyên tử của cấu hình tham chiếu đã được đặc trưng hóa, được tái sử dụng bởi chồng nguyên tử khuếch tán.

gấp

< >

( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )

Dự đoán cấu trúc theo phương pháp end-to-end từ các đầu vào đã được featurize: chạy phần trunk (EsmFold2Model.forward, nơi tài liệu hóa các đối số đặc trưng), lấy mẫu tọa độ từ đầu cấu trúc diffusion, và chấm điểm chúng bằng đầu độ tin cậy.

Chỉ các đối số mà bộ lấy mẫu và đầu độ tin cậy cần được đặt tên ở đây; phần còn lại được chuyển tiếp đến thân mà không bị thay đổi, do đó fold nhận cùng các đối số như forward.

attention_mask (torch.Tensor có hình dạng (batch_size, num_tokens)): Mặt nạ đánh dấu các token hợp lệ (1) so với padding (0). Cũng được chuyển tiếp đến trunk. asym_id (torch.Tensor có hình dạng (batch_size, num_tokens)): ID đơn vị bất đối xứng (chuỗi) cho mỗi token. Cũng được chuyển tiếp đến trunk. mol_type (torch.Tensor có hình dạng (batch_size, num_tokens)): Mã loại phân tử cho mỗi token: 0 = protein, 1 = DNA, 2 = RNA, 3 = phi polymer (ligand). Cũng được chuyển tiếp đến trunk. distogram_atom_idx (torch.Tensor có hình dạng (batch_size, num_tokens)): Chỉ số của nguyên tử đại diện (Cβ, hoặc Cα đối với glycine) của mỗi token. Được sử dụng bởi confidence head; trunk không cần đến nó. num_diffusion_samples (int, tuỳ chọn): Số lượng mẫu cấu trúc song song cần lấy; confidence head sẽ chạy lại một lần cho mỗi mẫu. Mặc định là config.structure_head.num_diffusion_samples. num_sampling_steps (int, tuỳ chọn): Số bước lấy mẫu diffusion. Mặc định là config.structure_head.inference_num_steps. trunk_kwargs: Các đầu vào đã được featurize còn lại (bao gồm num_loops, cùng với các tensor theo từng nguyên tử thô được đóng gói bên dưới thành atom_inputs), được chuyển tiếp đến [EsmFold2Model.forward], nơi chúng được tài liệu hóa.

infer_protein

< >

( sequence: str**forward_kwargs )

Tạo đặc trưng cho sequence và gấp cuộn nó. forward_kwargs được truyền đến [~EsmFold2Model.fold].

infer_protein_as_pdb

< >

( sequence: strsample_idx: int | None = None**forward_kwargs )

Gấp sequence và hiển thị dự đoán dưới dạng chuỗi PDB.

sample_idx chọn mẫu khuếch tán nào để hiển thị; mặc định là mẫu có thứ hạng cao nhất.

EsmFold2Output

lớp transformers.models.esmfold2.modeling_esmfold2.EsmFold2Output

< >

( 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 )

Tham số

  • distogram_logits (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, distogram_bins)) — Logits của phân bố khoảng cách dự đoán trên các cặp residue (không phụ thuộc RNG; không có lấy mẫu khuếch tán).
  • sample_atom_coords (torch.FloatTensor có hình dạng (num_diffusion_samples, num_atoms, 3)) — Tọa độ Descartes của tất cả các nguyên tử được dự đoán cho mỗi mẫu khuếch tán.
  • plddt_logits (torch.FloatTensor có hình dạng (num_diffusion_samples, num_atoms, num_plddt_bins)) — Logits của các bin pLDDT cho từng nguyên tử.
  • plddt (torch.FloatTensor có hình dạng (num_diffusion_samples, num_tokens)) — Độ tin cậy lDDT dự đoán cho từng residue.
  • plddt_per_atom (torch.FloatTensor có hình dạng (num_diffusion_samples, num_atoms)) — Độ tin cậy lDDT dự đoán cho từng nguyên tử.
  • plddt_ca (torch.FloatTensor có hình dạng (num_diffusion_samples, num_tokens)) — lDDT dự đoán tại nguyên tử đại diện (Cα) của mỗi token.
  • complex_plddt (torch.FloatTensor có hình dạng (num_diffusion_samples,)) — Giá trị pLDDT trung bình trên tất cả các nguyên tử của phức hợp.
  • complex_iplddt (torch.FloatTensor có hình dạng (num_diffusion_samples,)) — pLDDT phức tạp có trọng số giao diện.
  • pae_logits (torch.FloatTensor có hình dạng (num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — Logits của các bin lỗi đã căn chỉnh dự đoán.
  • pae (torch.FloatTensor có hình dạng (num_diffusion_samples, num_tokens, num_tokens)) — Lỗi căn chỉnh dự kiến (Å) cho mỗi cặp residue.
  • pde_logits (torch.FloatTensor có hình dạng (num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — Logits của các bin lỗi khoảng cách dự đoán.
  • pde (torch.FloatTensor có hình dạng (num_diffusion_samples, num_tokens, num_tokens)) — Lỗi khoảng cách dự kiến (Å) cho mỗi cặp residue.
  • resolved_logits (torch.FloatTensor có hình dạng (num_diffusion_samples, num_atoms, 2)) — Logits đã giải quyết/chưa giải quyết cho từng nguyên tử.
  • ptm (torch.FloatTensor có hình dạng (num_diffusion_samples,)) — TM-score dự đoán cho mỗi mẫu.
  • iptm (torch.FloatTensor có hình dạng (num_diffusion_samples,)) — Điểm TM-score của bề mặt tiếp xúc dự đoán cho mỗi mẫu.
  • pair_chains_iptm (torch.FloatTensor có hình dạng (num_diffusion_samples, num_chains, num_chains)) — TM-score của bề mặt tiếp xúc dự đoán cho mỗi cặp chuỗi có thứ tự.

Đầu ra của EsmFold2Model. Tất cả các điểm tin cậy đều trên thang đo 0-1; các tensor theo mẫu có trục num_diffusion_samples ở phía trước.

EsmFold2TrunkOutput

lớp transformers.models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput

< >

( 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 )

Tham số

  • distogram_logits (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, distogram_bins)) — Logits của phân bố khoảng cách dự đoán trên các cặp residue.
  • pair_states (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Đại diện cặp cuối cùng của phần thân, ở fp32.
  • single_inputs (torch.FloatTensor có hình dạng (batch_size, num_tokens, single_inputs_size)) — Các đặc trưng đầu vào đơn được nối lại, do bộ nhúng đầu vào tạo ra.
  • relative_position_encoding (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Mã hóa cặp vị trí tương đối.
  • token_bonds_encoding (torch.FloatTensor có hình dạng (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Đặc trưng liên kết cộng hóa trị giữa các token đã nhúng.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, optional) — Đầu vào nguyên tử của cấu hình tham chiếu đã được featurize, được tái sử dụng bởi diffusion atom stack.

Đầu ra của EsmFold2Model.forward(): biểu diễn cặp của phần thân gấp cuộn, distogram đọc từ nó, và các tensor điều kiện mà các đầu cấu trúc và độ tin cậy sử dụng. Mọi thứ ở đây đều tất định dựa trên đầu vào, ngoại trừ trạng thái cặp ngẫu nhiên ban đầu của phần thân.

EsmFold2AtomInputs

lớp transformers.models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs

< >

( ref_pos: Tensorref_charge: Tensoratom_attention_mask: Tensorref_element: Tensorref_atom_name_chars: Tensorref_space_uid: Tensoratom_to_token: Tensor )

Tham số

  • ref_pos — (batch_size, num_atoms, 3) tọa độ Descartes của cấu hình tham chiếu.
  • ref_charge — (batch_size, num_atoms) điện tích chính thức của mỗi nguyên tử.
  • atom_attention_mask — (batch_size, num_atoms) các atom hợp lệ (1) so với padding (0).
  • ref_element — (batch_size, num_atoms, max_atomic_number) số nguyên tử one-hot.
  • ref_atom_name_chars — (batch_size, num_atoms, max_chars, char_vocab_size) tên nguyên tử dạng one-hot.
  • ref_space_uid — (batch_size, num_atoms) ID nhóm cho từng nguyên tử (chỉ số token của nguyên tử đó).
  • atom_to_token — (batch_size, num_atoms) chỉ số của token mà mỗi atom thuộc về.

Đầu vào nguyên tử của cấu hình tham chiếu đã được đặc trưng hóa, được đóng gói để ngăn xếp nguyên tử chỉ cần một đối số.

Được nhận dưới dạng một đối số của [EsmFold2Model.forward], chứa các tensor featurizer thô. EsmFold2Model._prepare_features sau đó mã hóa one-hot các trường phân loại và đặt giá trị padding về không, và forward thay thế chúng bằng dataclasses.replace, để mọi thành phần tiêu thụ phía sau điểm đó đều thấy các dạng mã hóa được mô tả bên dưới. Được trả về trong [EsmFold2TrunkOutput] để diffusion sampler và confidence head tái sử dụng featurization của trunk thay vì thực hiện lại.

Một dataclass thuần túy thay vì [~utils.ModelOutput]: mọi trường ở đây đều bắt buộc và được đọc một cách vô điều kiện ở các bước xử lý phía sau, trong khi ModelOutput chỉ cho phép tối đa một trường bắt buộc (các trường còn lại phải có giá trị mặc định là None), điều này sẽ biến một tensor bị thiếu từ lỗi khởi tạo thành None xuất hiện sâu bên trong bộ mã hóa atom.

Update on GitHub