Transformers documentation
ESMFold2
このモデルは2026年8月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 は、1回のフォールディングごとに config.structure_head.num_diffusion_samples 個の構造を生成します。infer_protein_as_pdb は、最も評価が高いもの(pTM が最大のもの)をレンダリングします。特定のサンプルを選択するには、sample_idx を渡します。PDB ファイルには、残基ごとの pLDDT が b-factor 列に格納されており、plddt の出力と同じ 0〜1 のスケールです。
forward と fold
構造予測は2つの部分から構成されています。EsmFold2Model.forwardがその第1部分です。特徴量化された入力に対してフォールディングトランクを実行し、洗練されたペア表現とディストグラムを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とペア表現、サンプリングなし |
実際の構造を得るには、fold または infer_protein を呼び出してください。distogram だけが必要な場合、または拡散サンプラーを自分で制御したい場合は、forward を使用します。fold は forward を一度呼び出し、その出力を EsmFold2DiffusionModule に渡します。この EsmFold2DiffusionModule の forward が、単一のデノイジングステップです。
融合カーネルによる高速な推論
folding trunk の主要な計算コストは、三角形乗算の更新です。from_pretrained() に use_kernels=True を渡すと、kernels ライブラリを介して Hub から読み込まれる融合 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
< 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 )
パラメータ
- hidden_size (
int、任意、デフォルトは 384) — 単一表現の幅。 - pairwise_hidden_size (
int、省略可、デフォルトは 256) — ペア表現の幅です。 - single_inputs_size (
int、任意、デフォルト値は 451)— trunk と diffusion の条件付けに渡される連結された単一入力特徴の幅です:atom_encoder.output_dimに、residue-type の one-hot 2 つと profile スカラーを加えた値です。 - pair_transition_intermediate_size (
int、任意、デフォルトは 1024) — ペアストリーム遷移の SwiGLU 幅です。 - sliding_window (
int、任意、デフォルトは 128) — atom-stack attention におけるスライディングウィンドウのサイズ(トークンインデックスの距離)です。半径ではなく、ウィンドウの総幅として指定します。 - chunk_size (
int、任意、デフォルトは 64) — メモリ負荷の高いペア/MSA ストリーム操作のチャンクサイズ。Noneを指定するとチャンク分割が無効になります。 - num_relative_residx_bins (
int、任意、デフォルトは 32)— 相対位置エンコーディングにおける、相対残基インデックスのビン数。 - num_relative_chain_bins (
int、任意、デフォルトは 2) — 相対位置エンコーディングにおける相対チェーンインデックスのビン数。 - num_loops (
int、任意、デフォルトは 10)— トランクの精錬ループの回数。 - num_res_types (
int、任意、デフォルトは 33)— 残基の種類数。 - max_atomic_number (
int、省略可能、デフォルトは 128) — 原子特徴量における要素 one-hot のサイズです。 - char_vocab_size (
int、任意、デフォルトは 64) — エンコードされたアトム名の文字語彙サイズ。 - max_chars (
int、任意、デフォルトは 4) — エンコードされた原子名あたりの文字数です。 - max_atoms_per_token (
int、任意、デフォルトは 23)— 1 トークンあたりの最大原子数。 - atom_feature_dim (
int, 省略可) — アトム特徴量の幅: xyz、電荷、マスク、および元素とアトム名文字の one-hot 表現。未設定の場合、max_atomic_number、char_vocab_size、max_charsから導出されます。 - folding_trunk_num_hidden_layers (
int、任意、デフォルトは 24)— folding trunk におけるペア更新ブロックの数。 - parcae_num_coda_layers (
int、任意、デフォルト値は 2) — parcae coda における pair-update ブロックの数です。 - atom_encoder (
EsmFold2AtomEncoderConfig、任意) — inputs-embedder SWA アトムエンコーダーの設定です。 - structure_head (
EsmFold2StructureHeadConfig、任意) — 拡散構造予測ヘッドの設定(diffusion_moduleサブ設定を保持します)。 - confidence_head (
EsmFold2ConfidenceHeadConfig、任意) — 信頼度ヘッドの設定です。 - msa_encoder (
EsmFold2MsaEncoderConfig、任意) — MSAエンコーダーの設定です。 - lm_encoder (
EsmFold2LmEncoderConfig、任意) — 言語モデルの隠れ状態エンコーダーの設定です。 - esmc_config (EsmcConfig、任意) — バンドルされている ESMC バックボーンの設定です。
これは Esmfold2Model の設定を保存するための設定クラスです。指定された引数に基づいて Esmfold2 モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、biohub/ESMFold2 のものと同様の設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
サブ設定にまたがる幅の関係をチェックします。各サブ設定は、それ自身の幅の関係を個別にチェックします。
EsmFold2PreTrainedModel
class transformers.EsmFold2PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
パラメータ
- config (PreTrainedConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
EsmFold2Model
クラス transformers.EsmFold2Model
< source >( config: EsmFold2Config )
パラメータ
- config (EsmFold2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
ESMFold2は、ESMCタンパク質言語モデルのバックボーンをバンドルした全原子タンパク質構造予測器です。これは標準的にリリースされたESMFold2アーキテクチャであり、そのトランクは線形再帰スタック(内部では「parcae」と呼ばれる)で構成されています。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
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.FloatTensor)
パラメータ
- token_index (torch.Tensor、shape (batch_size, num_tokens)) — 完全なコンプレックス内のトークンごとの位置インデックスです。相対位置エンコーディングに使用されます。
- residue_index (torch.Tensor、shape (batch_size, num_tokens)) — 各チェーン内の残基インデックス。相対位置エンコーディングに使用されます。
- asym_id (torch.Tensor、形状 (batch_size, num_tokens)) — 各トークンに対する非対称単位(鎖)のID。
- sym_id (torch.Tensor、形状 (batch_size, num_tokens)) — ホモマーの同一鎖を区別するための対称コピーID。
- entity_id (torch.Tensor、shape (batch_size, num_tokens)) — 同じ分子エンティティに属するトークンをグループ化するエンティティ ID。
- mol_type (torch.Tensor、shape (batch_size, num_tokens)) —
各トークンに対する分子タイプコード:
0= protein、1= DNA、2= RNA、3= non-polymer (ligand)。 - res_type (torch.Tensor、形状 (batch_size, num_tokens)) — 各トークンに対する残基型(アミノ酸の同一性)インデックス。
- token_bonds(torch.Tensor、形状 (batch_size, num_tokens, num_tokens, 1))— トークン間のペアワイズ共有結合特徴量。
- attention_mask (torch.Tensor、形状 (batch_size, num_tokens)) —
有効なトークン(
1)とパディング(0)を示すマスク。入力には右パディングを適用する必要があります。 - atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — 生データの参照コンフォーマーの原子テンソルをまとめたものです。位置、原子番号、形式電荷、エンコードされた原子名、原子ごとのグループ ID、アトムのパディングマスク、および atom->token マッピングを含みます。
- deletion_mean (torch.Tensor、shape (batch_size, num_tokens)、optional) — 各カラムごとの MSA 削除数の平均。デフォルトはゼロ(MSA なし)です。
- msa (torch.Tensor、形状 (batch_size, msa_depth, num_tokens)、optional) — MSA の残基タイプトークン(0 行目がクエリ配列です)。デフォルトでは、単一配列の MSA になります。
- has_deletion (torch.Tensor、形状 (batch_size, msa_depth, num_tokens)、optional) — 削除に先行する MSA 位置を示すブール値フラグ。
- deletion_value (torch.Tensor、形状 (batch_size, msa_depth, num_tokens)、任意) — 各位置におけるMSAの削除カウントです。
- msa_attention_mask (torch.Tensor、形状 (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、形状 (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size)、optional) — ESMC バックボーンの事前計算済み隠れ状態です。各バックボーン層ごとに1つ、埋め込み層分を含みます。指定された場合、バックボーンは実行されず、input_ids は使用されません。
- num_loops (int, 任意) — トランクの精錬ループの回数。デフォルトは config.num_loops です。
戻り値
[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] または tuple(torch.FloatTensor)
~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput または、torch.FloatTensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定([EsmFold2Config])や入力に応じて、さまざまな要素で構成されます。
フォールディングトランクを実行します。入力の特徴量抽出、ペア表現への埋め込み、num_loops回のリサイクル反復による洗練、そしてディストログラムの読み取りを行います。これは構造予測の決定論的な半分であり、返されたペア表現を3D座標に変換する拡散サンプラーはEsmFold2FoldingMixinに実装されています。エンドツーエンドの予測には、[~EsmFold2Model.fold]または[~EsmFold2Model.infer_protein]を呼び出してください。
- distogram_logits (torch.FloatTensor、shape (batch_size, num_tokens, num_tokens, distogram_bins)) — 残基ペアに対する予測された距離分布の logits。
- pair_states (torch.FloatTensor、shape (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — trunk の最終的なペア表現(fp32)。
- single_inputs (torch.FloatTensor、形状 (batch_size, num_tokens, single_inputs_size)) — inputs embedder によって構築された、連結された単一入力特徴量。
- relative_position_encoding(torch.FloatTensor、形状 (batch_size, num_tokens, num_tokens, pairwise_hidden_size))— 相対位置ペアエンコーディング。
- token_bonds_encoding(torch.FloatTensor、形状 (batch_size, num_tokens, num_tokens, pairwise_hidden_size))— トークン間の共有結合特徴量エンベディング。
- atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs、optional) — 特徴量化された参照コンフォーマーのアトム入力です。拡散アトムスタックによって再利用されます。
fold
< source >( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )
フィーチャリング済みの入力から構造をエンドツーエンドで予測します。トランク(EsmFold2Model.forward、特徴量引数がドキュメント化されています)を実行し、拡散構造ヘッドから座標をサンプリングして、信頼度ヘッドでスコアリングします。
ここでは、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 はサンプルごとに 1 回再実行されます。
デフォルト値は 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] に転送します。
sequence を特徴量化して、フォールディングを実行します。forward_kwargs は [~EsmFold2Model.fold] に渡されます。
sequenceをフォールディングし、予測結果をPDB文字列としてレンダリングします。
sample_idx は、レンダリングする拡散サンプルを選択します。デフォルトでは、最も評価の高いものが選択されます。
EsmFold2Output
class 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 )
パラメータ
- distogram_logits (
torch.FloatTensor、形状(batch_size, num_tokens, num_tokens, distogram_bins)) — 残基ペアに対する予測された距離分布の logits(RNG に依存せず、拡散サンプリングは行いません)。 - sample_atom_coords (
torch.FloatTensor、形状(num_diffusion_samples, num_atoms, 3)) — 各拡散サンプルに対する予測された全原子デカルト座標です。 - plddt_logits (
torch.FloatTensor、形状(num_diffusion_samples, num_atoms, num_plddt_bins)) — アトムごとの pLDDT バインのロジット。 - plddt (
torch.FloatTensor、形状(num_diffusion_samples, num_tokens)) — 残基ごとの予測 lDDT 信頼度。 - plddt_per_atom (
torch.FloatTensor、shape(num_diffusion_samples, num_atoms)) — アトムごとの予測 lDDT 信頼度。 - plddt_ca (
torch.FloatTensor、shape(num_diffusion_samples, num_tokens)) — 各トークンの代表原子(Cα)における予測 lDDT。 - complex_plddt (
torch.FloatTensor、形状(num_diffusion_samples,)) — 複合体のすべての原子にわたる pLDDT の平均値。 - complex_iplddt (
torch.FloatTensor、形状(num_diffusion_samples,)) — インターフェース重み付き複合 pLDDT。 - pae_logits (
torch.FloatTensor、形状(num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — 予測整合誤差(Predicted-aligned-error)のビン logits。 - pae (
torch.FloatTensor、shape(num_diffusion_samples, num_tokens, num_tokens)) — 各残基ペアに対する予測された期待値付きアライメントエラー(Å)。 - pde_logits (
torch.FloatTensor、shape(num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — 予測距離誤差のビン logits。 - pde (
torch.FloatTensor、形状(num_diffusion_samples, num_tokens, num_tokens)) — 各残基ペアに対する予測された距離誤差(Å)。 - resolved_logits (
torch.FloatTensor、形状(num_diffusion_samples, num_atoms, 2)) — アトムごとの resolved/unresolved logits。 - ptm (
torch.FloatTensor、形状(num_diffusion_samples,)) — 各サンプルに対する予測 TM-score。 - iptm(
torch.FloatTensor、形状(num_diffusion_samples,))— 各サンプルに対する予測インターフェースTMスコア。 - pair_chains_iptm (
torch.FloatTensor、shape(num_diffusion_samples, num_chains, num_chains)) — 各順序付きチェーンペアに対する予測インターフェースTMスコア。
EsmFold2Modelの出力です。すべての信頼度スコアは0〜1のスケールで表され、サンプルごとのテンソルには先頭にnum_diffusion_samples軸があります。
EsmFold2TrunkOutput
class 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 )
パラメータ
- distogram_logits (
torch.FloatTensor、形状(batch_size, num_tokens, num_tokens, distogram_bins)) — 残基ペアに対する予測された距離分布の logits。 - pair_states (
torch.FloatTensor、形状(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — trunk の最終的なペア表現です。fp32 形式です。 - single_inputs (
torch.FloatTensor、shape(batch_size, num_tokens, single_inputs_size)) — inputs embedder によって構築された、連結された単一入力特徴量です。 - relative_position_encoding (
torch.FloatTensor、shape(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — 相対位置ペアエンコーディング。 - token_bonds_encoding (
torch.FloatTensor、shape(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — トークン間の共有結合特徴量エンベディング。 - atom_inputs (
~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs、任意) — 特徴量化された参照コンフォーマーのアトム入力です。拡散アトムスタックで再利用されます。
EsmFold2Model.forward() の出力: 折りたたみトランクのペア表現、そこから読み取られたディストグラム、および構造ヘッドと信頼度ヘッドが消費する条件付けテンソルです。入力に対して、トランクのランダムな初期ペア状態を除くすべての要素は決定論的です。
EsmFold2AtomInputs
class 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 )
パラメータ
- ref_pos — (batch_size, num_atoms, 3) 参照コンフォーマーのデカルト座標。
- 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)
アトムスタックが1つの引数で済むようバンドルされた、フィーチャライズされたリファレンスコンフォーマーのアトム入力。
[EsmFold2Model.forward] の引数として 1 つ渡され、生の特徴量テンソルを保持します。EsmFold2Model._prepare_features がカテゴリカルフィールドを one-hot 符号化し、パディングをゼロに設定した後、forward が dataclasses.replace を用いてそれらを差し替えます。これにより、その時点以降のすべての下流のコンシューマーは、以下にドキュメント化された符号化済みの形式を参照することになります。[EsmFold2TrunkOutput] に返され、拡散サンプラーと信頼度ヘッドが、trunk の特徴量化を再実行するのではなく再利用できるようにします。
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.