Transformers documentation

ESMFold2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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étodoUse-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

< >

( 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_dim mais 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. None desativa 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 de max_atomic_number, char_vocab_size e max_chars se 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ção diffusion_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.

validate_architecture

< >

( )

Verifica as relações de largura que abrangem subconfigurações; cada subconfiguração verifica a sua própria.

EsmFold2PreTrainedModel

classe transformers.EsmFold2PreTrainedModel

< >

( 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

< >

( 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

< >

( 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

< >

( 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.

infer_protein

< >

( sequence: str**forward_kwargs )

Extraia os recursos de sequence e execute o fold. forward_kwargs são passados para [~EsmFold2Model.fold].

infer_protein_as_pdb

< >

( sequence: strsample_idx: int | None = None**forward_kwargs )

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

< >

( 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.Tensor de 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.Tensor de forma (num_diffusion_samples, num_atoms, 3)) — Coordenadas cartesianas de todos os átomos previstas para cada amostra de difusão.
  • plddt_logits (torch.Tensor de forma (num_diffusion_samples, num_atoms, num_plddt_bins)) — Logits dos bins de pLDDT por átomo.
  • plddt (torch.Tensor de forma (num_diffusion_samples, num_tokens)) — Confiança lDDT prevista por resíduo.
  • plddt_per_atom (torch.Tensor de forma (num_diffusion_samples, num_atoms)) — Confiança lDDT prevista por átomo.
  • plddt_ca (torch.Tensor de forma (num_diffusion_samples, num_tokens)) — lDDT previsto no átomo representativo (Cα) de cada token.
  • complex_plddt (torch.Tensor de forma (num_diffusion_samples,)) — pLDDT médio sobre todos os átomos do complexo.
  • complex_iplddt (torch.Tensor de forma (num_diffusion_samples,)) — pLDDT complexo ponderado por interface.
  • pae_logits (torch.Tensor de forma (num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — Logits dos bins de erro alinhado previsto.
  • pae (torch.Tensor de forma (num_diffusion_samples, num_tokens, num_tokens)) — Erro alinhado previsto esperado (Å) para cada par de resíduos.
  • pde_logits (torch.Tensor de forma (num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — Logits dos bins de erro de distância prevista.
  • pde (torch.Tensor de forma (num_diffusion_samples, num_tokens, num_tokens)) — Erro de distância previsto esperado (Å) para cada par de resíduos.
  • resolved_logits (torch.Tensor de forma (num_diffusion_samples, num_atoms, 2)) — Logits resolvidos/não resolvidos por átomo.
  • ptm (torch.Tensor de forma (num_diffusion_samples,)) — TM-score previsto para cada amostra.
  • iptm (torch.Tensor de forma (num_diffusion_samples,)) — Score TM de interface previsto para cada amostra.
  • pair_chains_iptm (torch.Tensor de 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

< >

( 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.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) — 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

< >

( 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.

Update on GitHub