Transformers documentation
ESMFold2
Este modelo foi contribuído para o Hugging Face Transformers em 19/08/2026.
ESMFold2
Visão geral
ESMFold2 é um modelo de previsão de estrutura proteica em nível de todos os átomos. Ele prevê coordenadas 3D e a confiança por resíduo (pLDDT, PAE, PDE) diretamente a partir de uma sequência de aminoácidos, utilizando o modelo de linguagem proteica ESMC como sua espinha dorsal. A arquitetura combina um codificador de átomos com janela deslizante e embeddings de posição rotacional 3D, um tronco de dobramento par aplicado iterativamente, uma cabeça de estrutura baseada em difusão e uma cabeça de confiança.
O checkpoint do modelo está disponível no Hugging Face Hub em biohub/ESMFold2.
Exemplo de uso
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 retorna as saídas brutas (coordenadas dos átomos, logits do distograma e métricas de confiança) como um EsmFold2Output, caso você precise delas em vez de uma string PDB. Você pode obter previsões ligeiramente diferentes se executar a mesma sequência várias vezes. Defina uma semente manual se quiser estruturas exatamente reproduzíveis.
O ESMFold2 gera config.structure_head.num_diffusion_samples estruturas por dobra. A função infer_protein_as_pdb renderiza a melhor classificada (maior pTM); passe sample_idx para selecionar uma amostra específica. O arquivo PDB contém o pLDDT por resíduo na coluna b-factor, na mesma escala de 0 a 1 da saída plddt.
forward vs fold
A predição de estrutura tem duas partes. EsmFold2Model.forward é a primeira: ela executa o tronco de dobramento sobre as entradas com características extraídas e retorna a representação de pares refinada, além do distograma, como um EsmFold2TrunkOutput. Ela não produz coordenadas 3D — o ESMFold2 obtém essas coordenadas por meio de um desruidamento iterativo, e esse loop de amostragem (o cronograma de ruído, o alinhamento de Kabsch e a atualização ODE/SDE) está em EsmFold2FoldingMixin, junto com a chamada da cabeça de confiança:
| Método | Use-o para |
|---|---|
infer_protein_as_pdb(sequence) | uma string PDB, diretamente de uma sequência de aminoácidos |
infer_protein(sequence) | o EsmFold2Output bruto |
fold(**features) | entradas pré-caracterizadas (o que infer_protein chama) |
forward(**features) | somente o tronco — um distograma e uma representação de pares, sem amostragem |
Chame fold ou infer_protein para obter uma estrutura real. Recorra a forward quando você precisar apenas do distograma, ou quando quiser controlar o sampler de difusão por conta própria: fold chama forward uma vez e, em seguida, passa sua saída para EsmFold2DiffusionModule, cujo próprio forward é o único passo de remoção de ruído.
Inferência mais rápida com um kernel fundido
O custo dominante do trunk de dobradiça é a atualização de multiplicação de triângulos. Passar use_kernels=True para from_pretrained() substitui essa operação por um kernel Triton fundido, carregado do Hub por meio da biblioteca kernels, mantendo a previsão inalterada. Essa funcionalidade é exclusiva de inferência e de CUDA; em CPU ou sem o kernel instalado, o modelo recorre de forma transparente à implementação puramente em PyTorch.
Certifique-se de que o modelo esteja em um dispositivo CUDA no momento da kernelização (por exemplo, com 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 )
Parâmetros
- hidden_size (
int, opcional, padrão 384) — Largura da representação única. - pairwise_hidden_size (
int, opcional, padrão 256) — Largura da representação de pares. - single_inputs_size (
int, opcional, padrão 451) — Largura dos recursos de entrada única concatenados enviados ao tronco e à condição de difusão:atom_encoder.output_dimmais dois one-hots de tipo de resíduo e o escalar de perfil. - pair_transition_intermediate_size (
int, opcional, padrão 1024) — Largura SwiGLU das transições do par de streams. - sliding_window (
int, opcional, padrão 128) — Tamanho da janela deslizante (distância de índice de token) para a atenção de pilha de átomos, como a largura total da janela em vez do raio. - chunk_size (
int, opcional, padrão 64) — Tamanho do bloco para as operações de pares/fluxo MSA que exigem muita memória.Nonedesativa o processamento em blocos. - num_relative_residx_bins (
int, opcional, padrão 32) — Número de bins de índice de resíduo relativo na codificação de posição relativa. - num_relative_chain_bins (
int, opcional, padrão 2) — Número de bins de índice de cadeia relativo na codificação de posição relativa. - num_loops (
int, opcional, padrão 10) — Número de loops de refinamento do tronco. - num_res_types (
int, opcional, padrão 33) — Número de tipos de resíduos. - max_atomic_number (
int, opcional, padrão 128) — Tamanho do one-hot de elemento nos recursos do átomo. - char_vocab_size (
int, opcional, padrão 64) — Tamanho do vocabulário de caracteres para os nomes de átomos codificados. - max_chars (
int, opcional, padrão 4) — Número de caracteres por nome de átomo codificado. - max_atoms_per_token (
int, opcional, padrão 23) — Número máximo de átomos por token. - atom_feature_dim (
int, opcional) — Largura dos recursos atômicos: xyz, carga e máscara, além dos one-hots de elemento e caracteres do nome do átomo. Derivado demax_atomic_number,char_vocab_sizeemax_charsse não definido. - folding_trunk_num_hidden_layers (
int, opcional, padrão 24) — Número de blocos de atualização de pares no tronco de dobragem. - parcae_num_coda_layers (
int, opcional, padrão 2) — Número de blocos de atualização de pares na coda do parcae. - atom_encoder (
EsmFold2AtomEncoderConfig, opcional) — Configuração para o codificador de átomos SWA do incorporador de entradas. - structure_head (
EsmFold2StructureHeadConfig, opcional) — Configuração para o cabeçalho de previsão de estrutura por difusão (contém a subconfiguraçãodiffusion_module). - confidence_head (
EsmFold2ConfidenceHeadConfig, opcional) — Configuração para a cabeça de confiança. - msa_encoder (
EsmFold2MsaEncoderConfig, opcional) — Configuração para o codificador de MSA. - lm_encoder (
EsmFold2LmEncoderConfig, opcional) — Configuração para o codificador de estados ocultos do modelo de linguagem. - esmc_config (EsmcConfig, opcional) — Configuração para o backbone ESMC integrado.
Esta é a classe de configuração para armazenar a configuração de um Esmfold2Model. Ela é usada para instanciar um modelo Esmfold2 de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do biohub/ESMFold2
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
Verifica as relações de largura que abrangem subconfigurações; cada subconfiguração verifica a sua própria.
EsmFold2PreTrainedModel
classe transformers.EsmFold2PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Parâmetros
- config (PreTrainedConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
EsmFold2Model
classe transformers.EsmFold2Model
< source >( config: EsmFold2Config )
Parâmetros
- config (EsmFold2Config) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
ESMFold2, preditor de estrutura proteica all-atom com um backbone de modelo de linguagem proteica ESMC integrado. Esta é a arquitetura padrão do ESMFold2 liberado, cujo tronco é uma pilha de recorrentes lineares (internamente referida como “parcae”).
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
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)
Parâmetros
- token_index (torch.Tensor de forma (batch_size, num_tokens)) — Índice posicional por token dentro do complexo completo; alimenta a codificação de posição relativa.
- residue_index (torch.Tensor de forma (batch_size, num_tokens)) — Índice do resíduo dentro de cada cadeia; alimenta a codificação de posição relativa.
- asym_id (torch.Tensor de forma (batch_size, num_tokens)) — ID da unidade assimétrica (cadeia) para cada token.
- sym_id (torch.Tensor de forma (batch_size, num_tokens)) — ID de cópia de simetria que distingue cadeias idênticas de um homômero.
- entity_id (torch.Tensor de forma (batch_size, num_tokens)) — ID da entidade que agrupa tokens que pertencem à mesma entidade molecular.
- mol_type (torch.Tensor de forma (batch_size, num_tokens)) —
Código de tipo de molécula para cada token:
0= proteína,1= DNA,2= RNA,3= não-polímero (ligante). - res_type (torch.Tensor de forma (batch_size, num_tokens)) — Índice do tipo de resíduo (identidade do aminoácido) para cada token.
- token_bonds (torch.Tensor de forma (batch_size, num_tokens, num_tokens, 1)) — Recurso de ligação covalente entre pares de tokens.
- attention_mask (torch.Tensor de forma (batch_size, num_tokens)) —
Máscara que marca os tokens válidos (
1) em relação ao preenchimento (0). As entradas devem ser preenchidas à direita. - atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — Os tensores brutos de átomos do conformer de referência, agrupados: posições, números atômicos, cargas formais, nomes de átomos codificados, IDs de grupo por átomo, a máscara de padding de átomos e o mapa de átomo->token.
- deletion_mean (torch.Tensor de forma (batch_size, num_tokens), opcional) — Média do número de deleções de MSA por coluna. O valor padrão é zero (sem MSA).
- msa (torch.Tensor de forma (batch_size, msa_depth, num_tokens), opcional) — Tokens de tipo de resíduo de MSA (a linha 0 é a sequência de consulta). O padrão é uma MSA de sequência única.
- has_deletion (torch.Tensor de forma (batch_size, msa_depth, num_tokens), opcional) — Sinalizador booleano que marca posições da MSA precedidas por uma deleção.
- deletion_value (torch.Tensor de forma (batch_size, msa_depth, num_tokens), opcional) — Contagens de deleção de MSA por posição.
- msa_attention_mask (torch.Tensor de forma (batch_size, msa_depth, num_tokens), opcional) — Máscara de validade para as linhas/colunas da MSA.
- input_ids (torch.Tensor de forma (batch_size, num_tokens), opcional) — IDs de tokens do vocabulário ESMC para a sequência. Enviados para o backbone ESMC incluído para produzir lm_hidden_states quando esses não são passados diretamente; ignorados quando lm_hidden_states é fornecido.
- lm_hidden_states (torch.Tensor de forma (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size), opcional) — Estados ocultos pré-computados do backbone ESMC, um por camada do backbone, além dos embeddings. Quando fornecidos, o backbone não é executado e input_ids não é utilizado.
- num_loops (int, opcional) — Número de loops de refinamento do tronco. O valor padrão é config.num_loops.
Retorna
[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] ou tuple(torch.Tensor)
Um [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] ou uma tupla de torch.Tensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários elementos dependendo da configuração ([EsmFold2Config]) e das entradas.
Execute o tronco de dobramento: featurize as entradas, incorpore-as em uma representação de par, refine-a ao longo de num_loops iterações de reciclagem e leia o distograma. Esta é a metade determinística da previsão de estrutura; o amostrador de difusão que converte a representação de par retornada em coordenadas 3D está em EsmFold2FoldingMixin — chame [~EsmFold2Model.fold] ou [~EsmFold2Model.infer_protein] para uma previsão de ponta a ponta.
- distogram_logits (torch.Tensor de forma (batch_size, num_tokens, num_tokens, distogram_bins)) — Logits da distribuição de distância prevista para pares de resíduos.
- pair_states (torch.Tensor de forma (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — A representação final de pares do tronco, em fp32.
- single_inputs (torch.Tensor de forma (batch_size, num_tokens, single_inputs_size)) — Recursos de entrada única concatenados construídos pelo incorporador de entradas.
- relative_position_encoding (torch.Tensor de forma (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Codificação de pares de posição relativa.
- token_bonds_encoding (torch.Tensor de forma (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Recurso de ligação covalente entre tokens incorporado.
- atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, opcional) — As entradas de átomos do conformer de referência, com características extraídas, reutilizadas pela pilha de difusão de átomos.
dobrar
< source >( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )
Preveja uma estrutura de ponta a ponta a partir de entradas com características: execute o tronco ([EsmFold2Model.forward], que documenta os argumentos de características), amostrando coordenadas a partir da cabeça de estrutura de difusão e pontue-as com a cabeça de confiança.
Apenas os argumentos necessários para o sampler e a confidence head são nomeados aqui; os demais são
encaminhados ao trunk sem alterações, de modo que fold recebe os mesmos argumentos de forward.
attention_mask (torch.Tensor de forma (batch_size, num_tokens)):
Máscara que indica tokens válidos (1) em relação ao preenchimento (0). Também é encaminhada para o tronco.
asym_id (torch.Tensor de forma (batch_size, num_tokens)):
ID da unidade assimétrica (cadeia) para cada token. Também é encaminhado para o tronco.
mol_type (torch.Tensor de forma (batch_size, num_tokens)):
Código do tipo de molécula para cada token: 0 = proteína, 1 = DNA, 2 = RNA, 3 = não-polímero (ligante). Também é encaminhado para o tronco.
distogram_atom_idx (torch.Tensor de forma (batch_size, num_tokens)):
Índice do átomo representativo (Cβ, ou Cα para glicina) de cada token. Usado pelo
cabeçalho de confiança; o tronco não precisa dele.
num_diffusion_samples (int, opcional):
Número de amostras paralelas de estrutura a serem extraídas; o cabeçalho de confiança é reexecutado uma vez por amostra.
Padrão: config.structure_head.num_diffusion_samples.
num_sampling_steps (int, opcional):
Número de etapas de amostragem de difusão. Padrão: config.structure_head.inference_num_steps.
trunk_kwargs:
As entradas restantes com características extraídas (incluindo num_loops, além dos tensores brutos por átomo agrupados
abaixo em atom_inputs), encaminhadas para [EsmFold2Model.forward], que as documenta.
Extraia os recursos de sequence e execute o fold. forward_kwargs são passados para [~EsmFold2Model.fold].
Dobre a sequence e renderize a previsão como uma string PDB.
sample_idx seleciona qual amostra de difusão será renderizada; por padrão, a de melhor classificação.
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 )
Parâmetros
- distogram_logits (
torch.Tensorde forma(batch_size, num_tokens, num_tokens, distogram_bins)) — Logits da distribuição de distância prevista para pares de resíduos (independente de RNG; sem amostragem de difusão). - sample_atom_coords (
torch.Tensorde forma(num_diffusion_samples, num_atoms, 3)) — Coordenadas cartesianas de todos os átomos previstas para cada amostra de difusão. - plddt_logits (
torch.Tensorde forma(num_diffusion_samples, num_atoms, num_plddt_bins)) — Logits dos bins de pLDDT por átomo. - plddt (
torch.Tensorde forma(num_diffusion_samples, num_tokens)) — Confiança lDDT prevista por resíduo. - plddt_per_atom (
torch.Tensorde forma(num_diffusion_samples, num_atoms)) — Confiança lDDT prevista por átomo. - plddt_ca (
torch.Tensorde forma(num_diffusion_samples, num_tokens)) — lDDT previsto no átomo representativo (Cα) de cada token. - complex_plddt (
torch.Tensorde forma(num_diffusion_samples,)) — pLDDT médio sobre todos os átomos do complexo. - complex_iplddt (
torch.Tensorde forma(num_diffusion_samples,)) — pLDDT complexo ponderado por interface. - pae_logits (
torch.Tensorde forma(num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — Logits dos bins de erro alinhado previsto. - pae (
torch.Tensorde forma(num_diffusion_samples, num_tokens, num_tokens)) — Erro alinhado previsto esperado (Å) para cada par de resíduos. - pde_logits (
torch.Tensorde forma(num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — Logits dos bins de erro de distância prevista. - pde (
torch.Tensorde forma(num_diffusion_samples, num_tokens, num_tokens)) — Erro de distância previsto esperado (Å) para cada par de resíduos. - resolved_logits (
torch.Tensorde forma(num_diffusion_samples, num_atoms, 2)) — Logits resolvidos/não resolvidos por átomo. - ptm (
torch.Tensorde forma(num_diffusion_samples,)) — TM-score previsto para cada amostra. - iptm (
torch.Tensorde forma(num_diffusion_samples,)) — Score TM de interface previsto para cada amostra. - pair_chains_iptm (
torch.Tensorde forma(num_diffusion_samples, num_chains, num_chains)) — TM-score de interface previsto para cada par ordenado de cadeias.
Saída de EsmFold2Model. Todas as pontuações de confiança estão em uma escala de 0 a 1; os tensores por amostra possuem um eixo inicial 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 )
Parâmetros
- distogram_logits (
torch.Tensorde forma(batch_size, num_tokens, num_tokens, distogram_bins)) — Logits da distribuição de distância prevista para pares de resíduos. - pair_states (
torch.Tensorde forma(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — A representação final de pares do tronco, em fp32. - single_inputs (
torch.Tensorde forma(batch_size, num_tokens, single_inputs_size)) — Recursos de entrada única concatenados, construídos pelo incorporador de entradas. - relative_position_encoding (
torch.Tensorde forma(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Codificação de pares de posição relativa. - token_bonds_encoding (
torch.Tensorde forma(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Recurso de ligação covalente entre tokens incorporado. - atom_inputs (
~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, opcional) — Os inputs de átomos do conformer de referência, com features, reutilizados pela pilha de difusão de átomos.
Saída de EsmFold2Model.forward(): a representação de pares do tronco de dobragem, o distograma lido a partir dela e os tensores de condicionamento consumidos pelas cabeças de estrutura e confiança. Tudo aqui é determinístico dado os inputs, exceto pelo estado inicial de par aleatório do tronco.
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 )
Parâmetros
- ref_pos — (batch_size, num_atoms, 3) coordenadas cartesianas do conformer de referência.
- ref_charge — (batch_size, num_atoms) carga formal de cada átomo.
- atom_attention_mask — (batch_size, num_atoms) átomos válidos (1) versus preenchimento (0).
- ref_element — (batch_size, num_atoms, max_atomic_number) número atômico one-hot.
- ref_atom_name_chars — (batch_size, num_atoms, max_chars, char_vocab_size) nome do átomo em one-hot.
- ref_space_uid — (batch_size, num_atoms) ID do grupo por átomo (o índice do token do átomo).
- atom_to_token — (batch_size, num_atoms) índice do token ao qual cada átomo pertence.
Entradas de átomos do conformer de referência com características extraídas, agrupadas para que a pilha de átomos aceite um único argumento.
Recebido como um único argumento por [EsmFold2Model.forward], contendo os tensores brutos do featurizer. O EsmFold2Model._prepare_features então aplica codificação one-hot aos campos categóricos e zera o
padding, e o forward substitui esses valores usando dataclasses.replace, de modo que todos os consumidores a jusso
desse ponto vejam as formas codificadas documentadas abaixo. Retornado em [EsmFold2TrunkOutput] para que o
amostrador de difusão e a cabeça de confiança reutilizem a featurização do tronco, em vez de refazê-la.
Uma dataclass simples em vez de um ~utils.ModelOutput: todos os campos aqui são obrigatórios e são lidos incondicionalmente a jusante, e o ModelOutput permite no máximo um campo obrigatório (os demais devem ter valor padrão None), o que transformaria a ausência de um tensor de um erro no construtor em um None que surgiria profundamente no codificador de átomos.