# RFD4ProteinaAutoencoder

Autoencoder dari [RFD4-Proteína](../pipelines/rfd4_proteina). `encode` memetakan koordinat atom37 ke latens lokal per-token, dan `decode` mengubah latens dan posisi backbone kembali menjadi struktur atom37 dan identitas residu. Ia didaftarkan dalam pipeline sebagai `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'))
```

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

**Parameter:**

latent_dim (`int`, defaultnya `32`) : Lebar dari latent lokal per-token.

n_residue_types (`int`, defaultnya `147`) : Ukuran kosakata residu.

num_token_types (`int`, defaultnya `7`) : Ukuran kosakata tipe token: protein, RNA, DNA, atomized, unknown, glycan, dan asam amino non-kanonik.

allowed_residue_types (`list[list[bool]]`) : tabel `(num_token_types, n_residue_types)` dari kelas residu yang dapat didekodekan oleh setiap tipe token.

nlayers (`int`, defaultnya `12`) : Lapisan trunk di masing-masing encoder dan decoder.

token_dim (`int`, defaultnya `768`) : Lebar representasi token.

nheads (`int`, defaultnya `12`) : Jumlah kepala perhatian per lapisan.

dim_cond (`int`, defaultnya `128`) : Lebar dari vektor kondisioning (tidak digunakan, nol).

pair_repr_dim (`int`, defaultnya `256`) : Lebar pasangan yang digunakan untuk membangun lapisan trunk. Autoencoder yang dirilis tidak menggunakan bias pasangan, sehingga parameter ini tidak menyimpan parameter apa pun.

token_type_emb_dim (`int`, defaultnya `32`) : Lebar embedding tipe token.

encoder_feats_seq, decoder_feats_seq (`list[str]`) : Fitur yang diproyeksikan ke input encoder dan decoder.

atom37_mask (`list[list[bool]]`) : Slot atom37 yang valid untuk setiap tipe residu, dengan bentuk `(n_residue_types, 37)`.

Encoder molekul berpasangan dan decoder atom37.

Koordinat yang diberikan ke dan dikembalikan oleh model ini dalam satuan nanometer.

#### 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)
```

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

**Parameter:**

coords_nm (`torch.Tensor`) : `(batch, tokens, 37, 3)` koordinat atom37 dalam nanometer.

padding_mask (`torch.Tensor`) : `(batch, tokens)`, bernilai true di mana token tersebut asli, bukan padding.

token_type (`torch.Tensor`, *opsional*) : kode tipe token `(batch, tokens)`.

atom37_mask (`torch.Tensor`, *opsional*) : `(batch, tokens, 37)`, bernilai true di mana slot atom digunakan.

conditioning (`dict[str, Any]`, *opsional*) : Tensor topologi dan kondisioning yang tersisa, di bawah kunci yang dihasilkan oleh preprocessor.

generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Satu generator per baris batch untuk sampel laten stokastik yang independen. Tanpa generator ini, pengambilan sampel dilakukan dari aliran global.

return_dict (`bool`, defaultnya `True`) : Mengembalikan output bertipe, atau tuple dari field-fieldnya.

**Mengembalikan:** `RFD4ProteinaEncoderOutput` atau `tuple`

Tensor laten, rata-rata, dan skala log dengan bentuk `(batch, tokens, latent_dim)`.

Enkode koordinat yang telah disiapkan dan kondisioning menjadi latens lokal per-token yang disampel.

#### 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)
```

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

**Parameter:**

z_latent (`torch.Tensor`) : `(batch, tokens, latent_dim)` latens lokal per-token.

ca_coors_nm (`torch.Tensor`) : `(batch, tokens, 3)` posisi CA backbone dalam nanometer.

padding_mask (`torch.Tensor`) : `(batch, tokens)`, bernilai true di mana token tersebut asli, bukan padding.

token_type (`torch.Tensor`, *opsional*) : kode tipe token `(batch, tokens)`.

atom37_mask (`torch.Tensor`, *opsional*) : `(batch, tokens, 37)`, bernilai true di mana slot atom digunakan.

conditioning (`dict[str, Any]`, *opsional*) : Tensor topologi dan kondisioning yang tersisa, di bawah kunci yang dihasilkan oleh preprocessor. Kondisi sekuens dibaca dari sini.

return_dict (`bool`, defaultnya `True`) : Mengembalikan output bertipe, atau tuple dari field-fieldnya.

**Mengembalikan:** `RFD4ProteinaDecoderOutput` atau `tuple`

Koordinat `(batch, tokens, 37, 3)` dalam nanometer, tipe residu `(batch, tokens)`, emission mask `(batch, tokens)` dan atom mask `(batch, tokens, 37)`. Koordinat atom yang tidak diemisi bernilai nol.

Decode latens per-token dan posisi backbone menjadi struktur 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)
```

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

**Parameter:**

z_latent (`torch.Tensor`) : `(batch, tokens, latent_dim)` latens lokal per-token.

ca_coors_nm (`torch.Tensor`) : `(batch, tokens, 3)` posisi CA backbone dalam nanometer.

padding_mask (`torch.Tensor`) : `(batch, tokens)`, bernilai true di mana token tersebut asli, bukan padding.

token_type (`torch.Tensor`, *opsional*) : kode tipe token `(batch, tokens)`.

atom37_mask (`torch.Tensor`, *opsional*) : `(batch, tokens, 37)`, bernilai true di mana slot atom digunakan.

conditioning (`dict[str, Any]`, *opsional*) : Tensor topologi dan kondisioning yang tersisa.

return_dict (`bool`, defaultnya `True`) : Mengembalikan output bertipe, atau tuple dari field-fieldnya.

**Mengembalikan:** `RFD4ProteinaDecoderOutput` atau `tuple`

Koordinat yang didekodekan, jenis residu, dan mask atom/emit.

Decode latens per-token dan posisi backbone; setara dengan memanggil [decode()](/docs/diffusers/main/id/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)
```

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

**Parameter:**

latent (`torch.Tensor`) : Sampel `mean + noise * exp(log_scale)`, nol di luar token laten yang dipancarkan.

mean (`torch.Tensor`) : rata-rata Gaussian, nol di luar token laten yang dipancarkan.

log_scale (`torch.Tensor`) : Deviasi standar log, bernilai nol di luar token laten yang dihasilkan.

Parameter laten yang disampelkan dan Gaussian, masing-masing berbentuk `(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)
```

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

**Parameter:**

coordinates (`torch.Tensor`) : Koordinat `(batch, tokens, 37, 3)` dalam nanometer; atom yang tidak dipancarkan bernilai nol.

residue_type (`torch.Tensor`) : Indeks kosakata residu dengan bentuk `(batch, tokens)`.

emit_mask (`torch.Tensor`) : Mask token yang dipancarkan berbentuk `(batch, tokens)`.

atom_mask (`torch.Tensor`) : Mask atom valid Boolean dengan bentuk `(batch, tokens, 37)`.

Koordinat molekul yang didekode dan topologi atom37 diskrit.

