Transformers documentation
ESMFold2
Ce modèle a été contribué à Hugging Face Transformers le 2026-08-19.
ESMFold2
Aperçu
ESMFold2 est un modèle de prédiction de structure protéique à tous les atomes. Il prédit les coordonnées 3D et la confiance par résidu (pLDDT, PAE, PDE) directement à partir d'une séquence d'acides aminés, en utilisant le modèle de langage protéique ESMC comme colonne vertébrale. L'architecture combine un encodeur d'atomes à fenêtre glissante avec des embeddings de position rotatifs 3D, un tronc de pliage par paires appliqué itérativement, une tête de structure basée sur la diffusion et une tête de confiance.
Le point de contrôle du modèle est disponible sur le Hugging Face Hub à biohub/ESMFold2.
Exemple d'utilisation
import torch
from transformers import EsmFold2Model
# The ESMC backbone is bundled in the checkpoint and loaded with the model.
# bf16 is the recommended inference precision.
model = EsmFold2Model.from_pretrained("biohub/ESMFold2", dtype=torch.bfloat16, device_map="auto")
pdb_string = model.infer_protein_as_pdb("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ")
print(pdb_string)infer_protein renvoie les sorties brutes (coordonnées atomiques, logits du distogramme et métriques de confiance) sous forme d’un EsmFold2Output si vous en avez besoin plutôt que d’une chaîne PDB. Vous pouvez obtenir des prédictions légèrement différentes si vous exécutez la même séquence plusieurs fois. Définissez une graine manuelle si vous souhaitez des structures exactement reproductibles.
ESMFold2 génère config.structure_head.num_diffusion_samples structures par repliement. infer_protein_as_pdb affiche celle qui est classée en premier (pTM le plus élevé) ; passez sample_idx pour sélectionner un échantillon spécifique. Le fichier PDB contient le pLDDT par résidu dans la colonne b-factor, sur la même échelle 0-1 que la sortie plddt.
forward vs fold
La prédiction de structure comporte deux volets. EsmFold2Model.forward est le premier : il exécute le tronc de repliement sur les entrées featurisées et renvoie la représentation de paires affinée ainsi que le distogramme, sous forme d'un EsmFold2TrunkOutput. Il ne produit pas de coordonnées 3D — ESMFold2 les obtient par débruitage itératif, et cette boucle d'échantillonnage (le calendrier de bruit, l'alignement de Kabsch et la mise à jour ODE/SDE) se trouve dans EsmFold2FoldingMixin, de même que l'appel de la tête de confiance :
| Méthode | L'utiliser pour |
|---|---|
infer_protein_as_pdb(sequence) | une chaîne PDB, directement à partir d'une séquence d'acides aminés |
infer_protein(sequence) | la sortie brute EsmFold2Output |
fold(**features) | entrées pré-encodées (ce que infer_protein appelle) |
forward(**features) | le tronc seul — une distogramme et une représentation par paires, sans échantillonnage |
Appelez fold ou infer_protein pour obtenir une structure réelle. Utilisez forward si vous avez seulement besoin du distogramme, ou si vous souhaitez piloter vous-même l’échantillonneur de diffusion : fold appelle forward une fois, puis transmet sa sortie à EsmFold2DiffusionModule, dont le propre forward constitue l’étape unique de débruitage.
Inférence plus rapide avec un noyau fusionné
Le coût dominant du tronc de repli est la mise à jour par multiplication de triangles. Passer use_kernels=True à from_pretrained() le remplace par un noyau Triton fusionné chargé depuis le Hub via la bibliothèque kernels, sans modifier la prédiction. Il est réservé à l’inférence et
exclusivement à CUDA ; sur CPU ou sans le noyau installé, le modèle bascule transparentement sur l’implémentation pure PyTorch.
Assurez-vous que le modèle est sur un appareil CUDA lorsque la noyautisation a lieu (par exemple avec device_map).
import torch
from transformers import EsmFold2Model
model = EsmFold2Model.from_pretrained(
"biohub/ESMFold2", dtype=torch.bfloat16, device_map="cuda", use_kernels=True
)
pdb_string = model.infer_protein_as_pdb("MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQ")EsmFold2Config
classe transformers.EsmFold2Config
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int | None = 384pairwise_hidden_size: int | None = 256single_inputs_size: int | None = 451pair_transition_intermediate_size: int | None = 1024sliding_window: int | None = 128chunk_size: int | None = 64num_relative_residx_bins: int | None = 32num_relative_chain_bins: int | None = 2num_loops: int | None = 10num_res_types: int | None = 33max_atomic_number: int | None = 128char_vocab_size: int | None = 64max_chars: int | None = 4max_atoms_per_token: int | None = 23atom_feature_dim: int | None = Nonefolding_trunk_num_hidden_layers: int | None = 24parcae_num_coda_layers: int | None = 2atom_encoder: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2AtomEncoderConfig | None = Nonestructure_head: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2StructureHeadConfig | None = Noneconfidence_head: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2ConfidenceHeadConfig | None = Nonemsa_encoder: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2MsaEncoderConfig | None = Nonelm_encoder: dict | transformers.models.esmfold2.configuration_esmfold2.EsmFold2LmEncoderConfig | None = Noneesmc_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
Paramètres
- hidden_size (
int, facultatif, valeur par défaut 384) — Largeur de la représentation unique. - pairwise_hidden_size (
int, facultatif, valeur par défaut 256) — Largeur de la représentation des paires. - single_inputs_size (
int, facultatif, valeur par défaut 451) — Largeur des caractéristiques d’entrée unique concaténées fournies au tronc et au conditionnement de la diffusion :atom_encoder.output_dimplus deux one-hots de type de résidu et le scalaire de profil. - pair_transition_intermediate_size (
int, facultatif, valeur par défaut 1024) — Largeur SwiGLU des transitions du flux de paires. - sliding_window (
int, facultatif, valeur par défaut 128) — Taille de la fenêtre glissante (distance en index de jetons) pour l'attention atom-stack, exprimée comme la largeur totale de la fenêtre plutôt que comme le rayon. - chunk_size (
int, facultatif, valeur par défaut 64) — Taille des blocs pour les opérations de paires et de flux MSA gourmandes en mémoire.Nonedésactive le découpage en blocs. - num_relative_residx_bins (
int, facultatif, valeur par défaut 32) — Nombre de bins d’index de résidu relatif dans l’encodage de position relative. - num_relative_chain_bins (
int, facultatif, valeur par défaut 2) — Nombre de classes d’indices de chaîne relatifs dans l’encodage des positions relatives. - num_loops (
int, facultatif, valeur par défaut 10) — Nombre de boucles de raffinement du tronc. - num_res_types (
int, facultatif, valeur par défaut : 33) — Nombre de types de résidus. - max_atomic_number (
int, facultatif, valeur par défaut 128) — Taille du one-hot d'élément dans les caractéristiques atomiques. - char_vocab_size (
int, facultatif, valeur par défaut 64) — Taille du vocabulaire de caractères pour les noms d'atomes encodés. - max_chars (
int, facultatif, valeur par défaut 4) — Nombre de caractères par nom d'atome encodé. - max_atoms_per_token (
int, facultatif, valeur par défaut 23) — Nombre maximal d'atomes par jeton. - atom_feature_dim (
int, facultatif) — Largeur des caractéristiques atomiques : xyz, charge et masque, ainsi que les one-hots de l'élément et des caractères du nom de l'atome. Déduit demax_atomic_number,char_vocab_sizeetmax_charss'il n'est pas défini. - folding_trunk_num_hidden_layers (
int, facultatif, valeur par défaut 24) — Nombre de blocs de mise à jour par paires dans le tronc de pliage. - parcae_num_coda_layers (
int, facultatif, valeur par défaut 2) — Nombre de blocs de mise à jour par paires dans la coda parcae. - atom_encoder (
EsmFold2AtomEncoderConfig, facultatif) — Configuration de l’encodeur d’atomes SWA de l’embedder d’entrées. - structure_head (
EsmFold2StructureHeadConfig, facultatif) — Configuration de la tête de prédiction de structure par diffusion (contient la sous-configurationdiffusion_module). - confidence_head (
EsmFold2ConfidenceHeadConfig, facultatif) — Configuration pour la tête de confiance. - msa_encoder (
EsmFold2MsaEncoderConfig, facultatif) — Configuration de l'encodeur MSA. - lm_encoder (
EsmFold2LmEncoderConfig, facultatif) — Configuration de l’encodeur des états cachés du modèle de langage. - esmc_config (EsmcConfig, facultatif) — Configuration pour le backbone ESMC intégré.
Ceci est la classe de configuration destinée à stocker la configuration d'un Esmfold2Model. Elle est utilisée pour instancier un modèle Esmfold2 en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de biohub/ESMFold2
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Vérifie les relations de largeur qui s'étendent sur plusieurs sous-configurations ; chaque sous-configuration vérifie la sienne.
EsmFold2PreTrainedModel
classe transformers.EsmFold2PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Paramètres
- config (PreTrainedConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
EsmFold2Model
classe transformers.EsmFold2Model
< source >( config: EsmFold2Config )
Paramètres
- config (EsmFold2Config) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Prédicteur de structure protéique all-atom ESMFold2 avec un tronc de modèle de langage protéique ESMC intégré. Il s’agit de l’architecture ESMFold2 standard publiée, dont le tronc est une pile récurrente linéaire (internement désignée par « parcae »).
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( token_index: Tensorresidue_index: Tensorasym_id: Tensorsym_id: Tensorentity_id: Tensormol_type: Tensorres_type: Tensortoken_bonds: Tensorattention_mask: Tensoratom_inputs: EsmFold2AtomInputsdeletion_mean: typing.Optional[torch.Tensor] = Nonemsa: typing.Optional[torch.Tensor] = Nonehas_deletion: typing.Optional[torch.Tensor] = Nonedeletion_value: typing.Optional[torch.Tensor] = Nonemsa_attention_mask: typing.Optional[torch.Tensor] = Noneinput_ids: typing.Optional[torch.Tensor] = Nonelm_hidden_states: typing.Optional[torch.Tensor] = Nonenum_loops: int | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] or tuple(torch.Tensor)
Paramètres
- token_index (torch.Tensor de forme (batch_size, num_tokens)) — Index positionnel par jeton au sein du complexe complet ; alimente l’encodage de position relative.
- residue_index (torch.Tensor de forme (batch_size, num_tokens)) — Index du résidu au sein de chaque chaîne ; alimente l'encodage de position relative.
- asym_id (torch.Tensor de forme (batch_size, num_tokens)) — Identifiant d'unité asymétrique (chaîne) pour chaque jeton.
- sym_id (torch.Tensor de forme (batch_size, num_tokens)) — ID de copie de symétrie distinguant les chaînes identiques d'un homomère.
- entity_id (torch.Tensor de forme (batch_size, num_tokens)) — Identifiants d'entité regroupant les jetons appartenant à la même entité moléculaire.
- mol_type (torch.Tensor de forme (batch_size, num_tokens)) —
Code de type de molécule pour chaque jeton :
0= protéine,1= ADN,2= ARN,3= non-polymère (ligand). - res_type (torch.Tensor de forme (batch_size, num_tokens)) — Index du type de résidu (identité de l'acide aminé) pour chaque jeton.
- token_bonds (torch.Tensor de forme (batch_size, num_tokens, num_tokens, 1)) — Caractéristique de liaison covalente inter-jetons par paires.
- attention_mask (torch.Tensor de forme (batch_size, num_tokens)) —
Masque indiquant les jetons valides (
1) par rapport au bourrage (0). Les entrées doivent être bourrées à droite. - atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — Les tenseurs bruts des atomes du conformère de référence, regroupés : positions, numéros atomiques, charges formelles, noms d'atomes encodés, identifiants de groupe par atome, masque de bourrage des atomes et carte atome->jeton.
- deletion_mean (torch.Tensor de forme (batch_size, num_tokens), facultatif) — Nombre moyen de suppressions MSA par colonne. La valeur par défaut est zéro (aucun MSA).
- msa (torch.Tensor de forme (batch_size, msa_depth, num_tokens), facultatif) — Jetons de type résidu MSA (la ligne 0 est la séquence requête). Par défaut, une MSA à séquence unique.
- has_deletion (torch.Tensor de forme (batch_size, msa_depth, num_tokens), facultatif) — Indicateur booléen marquant les positions de la MSA précédées d'une suppression.
- deletion_value (torch.Tensor de forme (batch_size, msa_depth, num_tokens), facultatif) — Comptes de suppressions MSA par position.
- msa_attention_mask (torch.Tensor de forme (batch_size, msa_depth, num_tokens), facultatif) — Masque de validité pour les lignes/colonnes de la MSA.
- input_ids (torch.Tensor de forme (batch_size, num_tokens), facultatif) — Identifiants de jetons du vocabulaire ESMC pour la séquence. Transmis au backbone ESMC inclus pour produire lm_hidden_states lorsque ceux-ci ne sont pas fournis directement ; ignorés lorsque lm_hidden_states est fourni.
- lm_hidden_states (torch.Tensor de forme (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size), facultatif) — États cachés précalculés du backbone ESMC, un par couche du backbone plus les embeddings. S'ils sont fournis, le backbone n'est pas exécuté et input_ids n'est pas utilisé.
- num_loops (int, facultatif) — Nombre de boucles de raffinement du tronc. Valeur par défaut : config.num_loops.
Retourne
[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] ou tuple(torch.Tensor)
Un [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] ou un tuple de torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers éléments en fonction de la configuration ([EsmFold2Config]) et des entrées.
Exécuter le tronc de repliement : extraire les caractéristiques des entrées, les intégrer dans une représentation par paires, l’affiner sur num_loops itérations de recyclage, puis lire le distogramme. Il s’agit de la moitié déterministe de la prédiction de structure ; l’échantillonneur de diffusion qui transforme la représentation par paires renvoyée en coordonnées 3D se trouve dans EsmFold2FoldingMixin — appelez [~EsmFold2Model.fold] ou [~EsmFold2Model.infer_protein] pour une prédiction de bout en bout.
- distogram_logits (torch.Tensor de forme (batch_size, num_tokens, num_tokens, distogram_bins)) — Logits de la distribution des distances prédite sur les paires de résidus.
- pair_states (torch.Tensor de forme (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Représentation finale des paires du tronc, en fp32.
- single_inputs (torch.Tensor de forme (batch_size, num_tokens, single_inputs_size)) — Caractéristiques d'entrée unique concaténées, construites par l'embedder d'entrées.
- relative_position_encoding (torch.Tensor de forme (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Encodage des paires de positions relatives.
- token_bonds_encoding (torch.Tensor de forme (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Caractéristique de liaison covalente inter-jetons intégrée.
- atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, facultatif) — Les entrées atomiques du conformère de référence, featurisées, réutilisées par la pile d’atomes de diffusion.
repli
< source >( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )
Prédire une structure de bout en bout à partir d’entrées featurisées : exécuter le tronc ([EsmFold2Model.forward], qui documente les arguments de fonction), échantillonner les coordonnées depuis la tête de structure par diffusion, puis les évaluer avec la tête de confiance.
Seuls les arguments dont le sampler et la tête de confiance ont besoin sont nommés ici ; le reste est transmis au tronc sans modification, de sorte que fold prend les mêmes arguments que forward.
attention_mask (torch.Tensor de forme (batch_size, num_tokens)) :
Masque indiquant les jetons valides (1) par rapport au bourrage (0). Transmis également au tronc.
asym_id (torch.Tensor de forme (batch_size, num_tokens)) :
Identifiant d'unité asymétrique (chaîne) pour chaque jeton. Transmis également au tronc.
mol_type (torch.Tensor de forme (batch_size, num_tokens)) :
Code de type de molécule pour chaque jeton : 0 = protéine, 1 = ADN, 2 = ARN, 3 = non-polymère (ligand). Transmis également au tronc.
distogram_atom_idx (torch.Tensor de forme (batch_size, num_tokens)) :
Index de l'atome représentatif (Cβ, ou Cα pour la glycine) de chaque jeton. Utilisé par la tête de confiance ; le tronc n'en a pas besoin.
num_diffusion_samples (int, facultatif) :
Nombre d'échantillons de structure parallèles à générer ; la tête de confiance est réexécutée une fois par échantillon.
Valeur par défaut : config.structure_head.num_diffusion_samples.
num_sampling_steps (int, facultatif) :
Nombre d'étapes d'échantillonnage de diffusion. Valeur par défaut : config.structure_head.inference_num_steps.
trunk_kwargs :
Les entrées vectorisées restantes (y compris num_loops, ainsi que les tenseurs bruts par atome regroupés
ci-dessous dans atom_inputs), transmis à [EsmFold2Model.forward], qui les documente.
Créer les caractéristiques de la sequence et la replier. forward_kwargs est transmis à [~EsmFold2Model.fold].
Plier la sequence et afficher la prédiction sous forme de chaîne PDB.
sample_idx sélectionne l'échantillon de diffusion à afficher ; par défaut, c'est celui classé en première position.
EsmFold2Output
classe transformers.models.esmfold2.modeling_esmfold2.EsmFold2Output
< source >( distogram_logits: typing.Optional[torch.Tensor] = Nonesample_atom_coords: typing.Optional[torch.Tensor] = Noneplddt_logits: typing.Optional[torch.Tensor] = Noneplddt: typing.Optional[torch.Tensor] = Noneplddt_per_atom: typing.Optional[torch.Tensor] = Noneplddt_ca: typing.Optional[torch.Tensor] = Nonecomplex_plddt: typing.Optional[torch.Tensor] = Nonecomplex_iplddt: typing.Optional[torch.Tensor] = Nonepae_logits: typing.Optional[torch.Tensor] = Nonepae: typing.Optional[torch.Tensor] = Nonepde_logits: typing.Optional[torch.Tensor] = Nonepde: typing.Optional[torch.Tensor] = Noneresolved_logits: typing.Optional[torch.Tensor] = Noneptm: typing.Optional[torch.Tensor] = Noneiptm: typing.Optional[torch.Tensor] = Nonepair_chains_iptm: typing.Optional[torch.Tensor] = None )
Paramètres
- distogram_logits (
torch.Tensorde forme(batch_size, num_tokens, num_tokens, distogram_bins)) — Logits de la distribution des distances prédite sur les paires de résidus (indépendant du générateur aléatoire ; aucun échantillonnage par diffusion). - sample_atom_coords (
torch.Tensorde forme(num_diffusion_samples, num_atoms, 3)) — Coordonnées cartésiennes prédites pour tous les atomes de chaque échantillon de diffusion. - plddt_logits (
torch.Tensorde forme(num_diffusion_samples, num_atoms, num_plddt_bins)) — Logits des bins pLDDT par atome. - plddt (
torch.Tensorde forme(num_diffusion_samples, num_tokens)) — Confiance lDDT prédite par résidu. - plddt_per_atom (
torch.Tensorde forme(num_diffusion_samples, num_atoms)) — Confiance lDDT prédite par atome. - plddt_ca (
torch.Tensorde forme(num_diffusion_samples, num_tokens)) — lDDT prédit sur l'atome représentatif (Cα) de chaque jeton. - complex_plddt (
torch.Tensorde forme(num_diffusion_samples,)) — pLDDT moyen sur tous les atomes du complexe. - complex_iplddt (
torch.Tensorde forme(num_diffusion_samples,)) — pLDDT complexe pondéré par l'interface. - pae_logits (
torch.Tensorde forme(num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — Logits des classes d'erreur alignée prédite. - pae (
torch.Tensorde forme(num_diffusion_samples, num_tokens, num_tokens)) — Erreur alignée prédite attendue (Å) pour chaque paire de résidus. - pde_logits (
torch.Tensorde forme(num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — Logits des classes d'erreur de distance prédite. - pde (
torch.Tensorde forme(num_diffusion_samples, num_tokens, num_tokens)) — Erreur de distance prédite attendue (Å) pour chaque paire de résidus. - resolved_logits (
torch.Tensorde forme(num_diffusion_samples, num_atoms, 2)) — Logits résolus/non résolus par atome. - ptm (
torch.Tensorde forme(num_diffusion_samples,)) — Score TM prédit pour chaque échantillon. - iptm (
torch.Tensorde forme(num_diffusion_samples,)) — Score TM d'interface prédit pour chaque échantillon. - pair_chains_iptm (
torch.Tensorde forme(num_diffusion_samples, num_chains, num_chains)) — Score TM d'interface prédit pour chaque paire ordonnée de chaînes.
Sortie de EsmFold2Model. Tous les scores de confiance sont sur une échelle de 0 à 1 ; les tenseurs par échantillon ont un axe principal num_diffusion_samples.
EsmFold2TrunkOutput
classe transformers.models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput
< source >( distogram_logits: typing.Optional[torch.Tensor] = Nonepair_states: typing.Optional[torch.Tensor] = Nonesingle_inputs: typing.Optional[torch.Tensor] = Nonerelative_position_encoding: typing.Optional[torch.Tensor] = Nonetoken_bonds_encoding: typing.Optional[torch.Tensor] = Noneatom_inputs: transformers.models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs | None = None )
Paramètres
- distogram_logits (
torch.Tensorde forme(batch_size, num_tokens, num_tokens, distogram_bins)) — Logits de la distribution des distances prédite sur les paires de résidus. - pair_states (
torch.Tensorde forme(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — La représentation finale des paires du tronc, en fp32. - single_inputs (
torch.Tensorde forme(batch_size, num_tokens, single_inputs_size)) — Fonctions d'entrée unique concaténées construites par l'embedder d'entrées. - relative_position_encoding (
torch.Tensorde forme(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Encodage des paires de positions relatives. - token_bonds_encoding (
torch.Tensorde forme(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Fonction de liaison covalente inter-jetons intégrée. - atom_inputs (
~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, facultatif) — Les entrées atomiques du conformère de référence, featurisées, réutilisées par la pile d’atomes de diffusion.
Sortie de EsmFold2Model.forward() : la représentation de paires du tronc de repliement, le distogramme lu à partir de celle-ci, et les tenseurs de conditionnement consommés par les têtes de structure et de confiance. Tout ici est déterministe compte tenu des entrées, à l’exception de l’état de paires initial aléatoire du tronc.
EsmFold2AtomInputs
classe transformers.models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs
< source >( ref_pos: Tensorref_charge: Tensoratom_attention_mask: Tensorref_element: Tensorref_atom_name_chars: Tensorref_space_uid: Tensoratom_to_token: Tensor )
Paramètres
- ref_pos — (batch_size, num_atoms, 3) coordonnées cartésiennes du conformère de référence.
- ref_charge — (batch_size, num_atoms) charge formelle de chaque atome.
- atom_attention_mask — (batch_size, num_atoms) atomes valides (1) par rapport au bourrage (0).
- ref_element — (batch_size, num_atoms, max_atomic_number) numéro atomique one-hot.
- ref_atom_name_chars — (batch_size, num_atoms, max_chars, char_vocab_size) nom d'atome en codage one-hot.
- ref_space_uid — (batch_size, num_atoms) identifiant de groupe par atome (l’indice de jeton de l’atome).
- atom_to_token — (batch_size, num_atoms) index du token auquel chaque atome appartient.
Entrées atomiques de la conformation de référence, caractérisées et regroupées pour que la pile d'atomes n'ait qu'un seul argument.
Reçu comme un seul argument par [EsmFold2Model.forward], contenant les tenseurs bruts du featurizer. EsmFold2Model._prepare_features effectue ensuite un encodage one-hot des champs catégoriels et met à zéro le padding, et forward les remplace via dataclasses.replace, de sorte que chaque consommateur en aval de ce point voit les formes encodées documentées ci-dessous. Renvoyé dans [EsmFold2TrunkOutput] afin que l'échantillonneur de diffusion et la tête de confiance réutilisent la featurization du tronc plutôt que de la recalculer.
Une simple dataclass plutôt qu’un ~utils.ModelOutput : chaque champ ici est obligatoire et est lu sans condition en aval, et ModelOutput n’autorise qu’un seul champ obligatoire (les autres doivent avoir par défaut None), ce qui transformerait un tenseur manquant d’une erreur de constructeur en un None qui apparaîtrait en profondeur dans l’encodeur d’atomes.