# RFD4ProteinaTransformer

Denoiser dari [RFD4-Proteína](../pipelines/rfd4_proteina). Ini memprediksi kecepatan untuk dua modalitas yang diintegrasikan oleh sampler — posisi CA backbone dan latens lokal per-token — dari tensor molekul yang telah disiapkan. Input berupa tensor bernama plus pemetaan kondisioning yang isinya dipilih oleh konfigurasi checkpoint; parsing struktur berada di luar kelas ini.

```py
from diffusers import RFD4ProteinaTransformer

transformer = RFD4ProteinaTransformer.from_pretrained(
    "nvidia/RFD4-Proteina-Diffusers", subfolder="transformer"
)
```

## RFD4ProteinaTransformer[[diffusers.RFD4ProteinaTransformer]]

#### diffusers.RFD4ProteinaTransformer[[diffusers.RFD4ProteinaTransformer]]

```python
diffusers.RFD4ProteinaTransformer(nlayers: int = 14, token_dim: int = 768, nheads: int = 12, dim_cond: int = 256, pair_repr_dim: int = 384, latent_dim: int = 32, token_type_emb_dim: int = 32, cath_emb_dim: int = 32, t_emb_dim: int = 256, seq_sep_dim: int = 64, xt_pair_dist_dim: int = 30, xt_pair_dist_min: float = 0.1, xt_pair_dist_max: float = 3.0, feats_seq: tuple[str, ...] = ('xt_bb_ca', 'xt_local_latents', 'token_type', 'sequence_probabilities', 'cond_a37coors_nm', 'cond_a37coors_internal_nm', 'rasa_binned', 'secondary_structure', 'hbond_modernized', 'pistack', 'pication', 'saltbridge', 'hydrophobic', 'metal_coord', 'na_ss_state', 'hotspot', 'atom_charge', 'atomic_element', 'coord_group_seq', 'chirality', 'chain_centroid_xyz'), feats_cond_seq: tuple[str, ...] = ('time_emb_bb_ca', 'time_emb_local_latents', 'cath_code', 'recycle_remaining'), feats_pair_repr: tuple[str, ...] = ('xt_bb_ca_pair_dists', 'bond_mask', 'bond_order', 'is_aromatic', 'index_group_pair', 'molecule_idx_pair', 'molecule_entity_pair', 'token_bond_path_length', 'canonical_polymer_ordering', 'na_ss_pair'), feats_pair_cond: tuple[str, ...] = ('time_emb_bb_ca', 'time_emb_local_latents'), update_pair_repr_every_n: int = 2, tri_mult_c: int = 256, num_sequence_classes: int = 147, num_token_types: int = 7, recycle_conditioning_dim: int = 1)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L906)

**Parameter:**

nlayers (`int`, defaultnya `14`) : Jumlah lapisan trunk.

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

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

dim_cond (`int`, defaultnya `256`) : Lebar dari vektor kondisioning (waktu, indeks daur ulang, label CATH).

pair_repr_dim (`int`, defaultnya `384`) : Lebar representasi pasangan.

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

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

cath_emb_dim (`int`, defaultnya `32`) : Lebar setiap embedding kelas/arsitektur/topologi CATH.

t_emb_dim (`int`, defaultnya `256`) : Lebar embedding waktu sinusoidal.

seq_sep_dim (`int`, defaultnya `64`) : Jumlah bin panjang jalur ikatan.

xt_pair_dist_dim (`int`, defaultnya `30`) : Jumlah bin jarak pasangan backbone.

xt_pair_dist_min (`float`, defaultnya `0.1`), xt_pair_dist_max (`float`, defaultnya `3.0`) : Rentang jarak pasangan dalam nanometer.

feats_seq, feats_cond_seq, feats_pair_repr, feats_pair_cond (`list[str]`) : Nama-nama fitur yang diproyeksikan ke dalam input token, kondisioning, pasangan, dan kondisioning pasangan.

update_pair_repr_every_n (`int`, defaultnya `2`) : Seberapa sering representasi pasangan diperbarui dari token di antara lapisan.

tri_mult_c (`int`, defaultnya `256`) : Lebar tersembunyi dari perkalian segitiga dalam pembaruan tersebut.

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

recycle_conditioning_dim (`int`, defaultnya `1`) : Lebar dari one-hot `recycle_remaining`, ketika fitur tersebut ada di `feats_cond_seq`.

num_sequence_classes (`int`, defaultnya `147`) : Ukuran kosakata residu yang diprediksi oleh pembacaan urutan.

RFD4 velocity denoiser dengan backbone berpasangan dan modalitas lokal-latent.

Model berjalan dalam dtype-nya sendiri: muat dengan `dtype=torch.bfloat16` untuk inferensi presisi-rendah. State sampling yang diteruskan ke `forward` tetap dalam float32; embedding fitur dihitung dalam float32 dan di-cast pada proyeksi input.

#### forward[[diffusers.RFD4ProteinaTransformer.forward]]

```python
forward(bb_ca: Tensor, local_latents: Tensor, bb_ca_time: Tensor, local_latents_time: 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, recycle_depth: int = 0, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L1062)

**Parameter:**

bb_ca (`torch.Tensor`) : Koordinat backbone berisik `(batch, tokens, 3)` dalam nanometer.

local_latents (`torch.Tensor`) : Laten lokal berisik `(batch, tokens, latent_dim)`.

bb_ca_time (`torch.Tensor`) : `(batch,)` waktu backbone dalam [0, 1].

local_latents_time (`torch.Tensor`) : `(batch,)` waktu lokal-latent dalam [0, 1].

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. Kunci mana yang dibaca ditentukan oleh `feats_seq`, `feats_cond_seq`, `feats_pair_repr`, dan `feats_pair_cond` dari checkpoint; jika kunci yang diminta oleh fitur yang dikonfigurasi tidak ada, fitur tersebut akan tetap tanpa kondisioning alih-alih memicu error.

recycle_depth (`int`, defaultnya `0`) : Jumlah lintasan trunk; nol tetap menjalankan satu lintasan.

attention_kwargs (`dict`, *opsional*) : Hanya `scale` yang dibaca, sebagai skala LoRA untuk panggilan ini.

return_dict (`bool`, defaultnya `True`) : Mengembalikan output bertipe, atau tuple dari field yang bukan None.

**Mengembalikan:** `RFD4ProteinaTransformerOutput` atau `tuple`

Kecepatan backbone/laten-lokal dan logit urutan/insersi opsional, sebelum integrasi scheduler.

Prediksi kecepatan dari tensor molekul yang telah disiapkan tanpa memajukan sampler.

## RFD4ProteinaTransformerOutput[[diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput]]

#### diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput[[diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput]]

```python
diffusers.models.transformers.transformer_rfd4_proteina.RFD4ProteinaTransformerOutput(backbone: Tensor, local_latents: typing.Optional[torch.Tensor] = None, sequence_logits: typing.Optional[torch.Tensor] = None, insertion_logits: typing.Optional[torch.Tensor] = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_rfd4_proteina.py#L890)

**Parameter:**

backbone (`torch.Tensor`) : Kecepatan backbone dengan bentuk `(batch, tokens, 3)`, dalam nanometer per satuan waktu.

local_latents (`torch.Tensor`) : Kecepatan laten dengan bentuk `(batch, tokens, latent_dim)`.

sequence_logits (`torch.Tensor`, *opsional*) : Logit residu dengan bentuk `(batch, tokens, 147)`.

insertion_logits (`torch.Tensor`, *opsional*) : Penugasan penyisipan logits berbentuk `(batch, tokens, tokens)`.

Prediksi denoiser sebelum integrasi scheduler.

