# RFD4ProteinaAutoencoder

[RFD4-Proteína](../pipelines/rfd4_proteina)のオートエンコーダーです。`encode`はatom37座標をトークンごとのローカル潜在変数にマッピングし、`decode`は潜在変数とバックボーン位置をatom37構造および残基の同一性に戻します。パイプライン内では`vae`として登録されています。

```py
from diffusers import RFD4ProteinaAutoencoder

vae = RFD4ProteinaAutoencoder.from_pretrained("nvidia/RFD4-Proteina-Diffusers", subfolder="vae")
```

## RFD4ProteinaAutoencoder[[diffusers.RFD4ProteinaAutoencoder]]

#### diffusers.RFD4ProteinaAutoencoder[[diffusers.RFD4ProteinaAutoencoder]]

```python
diffusers.RFD4ProteinaAutoencoder(atom37_mask: collections.abc.Sequence[collections.abc.Sequence[bool]], allowed_residue_types: collections.abc.Sequence[collections.abc.Sequence[bool]], latent_dim: int = 32, n_residue_types: int = 147, num_token_types: int = 7, nlayers: int = 12, token_dim: int = 768, nheads: int = 12, dim_cond: int = 128, pair_repr_dim: int = 256, token_type_emb_dim: int = 32, encoder_feats_seq: tuple[str, ...] = ('token_type', 'x1_a37coors_nm', 'x1_a37coors_nm_rel', 'chain_idx_seq', 'incident_bond_type_counts', 'atom37_element_charge_embedding'), decoder_feats_seq: tuple[str, ...] = ('ca_coors_nm', 'z_latent_seq', 'token_type', 'cond_residue_type'))
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_rfd4_proteina.py#L500)

**パラメータ:**

latent_dim (`int`、デフォルトは`32`) : トークンごとのローカル潜在変数の幅。

n_residue_types (`int`、デフォルトは`147`) : 残基の語彙サイズ。

num_token_types (`int`、デフォルトは`7`) : トークンタイプ語彙のサイズ: protein、RNA、DNA、atomized、unknown、glycan、および非標準アミノ酸。

allowed_residue_types (`list[list[bool]]`) : `(num_token_types, n_residue_types)` の各トークンタイプがデコード可能な残基クラスを表すテーブル。

nlayers (`int`、デフォルトは`12`) : エンコーダーとデコーダーそれぞれのトランク層の数。

token_dim (`int`、デフォルトは`768`) : トークン表現の幅。

nheads (`int`、デフォルトは`12`) : 各レイヤーあたりのアテンションヘッド数。

dim_cond (`int`、デフォルトは`128`) : 使用されない（ゼロ）条件ベクトルの幅。

pair_repr_dim (`int`、デフォルトは`256`) : トランク層を構築する際に使用されるペア幅です。公開されているオートエンコーダーはペアバイアスを使用していないため、このパラメータは保持されません。

token_type_emb_dim (`int`、デフォルトは`32`) : トークンタイプ埋め込みの幅。

encoder_feats_seq, decoder_feats_seq (`list[str]`) : エンコーダーおよびデコーダーの入力に射影された特徴量。

atom37_mask (`list[list[bool]]`) : 各残基タイプに対する有効な atom37 スロット。形状は `(n_residue_types, 37)` です。

ペアリングされた分子エンコーダーとatom37デコーダー。

このモデルに渡される座標および返される座標は、ナノメートル単位です。

#### encode[[diffusers.RFD4ProteinaAutoencoder.encode]]

```python
encode(coords_nm: Tensor, padding_mask: Tensor, token_type: typing.Optional[torch.Tensor] = None, atom37_mask: typing.Optional[torch.Tensor] = None, conditioning: dict[str, typing.Any] | None = None, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, return_dict: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_rfd4_proteina.py#L583)

**パラメータ:**

coords_nm (`torch.Tensor`) : `(batch, tokens, 37, 3)` ナノメートル単位の atom37 座標。

padding_mask (`torch.Tensor`) : `(batch, tokens)`、トークンがパディングではなく実データであることを示すマスク。

token_type (`torch.Tensor`, *任意*) : `(batch, tokens)` の token-type コード。

atom37_mask (`torch.Tensor`, *任意*) : `(batch, tokens, 37)`、アトムスロットが使用されている箇所が true になります。

conditioning (`dict[str, Any]`、*省略可能*) : プリプロセッサが出力するキーの下にある、残りのトポロジーおよび条件付けテンソル。

generator (`torch.Generator` または `list[torch.Generator]`、*省略可*) : 独立した確率的潜在サンプルのために、バッチの各行ごとに1つのジェネレーターを指定します。指定しない場合、サンプリングはグローバルストリームから行われます。

return_dict (`bool`、デフォルトは`True`) : 型付きの出力、またはそのフィールドのタプルを返します。

**戻り値:** `RFD4ProteinaEncoderOutput` または `tuple`

`(batch, tokens, latent_dim)` の形状を持つ、潜在変数、平均、および対数スケールのテンソル。

準備された座標と条件付けを、サンプリングされたトークンごとのローカル潜在変数にエンコードします。

#### decode[[diffusers.RFD4ProteinaAutoencoder.decode]]

```python
decode(z_latent: Tensor, ca_coors_nm: Tensor, padding_mask: Tensor, token_type: typing.Optional[torch.Tensor] = None, atom37_mask: typing.Optional[torch.Tensor] = None, conditioning: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_rfd4_proteina.py#L624)

**パラメータ:**

z_latent (`torch.Tensor`) : `(batch, tokens, latent_dim)` トークンごとのローカル潜在変数。

ca_coors_nm (`torch.Tensor`) : `(batch, tokens, 3)` ナノメートル単位でのバックボーン CA 原子の座標。

padding_mask (`torch.Tensor`) : `(batch, tokens)`、トークンがパディングではなく実データであることを示すマスク。

token_type (`torch.Tensor`, *任意*) : `(batch, tokens)` の token-type コード。

atom37_mask (`torch.Tensor`, *任意*) : `(batch, tokens, 37)`、アトムスロットが使用されている箇所が true になります。

conditioning (`dict[str, Any]`、*省略可*) : プリプロセッサが出力するキーの下にある、残りのトポロジーおよび条件付けテンソル。シーケンス条件はここから読み取られます。

return_dict (`bool`、デフォルトは`True`) : 型付きの出力、またはそのフィールドのタプルを返します。

**戻り値:** `RFD4ProteinaDecoderOutput` または `tuple`

ナノメートル単位の座標`(batch, tokens, 37, 3)`、残基タイプ`(batch, tokens)`、エミッションマスク`(batch, tokens)`、およびアトムマスク`(batch, tokens, 37)`。エミッションされないアトムの座標はゼロです。

per-token latentsとbackbone positionsをデコードして、atom37構造に変換します。

#### forward[[diffusers.RFD4ProteinaAutoencoder.forward]]

```python
forward(z_latent: Tensor, ca_coors_nm: Tensor, padding_mask: Tensor, token_type: typing.Optional[torch.Tensor] = None, atom37_mask: typing.Optional[torch.Tensor] = None, conditioning: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_rfd4_proteina.py#L666)

**パラメータ:**

z_latent (`torch.Tensor`) : `(batch, tokens, latent_dim)` トークンごとのローカル潜在変数。

ca_coors_nm (`torch.Tensor`) : `(batch, tokens, 3)` ナノメートル単位でのバックボーン CA 原子の座標。

padding_mask (`torch.Tensor`) : `(batch, tokens)`、トークンがパディングではなく実データであることを示すマスク。

token_type (`torch.Tensor`, *任意*) : `(batch, tokens)` の token-type コード。

atom37_mask (`torch.Tensor`, *任意*) : `(batch, tokens, 37)`、アトムスロットが使用されている箇所が true になります。

conditioning (`dict[str, Any]`、*省略可*) : 残りのトポロジーおよび条件付けテンソル。

return_dict (`bool`、デフォルトは`True`) : 型付きの出力、またはそのフィールドのタプルを返します。

**戻り値:** `RFD4ProteinaDecoderOutput` または `tuple`

デコードされた座標、残基タイプ、およびアトム/エミットマスク。

トークンごとの潜在変数とバックボーン位置をデコードします。[decode()](/docs/diffusers/main/ja/api/models/rfd4_proteina_autoencoder#diffusers.RFD4ProteinaAutoencoder.decode)を呼び出すのと同じです。

## RFD4ProteinaEncoderOutput[[diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaEncoderOutput]]

#### diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaEncoderOutput[[diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaEncoderOutput]]

```python
diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaEncoderOutput(latent: Tensor, mean: typing.Optional[torch.Tensor] = None, log_scale: typing.Optional[torch.Tensor] = None)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_rfd4_proteina.py#L469)

**パラメータ:**

latent (`torch.Tensor`) : `mean + noise * exp(log_scale)` をサンプリングし、出力された潜在トークンの外部はゼロになります。

mean (`torch.Tensor`) : ガウシアン平均。出力された潜在トークンの外部はゼロです。

log_scale (`torch.Tensor`) : 出力された潜在トークンの外部はゼロの、対数標準偏差。

`(batch, tokens, latent_dim)` の形状を持つ、サンプリングされた潜在変数とガウス分布のパラメータです。

## RFD4ProteinaDecoderOutput[[diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaDecoderOutput]]

#### diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaDecoderOutput[[diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaDecoderOutput]]

```python
diffusers.models.autoencoders.autoencoder_rfd4_proteina.RFD4ProteinaDecoderOutput(coordinates: Tensor, residue_type: typing.Optional[torch.Tensor] = None, emit_mask: typing.Optional[torch.Tensor] = None, atom_mask: typing.Optional[torch.Tensor] = None)
```

[ソース](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/autoencoders/autoencoder_rfd4_proteina.py#L484)

**パラメータ:**

coordinates (`torch.Tensor`) : ナノメートル単位の座標 `(batch, tokens, 37, 3)`。出力されない原子はゼロです。

residue_type (`torch.Tensor`) : 形が `(batch, tokens)` の残基語彙インデックス。

emit_mask (`torch.Tensor`) : 形状が`(batch, tokens)`の、出力トークンのブール値マスク。

atom_mask (`torch.Tensor`) : 形状が`(batch, tokens, 37)`の、有効な原子を示すブール値のマスク。

デコードされた分子座標および離散的なatom37トポロジー。

