# RFD4ProteinaTransformer

O denoiser de [RFD4-Proteína](../pipelines/rfd4_proteina). Ele prevê velocidades para as duas modalidades que o sampler integra — posições CA do backbone e latentes locais por token — a partir de tensores moleculares preparados. As entradas são tensores nomeados mais um mapeamento de condicionamento cujo conteúdo é selecionado pela configuração do checkpoint; a análise da estrutura fica fora desta classe.

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

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

**Parâmetros:**

nlayers (`int`, padrão `14`) : Número de camadas do tronco.

token_dim (`int`, padrão `768`) : Largura da representação de tokens.

nheads (`int`, padrão `12`) : Cabeças de atenção por camada.

dim_cond (`int`, padrão `256`) : Largura do vetor de condicionamento (tempo, índice de reciclagem, rótulo CATH).

pair_repr_dim (`int`, padrão `384`) : Largura da representação de pares.

latent_dim (`int`, padrão `32`) : Largura do latente local por token.

token_type_emb_dim (`int`, padrão `32`) : Largura do embedding do tipo de token.

cath_emb_dim (`int`, padrão `32`) : Largura de cada incorporação de classe/arquitetura/topologia CATH.

t_emb_dim (`int`, padrão `256`) : Largura do embedding temporal sinusoidal.

seq_sep_dim (`int`, padrão `64`) : Número de bins de comprimento do caminho de ligação.

xt_pair_dist_dim (`int`, padrão `30`) : Número de bins de distância de pares do backbone.

xt_pair_dist_min (`float`, padrão `0.1`), xt_pair_dist_max (`float`, padrão `3.0`) : Intervalo de distância entre pares em nanômetros.

feats_seq, feats_cond_seq, feats_pair_repr, feats_pair_cond (`list[str]`) : Nomes dos recursos projetados nas entradas de token, condicionamento, par e par-condicionamento.

update_pair_repr_every_n (`int`, padrão `2`) : Com que frequência a representação do par é atualizada a partir dos tokens entre as camadas.

tri_mult_c (`int`, padrão `256`) : Largura oculta da multiplicação triangular nessas atualizações.

num_token_types (`int`, padrão `7`) : Tamanho do vocabulário de tipos de tokens: proteína, RNA, DNA, atomizado, desconhecido, glicano e aminoácido não canônico.

recycle_conditioning_dim (`int`, padrão `1`) : Largura do one-hot de `recycle_remaining`, quando esse recurso está em `feats_cond_seq`.

num_sequence_classes (`int`, padrão `147`) : Tamanho do vocabulário de resíduos que a leitura da sequência prevê.

Denoiser de velocidade RFD4 com modalidades de backbone pareado e latente local.

O modelo é executado em seu próprio dtype: carregue-o com `dtype=torch.bfloat16` para inferência de precisão reduzida. O estado de amostragem passado para `forward` permanece em float32; os embeddings de recursos são calculados em float32 e convertidos na projeção de entrada.

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

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

**Parâmetros:**

bb_ca (`torch.Tensor`) : Coordenadas ruidosas do backbone `(batch, tokens, 3)` em nanômetros.

local_latents (`torch.Tensor`) : Latentes locais com ruído `(batch, tokens, latent_dim)`.

bb_ca_time (`torch.Tensor`) : `(batch,)` tempo do backbone em [0, 1].

local_latents_time (`torch.Tensor`) : `(batch,)` tempo local-latente em [0, 1].

padding_mask (`torch.Tensor`) : `(batch, tokens)`, verdadeiro onde um token é real em vez de preenchimento.

token_type (`torch.Tensor`, *opcional*) : códigos de tipo de token `(batch, tokens)`.

atom37_mask (`torch.Tensor`, *opcional*) : `(batch, tokens, 37)`, verdadeiro onde um slot de átomo é utilizado.

conditioning (`dict[str, Any]`, *opcional*) : Os tensores restantes de topologia e condicionamento, sob as chaves emitidas pelo pré-processador. Quais deles são lidos é fixado pelo `feats_seq`, `feats_cond_seq`, `feats_pair_repr` e `feats_pair_cond` do checkpoint; uma chave solicitada por um recurso configurado, mas ausente, deixa esse recurso sem condicionamento em vez de levantar um erro.

recycle_depth (`int`, padrão `0`) : Número de passagens do tronco; zero ainda executa uma passagem.

attention_kwargs (`dict`, *opcional*) : Somente `scale` é lido, como a escala LoRA para esta chamada.

return_dict (`bool`, padrão `True`) : Retorna uma saída tipada ou uma tupla de campos não-None.

**Retorna:** `RFD4ProteinaTransformerOutput` ou `tuple`

Velocidades do backbone/latente local e logits opcionais de sequência/inserção, antes da integração do agendador.

Preveja velocidades a partir de tensores moleculares preparados sem avançar o amostrador.

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

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

**Parâmetros:**

backbone (`torch.Tensor`) : Velocidade do backbone com forma `(batch, tokens, 3)`, em nanômetros por unidade de tempo.

local_latents (`torch.Tensor`) : Velocidade latente com forma `(batch, tokens, latent_dim)`.

sequence_logits (`torch.Tensor`, *opcional*) : Logits de resíduos com forma `(batch, tokens, 147)`.

insertion_logits (`torch.Tensor`, *opcional*) : Atribuição de inserção de logits com forma `(batch, tokens, tokens)`.

Previsões do denoiser antes da integração do agendador.

