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

이 모델은 2026-08-19에 Hugging Face Transformers에 기여되었습니다.

ESMFold2

개요

ESMFold2는 전 원자 단백질 구조 예측 모델입니다. ESMC 단백질 언어 모델을 백본으로 사용하여 아미노산 시퀀스에서 3D 좌표와 잔기별 신뢰도(pLDDT, PAE, PDE)를 직접 예측합니다. 아키텍처는 슬라이딩 윈도우 원자 인코더와 3D 회전 위치 임베딩, 반복적으로 적용되는 페어와이즈 폴딩 트렁크, 확산 기반 구조 헤드, 그리고 신뢰도 헤드를 결합합니다.

모델 체크포인트는 Hugging Face Hub의 biohub/ESMFold2에서 사용할 수 있습니다.

사용 예시

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은 PDB 문자열 대신 원시 출력(원자 좌표, distogram logits, 신뢰도 지표)이 필요한 경우 EsmFold2Output으로 반환합니다. 동일한 시퀀스를 여러 번 실행하면 약간 다른 예측 결과가 나올 수 있습니다. 완전히 재현 가능한 구조를 원하면 수동으로 시드를 설정하세요.

ESMFold2는 각 fold당 config.structure_head.num_diffusion_samples개의 구조를 생성합니다. infer_protein_as_pdb는 가장 높은 순위(가장 높은 pTM)의 구조를 렌더링하며, 특정 샘플을 선택하려면 sample_idx를 전달하세요. PDB에는 b-factor 열에 잔기별 pLDDT가 포함되며, plddt 출력과 동일한 0-1 스케일을 사용합니다.

forward와 fold

구조 예측은 두 부분으로 구성됩니다. EsmFold2Model.forward가 첫 번째 부분으로, 특징화된 입력에 대해 폴딩 트렁크를 실행하고 정제된 쌍 표현과 distogram을 EsmFold2TrunkOutput으로 반환합니다. 3D 좌표를 생성하지는 않으며, ESMFold2는 반복적 노이즈 제거를 통해 좌표를 얻습니다. 해당 샘플링 루프(노이즈 스케줄, Kabsch 정렬, ODE/SDE 업데이트)와 신뢰도 헤드 호출은 EsmFold2FoldingMixin에 포함되어 있습니다.

메서드다음 용도로 사용하세요
infer_protein_as_pdb(sequence)아미노산 시퀀스에서 바로 가져온 PDB 문자열
infer_protein(sequence)원시 EsmFold2Output
fold(**features)infer_protein이 호출하는 사전 특징 추출된 입력
forward(**features)trunk 단독 — distogram 및 pair 표현, 샘플링 없음

실제 구조를 얻으려면 fold 또는 infer_protein을 호출하세요. distogram만 필요하거나, diffusion sampler를 직접 제어하고 싶을 때는 forward를 사용하세요. fold는 forward를 한 번 호출한 뒤, 그 출력을 EsmFold2DiffusionModule에 전달합니다. EsmFold2DiffusionModule 자체의 forward가 단일 denoising 단계입니다.

융합 커널을 통한 더 빠른 추론

folding trunk의 주요 비용은 삼각형 곱셈 업데이트입니다. from_pretrained()에 use_kernels=True를 전달하면 Hub에서 kernels 라이브러리를 통해 로드된 융합 Triton 커널로 대체되며, 예측 결과는 변경되지 않습니다. 이 기능은 추론 전용이며 CUDA 전용입니다. CPU 환경이거나 커널이 설치되지 않은 경우 모델은 순수 PyTorch 구현으로 투명하게 폴백됩니다. 커널화가 수행될 때 모델이 CUDA 디바이스에 있는지 확인하세요(예: 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

클래스 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 )

매개변수

  • hidden_size (int, 선택 사항, 기본값 384) — 단일 표현의 폭.
  • pairwise_hidden_size (int, 선택 사항, 기본값 256) — 쌍 표현의 폭입니다.
  • single_inputs_size (int, 선택 사항, 기본값 451) — trunk 및 diffusion conditioning에 전달되는 연결된 단일 입력 특징의 폭: atom_encoder.output_dim에 잔기 유형 원핫 2개와 프로파일 스칼라를 더한 값.
  • pair_transition_intermediate_size (int, 선택 사항, 기본값 1024) — pair-stream 전환의 SwiGLU 폭입니다.
  • sliding_window (int, 선택 사항, 기본값 128) — atom-stack attention의 슬라이딩 윈도우 크기(토큰 인덱스 거리)입니다. 반경이 아닌 전체 윈도우 폭으로 지정합니다.
  • chunk_size (int, 선택 사항, 기본값 64) — 메모리 사용량이 큰 pair-/MSA-stream 연산에 사용할 chunk size입니다. None을 지정하면 chunking이 비활성화됩니다.
  • num_relative_residx_bins (int, 선택 사항, 기본값 32) — 상대 위치 인코딩에서 사용되는 상대 잔기 인덱스 버킷의 수입니다.
  • num_relative_chain_bins (int, 선택 사항, 기본값 2) — 상대 위치 인코딩에서 사용할 상대 체인 인덱스 버킷의 개수입니다.
  • num_loops (int, 선택 사항, 기본값 10) — 트렁크 정밀화 루프 횟수.
  • num_res_types (int, 선택 사항, 기본값 33) — 잔기(residue)의 종류 수입니다.
  • max_atomic_number (int, 선택 사항, 기본값 128) — 원자 특징에서 원소 원-핫 인코딩의 크기입니다.
  • char_vocab_size (int, 선택 사항, 기본값 64) — 인코딩된 원자 이름에 사용할 문자 어휘 크기입니다.
  • max_chars (int, 선택, 기본값 4) — 인코딩된 원자 이름당 문자 수입니다.
  • max_atoms_per_token (int, 선택 사항, 기본값 23) — 토큰당 최대 원자 수.
  • atom_feature_dim (int, 선택 사항) — 원자 특징의 차원: xyz, 전하, 마스크, 그리고 원소 및 원자 이름 문자의 one-hot 인코딩을 포함합니다. 값이 설정되지 않은 경우 max_atomic_number, char_vocab_size, max_chars에서 유도됩니다.
  • folding_trunk_num_hidden_layers (int, 선택 사항, 기본값 24) — folding trunk의 pair-update 블록 수입니다.
  • parcae_num_coda_layers (int, 선택 사항, 기본값 2) — parcae coda의 pair-update 블록 수입니다.
  • atom_encoder (EsmFold2AtomEncoderConfig, 선택 사항) — 입력 임베더 SWA 원자 인코더에 대한 설정입니다.
  • structure_head (EsmFold2StructureHeadConfig, 선택) — 확산 구조 예측 헤드에 대한 설정입니다(diffusion_module 하위 설정을 포함).
  • confidence_head (EsmFold2ConfidenceHeadConfig, 선택 사항) — 신뢰도 헤드에 대한 설정입니다.
  • msa_encoder (EsmFold2MsaEncoderConfig, 선택 사항) — MSA 인코더에 대한 설정입니다.
  • lm_encoder (EsmFold2LmEncoderConfig, 선택 사항) — 언어 모델 은닉 상태 인코더에 대한 설정입니다.
  • esmc_config (EsmcConfig, 선택 사항) — 번들된 ESMC 백본에 대한 설정입니다.

이것은 Esmfold2Model의 구성을 저장하기 위한 구성 클래스입니다. 지정된 인자에 따라 Esmfold2 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 구성을 인스턴스화하면 biohub/ESMFold2와 유사한 구성이 생성됩니다.

Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.

validate_architecture

< >

( )

서브 구성을 가로지르는 폭 관계를 확인합니다. 각 서브 구성은 자체적으로 확인합니다.

EsmFold2PreTrainedModel

class transformers.EsmFold2PreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

매개변수

  • config (PreTrainedConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

EsmFold2Model

class transformers.EsmFold2Model

< >

( config: EsmFold2Config )

매개변수

  • config (EsmFold2Config) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 관련된 가중치를 로드하지 않으며, 구성만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.

ESMC protein-language-model backbone이 번들된 ESMFold2 전 원자 단백질 구조 예측기입니다. 이는 표준으로 배포된 ESMFold2 아키텍처로, 트렁크는 선형 재귀 스택(내부 명칭은 “parcae”)입니다.

이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.

이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.

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.Tensor)

매개변수

  • token_index (torch.Tensor, shape (batch_size, num_tokens)) — 전체 complex 내에서 토큰별 위치 인덱스입니다. 상대 위치 인코딩에 사용됩니다.
  • residue_index (torch.Tensor, shape (batch_size, num_tokens)) — 각 체인 내 잔기 인덱스이며, 상대 위치 인코딩에 사용됩니다.
  • asym_id (torch.Tensor, shape (batch_size, num_tokens)) — 각 토큰에 대한 비대칭 단위(체인) ID.
  • sym_id (torch.Tensor, shape (batch_size, num_tokens)) — homomer에서 동일한 사슬을 구별하는 대칭 복사 ID.
  • entity_id (torch.Tensor, shape (batch_size, num_tokens)) — 같은 분자 entity에 속하는 token을 그룹화하는 entity ID.
  • mol_type (torch.Tensor, shape (batch_size, num_tokens)) — 각 토큰에 대한 분자 유형 코드: 0 = 단백질, 1 = DNA, 2 = RNA, 3 = 비고분자(리간드).
  • res_type (torch.Tensor, shape (batch_size, num_tokens)) — 각 토큰에 대한 잔기 유형(아미노산 동일성) 인덱스.
  • token_bonds (torch.Tensor, shape (batch_size, num_tokens, num_tokens, 1)) — 토큰 쌍 간 공유 결합(covalent-bond) 특징(feature).
  • attention_mask (torch.Tensor, shape (batch_size, num_tokens)) — 유효 토큰(1)과 패딩(0)을 구분하는 마스크입니다. 입력은 오른쪽 패딩(right-padded)이어야 합니다.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — 참조 conformer의 원자 텐서를 묶어 담은 원본 데이터입니다. 위치, 원자 번호, 형식 전하, 인코딩된 원자 이름, 원자별 그룹 ID, 원자 패딩 마스크, 원자->토큰 매핑을 포함합니다.
  • deletion_mean (torch.Tensor, shape (batch_size, num_tokens), optional) — 열별 평균 MSA deletion count. 기본값은 0(없음)입니다.
  • msa (torch.Tensor, shape (batch_size, msa_depth, num_tokens), optional) — MSA 잔기 유형 토큰(0번째 행은 쿼리 시퀀스입니다). 기본값은 단일 시퀀스 MSA입니다.
  • has_deletion (torch.Tensor, shape (batch_size, msa_depth, num_tokens), optional) — 삭제(deletion)로 시작하는 MSA 위치를 표시하는 Boolean 플래그입니다.
  • deletion_value (torch.Tensor, shape (batch_size, msa_depth, num_tokens), optional) — 위치별 MSA 삭제 횟수.
  • msa_attention_mask (torch.Tensor, shape (batch_size, msa_depth, num_tokens), optional) — MSA 행/열에 대한 유효성 마스크입니다.
  • input_ids (torch.Tensor of shape (batch_size, num_tokens), optional) — ESMC-vocabulary token ids for the sequence. Fed to the bundled ESMC backbone to produce lm_hidden_states when those are not passed directly; ignored when lm_hidden_states is given.
  • lm_hidden_states (torch.Tensor, shape (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size), optional) — 각 backbone layer와 embeddings에 대해 하나씩 미리 계산된 ESMC backbone hidden states입니다. 이 값이 제공되면 backbone이 실행되지 않으며 input_ids는 사용되지 않습니다.
  • num_loops (int, 선택 사항) — trunk refinement 루프의 횟수입니다. 기본값은 config.num_loops입니다.

반환값

[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] 또는 tuple(torch.Tensor)

[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] 또는 torch.Tensor의 튜플(return_dict=False가 전달되거나 config.return_dict=False인 경우)로, 구성([EsmFold2Config])과 입력에 따라 다양한 요소를 포함합니다.

folding trunk를 실행합니다. 입력을 featurize하고 pair representation으로 embed한 뒤, num_loops번의 recycling 반복을 통해 이를 refine하고, distogram을 읽어냅니다. 이는 구조 예측의 결정론적 부분이며, 반환된 pair representation을 3D 좌표로 변환하는 diffusion sampler는 EsmFold2FoldingMixin에 있습니다. end-to-end 예측을 수행하려면 [~EsmFold2Model.fold] 또는 [~EsmFold2Model.infer_protein]을 호출하세요.

  • distogram_logits (torch.Tensor, shape (batch_size, num_tokens, num_tokens, distogram_bins)) — 잔기 쌍에 대한 예측된 거리 분포 로짓.
  • pair_states (torch.Tensor, shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — fp32 형식의 트렁크 최종 pair 표현입니다.
  • single_inputs (torch.Tensor, shape (batch_size, num_tokens, single_inputs_size)) — inputs embedder가 생성한 연결된 단일 입력 특징입니다.
  • relative_position_encoding (torch.Tensor, shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — 상대 위치 쌍 인코딩.
  • token_bonds_encoding (torch.Tensor, shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — 토큰 간 공유 결합(covalent-bond) 특징의 임베딩.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, optional) — diffusion atom stack에서 재사용되는 featurized reference-conformer atom inputs입니다.

fold

< >

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

피처화된 입력에서 구조를 end-to-end로 예측합니다: trunk(EsmFold2Model.forward, 피처 인수를 문서화)를 실행하고, diffusion structure head에서 좌표를 샘플링한 뒤, confidence head로 점수를 매깁니다.

여기서는 sampler와 confidence head에 필요한 인자만 명시되어 있습니다. 나머지 인자는 그대로 trunk로 전달되므로, fold는 forward와 동일한 인자를 받습니다.

attention_mask (torch.Tensor, shape (batch_size, num_tokens)): 유효 토큰(1)과 패딩(0)을 구분하는 마스크입니다. trunk에도 전달됩니다. asym_id (torch.Tensor, shape (batch_size, num_tokens)): 각 토큰에 대한 비대칭 단위(체인) ID입니다. trunk에도 전달됩니다. mol_type (torch.Tensor, shape (batch_size, num_tokens)): 각 토큰에 대한 분자 유형 코드입니다: 0 = 단백질, 1 = DNA, 2 = RNA, 3 = 비고분자(리간드). trunk에도 전달됩니다. distogram_atom_idx (torch.Tensor, shape (batch_size, num_tokens)): 각 토큰의 대표 원자(Cβ, 글리신인 경우 Cα)의 인덱스입니다. confidence head에서 사용되며, trunk에서는 필요하지 않습니다. num_diffusion_samples (int, optional): 추출할 병렬 구조 샘플의 수입니다. confidence head는 샘플마다 한 번씩 다시 실행됩니다. 기본값은 config.structure_head.num_diffusion_samples입니다. num_sampling_steps (int, optional): 확산 샘플링 단계 수입니다. 기본값은 config.structure_head.inference_num_steps입니다. trunk_kwargs: 나머지 특징화 입력(num_loops 포함, 아래에 atom_inputs으로 묶인 원자별 원시 텐서 포함)을 [EsmFold2Model.forward]로 전달합니다. 해당 메서드에서 문서화되어 있습니다.

infer_protein

< >

( sequence: str**forward_kwargs )

sequence를 특징화하고 접습니다. forward_kwargs는 [~EsmFold2Model.fold]로 전달됩니다.

infer_protein_as_pdb

< >

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

sequence를 접고(PDB) 예측을 PDB 문자열로 렌더링합니다.

sample_idx는 렌더링할 diffusion sample을 선택하며, 기본값은 가장 높은 순위를 가진 sample입니다.

EsmFold2Output

클래스 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 )

매개변수

  • distogram_logits (torch.Tensor, shape (batch_size, num_tokens, num_tokens, distogram_bins)) — 잔기 쌍에 대한 예측된 거리 분포 로짓(RNG와 무관; 확산 샘플링 없음).
  • sample_atom_coords (torch.Tensor, shape (num_diffusion_samples, num_atoms, 3)) — 각 diffusion sample에 대한 예측된 전체 원자 데카르트 좌표입니다.
  • plddt_logits (torch.Tensor, shape (num_diffusion_samples, num_atoms, num_plddt_bins)) — 원자별 pLDDT bin logits입니다.
  • plddt (torch.Tensor, shape (num_diffusion_samples, num_tokens)) — 잔기별 예측 lDDT 신뢰도.
  • plddt_per_atom (torch.Tensor, shape (num_diffusion_samples, num_atoms)) — 원자별 예측된 lDDT 신뢰도.
  • plddt_ca (torch.Tensor, shape (num_diffusion_samples, num_tokens)) — 각 토큰의 대표 원자(Cα)에서 예측된 lDDT 값입니다.
  • complex_plddt (torch.Tensor, shape (num_diffusion_samples,)) — 복합체의 모든 원자에 대한 평균 pLDDT.
  • complex_iplddt (torch.Tensor, shape (num_diffusion_samples,)) — 인터페이스 가중 복합 pLDDT.
  • pae_logits (torch.Tensor, shape (num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — 예측 정렬 오류(Predicted-aligned-error) 빈 로짓.
  • pae (torch.Tensor, shape (num_diffusion_samples, num_tokens, num_tokens)) — 각 잔기 쌍에 대한 예상 예측 정렬 오류(Å).
  • pde_logits (torch.Tensor, shape (num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — 예측 거리 오류(Predicted-distance-error) bin logits.
  • pde (torch.Tensor, shape (num_diffusion_samples, num_tokens, num_tokens)) — 각 잔기 쌍에 대한 예상 예측 거리 오류(Å).
  • resolved_logits (torch.Tensor, shape (num_diffusion_samples, num_atoms, 2)) — 원자별 resolved/unresolved logits.
  • ptm (torch.Tensor, shape (num_diffusion_samples,)) — 각 샘플에 대한 예측된 TM-score.
  • iptm (torch.Tensor, shape (num_diffusion_samples,)) — 각 샘플에 대한 예측된 interface TM-score.
  • pair_chains_iptm (torch.Tensor, shape (num_diffusion_samples, num_chains, num_chains)) — 각 순서 있는 체인 쌍에 대한 예측된 interface TM-score입니다.

EsmFold2Model의 출력입니다. 모든 신뢰도 점수는 0~1 범위를 사용하며, 샘플별 텐서는 앞에 num_diffusion_samples 축이 있습니다.

EsmFold2TrunkOutput

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

매개변수

  • distogram_logits (torch.Tensor, shape (batch_size, num_tokens, num_tokens, distogram_bins)) — 잔기 쌍에 대한 예측된 거리 분포 로짓.
  • pair_states (torch.Tensor, shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — fp32 형식의 트렁크 최종 pair 표현입니다.
  • single_inputs (torch.Tensor, shape (batch_size, num_tokens, single_inputs_size)) — 입력 임베더에 의해 생성된 연결된 단일 입력 특징입니다.
  • relative_position_encoding (torch.Tensor, shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — 상대 위치 쌍 인코딩.
  • token_bonds_encoding (torch.Tensor, shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — 토큰 간 공유 결합(covalent-bond) 특징의 임베딩.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, 선택) — diffusion atom stack에서 재사용되는 featurized reference-conformer atom inputs입니다.

EsmFold2Model.forward()의 출력: 폴딩 트렁크의 pair representation, 이를 통해 읽은 distogram, 그리고 구조 및 신뢰도 헤드가 사용하는 조건 텐서입니다. 트렁크의 무작위 초기 pair state를 제외하면, 여기의 모든 것은 입력이 주어지면 결정론적입니다.

EsmFold2AtomInputs

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

매개변수

  • ref_pos — (batch_size, num_atoms, 3) 기준 conformer의 데카르트 좌표.
  • ref_charge — 각 원자의 (batch_size, num_atoms) 형식 전하.
  • atom_attention_mask — (batch_size, num_atoms) 크기의 유효 원자(1)와 패딩(0)을 나타내는 마스크.
  • ref_element — (batch_size, num_atoms, max_atomic_number) one-hot 원자 번호.
  • ref_atom_name_chars — (batch_size, num_atoms, max_chars, char_vocab_size) 원자 이름의 one-hot 인코딩.
  • ref_space_uid — (batch_size, num_atoms) 원자별 그룹 ID(해당 원자의 토큰 인덱스).
  • atom_to_token — 각 원자가 속하는 토큰의 인덱스, (batch_size, num_atoms).

원자 스택이 하나의 인수를 받도록 번들링된, 특징화된 reference-conformer 원자 입력

[EsmFold2Model.forward]의 단일 인수로 전달되며, 원본 featurizer 텐서를 포함합니다. EsmFold2Model._prepare_features는 범주형 필드를 one-hot 인코딩하고 패딩을 0으로 설정한 뒤, forward가 dataclasses.replace를 사용해 해당 값을 교체합니다. 따라서 해당 지점 이후의 모든 사용자는 아래에 문서화된 인코딩된 형태를 참조하게 됩니다. [EsmFold2TrunkOutput]을 통해 반환되어, diffusion sampler와 confidence head가 trunk의 featurization을 다시 수행하지 않고 재사용합니다.

A plain dataclass rather than a [~utils.ModelOutput]: every field here is required and is read unconditionally downstream, and ModelOutput permits at most one required field (the rest must default to None), which would turn a missing tensor from a constructor error into a None surfacing deep in the atom encoder.

Update on GitHub