# RFD4ProteinaAutoencoder

El autoencoder de [RFD4-Proteína](../pipelines/rfd4_proteina). `encode` mapea las coordenadas de atom37 a latentes locales por token, y `decode` convierte los latentes y las posiciones del esqueleto de vuelta en la estructura de atom37 y las identidades de los residuos. Está registrado en el pipeline como `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: Sequence, allowed_residue_types: Sequence, 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 = ('token_type', 'x1_a37coors_nm', 'x1_a37coors_nm_rel', 'chain_idx_seq', 'incident_bond_type_counts', 'atom37_element_charge_embedding'), decoder_feats_seq: tuple = ('ca_coors_nm', 'z_latent_seq', 'token_type', 'cond_residue_type'))
```

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

**Parámetros:**

latent_dim (`int`, por defecto `32`) : Ancho del latente local por token.

n_residue_types (`int`, por defecto `147`) : Tamaño del vocabulario de residuos.

num_token_types (`int`, por defecto `7`) : Tamaño del vocabulario de tipos de token: proteína, ARN, ADN, atomizado, desconocido, glicano y aminoácido no canónico.

allowed_residue_types (`list[list[bool]]`) : tabla de clases de residuos a las que cada tipo de token puede decodificarse, de dimensiones `(num_token_types, n_residue_types)`.

nlayers (`int`, por defecto `12`) : Capas del tronco en cada uno del codificador y el decodificador.

token_dim (`int`, por defecto `768`) : Ancho de la representación de tokens.

nheads (`int`, por defecto `12`) : Cabezas de atención por capa.

dim_cond (`int`, por defecto `128`) : Ancho del vector de condicionamiento (no utilizado, cero).

pair_repr_dim (`int`, por defecto `256`) : Ancho de par con el que se construyen las capas del tronco. El autoencoder publicado no usa sesgo de par, por lo que no contiene parámetros.

token_type_emb_dim (`int`, por defecto `32`) : Ancho del embedding de tipo de token.

encoder_feats_seq, decoder_feats_seq (`list[str]`) : Características proyectadas en las entradas del codificador y del decodificador.

atom37_mask (`list[list[bool]]`) : Ranuras de atom37 válidas para cada tipo de residuo, con forma `(n_residue_types, 37)`.

Codificador molecular emparejado y decodificador atom37.

Las coordenadas proporcionadas a este modelo y devueltas por él están en nanómetros.

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

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

**Parámetros:**

coords_nm (`torch.Tensor`) : `(batch, tokens, 37, 3)` coordenadas de atom37 en nanómetros.

padding_mask (`torch.Tensor`) : `(batch, tokens)`, verdadero donde un token es real y no relleno.

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

atom37_mask (`torch.Tensor`, *opcional*) : `(batch, tokens, 37)`, verdadero donde se utiliza un hueco de átomo.

conditioning (`dict[str, Any]`, *opcional*) : Los tensores restantes de topología y condicionamiento, bajo las claves que emite el preprocesador.

generator (`torch.Generator` o `list[torch.Generator]`, *opcional*) : Un generador por fila del lote para muestras latentes estocásticas independientes. Sin uno, la muestreación se realiza desde el flujo global.

return_dict (`bool`, por defecto `True`) : Devuelve una salida tipada o una tupla de sus campos.

**Devuelve:** `RFD4ProteinaEncoderOutput` o `tuple`

Tensores latentes, de media y de escala logarítmica con forma `(batch, tokens, latent_dim)`.

Codifica las coordenadas preparadas y las condiciones en latentes locales por token muestreados.

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

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

**Parámetros:**

z_latent (`torch.Tensor`) : `(batch, tokens, latent_dim)` latentes locales por token.

ca_coors_nm (`torch.Tensor`) : `(batch, tokens, 3)` posiciones CA del backbone en nanómetros.

padding_mask (`torch.Tensor`) : `(batch, tokens)`, verdadero donde un token es real y no relleno.

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

atom37_mask (`torch.Tensor`, *opcional*) : `(batch, tokens, 37)`, verdadero donde se utiliza un hueco de átomo.

conditioning (`dict[str, Any]`, *opcional*) : Los tensores restantes de topología y condicionamiento, bajo las claves que emite el preprocesador. La condición de secuencia se lee de aquí.

return_dict (`bool`, por defecto `True`) : Devuelve una salida tipada o una tupla de sus campos.

**Devuelve:** `RFD4ProteinaDecoderOutput` o `tuple`

Coordenadas `(batch, tokens, 37, 3)` en nanómetros, tipos de residuo `(batch, tokens)`, máscara de emisión `(batch, tokens)` y máscara de átomos `(batch, tokens, 37)`. Las coordenadas de los átomos no emitidos son cero.

Decodifica los latentes por token y las posiciones del backbone en la estructura 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)
```

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

**Parámetros:**

z_latent (`torch.Tensor`) : `(batch, tokens, latent_dim)` latentes locales por token.

ca_coors_nm (`torch.Tensor`) : `(batch, tokens, 3)` posiciones CA del backbone en nanómetros.

padding_mask (`torch.Tensor`) : `(batch, tokens)`, verdadero donde un token es real y no relleno.

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

atom37_mask (`torch.Tensor`, *opcional*) : `(batch, tokens, 37)`, verdadero donde se utiliza un hueco de átomo.

conditioning (`dict[str, Any]`, *opcional*) : Los tensores restantes de topología y condicionamiento.

return_dict (`bool`, por defecto `True`) : Devuelve una salida tipada o una tupla de sus campos.

**Devuelve:** `RFD4ProteinaDecoderOutput` o `tuple`

Coordenadas decodificadas, tipos de residuos y máscaras de átomos/emisiones.

Decodifica los latentes por token y las posiciones del backbone; equivale a llamar a [decode()](/docs/diffusers/main/es/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)
```

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

**Parámetros:**

latent (`torch.Tensor`) : Muestra `mean + noise * exp(log_scale)`, cero fuera de los tokens latentes emitidos.

mean (`torch.Tensor`) : media gaussiana, cero fuera de los tokens latentes emitidos.

log_scale (`torch.Tensor`) : Desviación estándar logarítmica, cero fuera de los tokens latentes emitidos.

Parámetros latentes muestreados y gaussianos, cada uno con forma `(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)
```

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

**Parámetros:**

coordinates (`torch.Tensor`) : Coordenadas `(batch, tokens, 37, 3)` en nanómetros; los átomos no emitidos son cero.

residue_type (`torch.Tensor`) : Índices del vocabulario de residuos con forma `(batch, tokens)`.

emit_mask (`torch.Tensor`) : Máscara booleana de tokens emitidos con forma `(batch, tokens)`.

atom_mask (`torch.Tensor`) : Máscara booleana de átomos válidos con forma `(batch, tokens, 37)`.

Coordenadas moleculares decodificadas y topología discreta de atom37.

