Transformers documentation

ESMFold2

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была добавлена в Hugging Face Transformers 19.08.2026.

ESMFold2

Обзор

ESMFold2 — это модель предсказания структуры белка с учётом всех атомов. Она предсказывает 3D-координаты и поостаточные показатели уверенности (pLDDT, PAE, PDE) непосредственно по аминокислотной последовательности, используя модель языка белков ESMC в качестве основы. Архитектура объединяет атомный энкодер со скользящим окном и 3D-вращательными позиционными эмбеддингами, итеративно применяемый попарный блок сворачивания, диффузионную структуру-головку и головку уверенности.

Чекпоинт модели доступен на Hugging Face Hub по адресу biohub/ESMFold2.

Пример использования

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 возвращает необработанные выходные данные (координаты атомов, логиты дистограммы и метрики уверенности) в виде объекта EsmFold2Output, если вам нужны именно они, а не строка PDB. При многократном запуске для одной и той же последовательности вы можете получить слегка отличающиеся предсказания. Если вам нужны строго воспроизводимые структуры, задайте ручной seed.

ESMFold2 генерирует config.structure_head.num_diffusion_samples структур на одно сворачивание. infer_protein_as_pdb отображает структуру с наивысшим рангом (максимальным pTM); чтобы выбрать конкретный образец, передайте sample_idx. В файле PDB значения pLDDT для каждого остатка записаны в столбце b-factor, по той же шкале от 0 до 1, что и в выводе plddt.

forward и fold

Предсказание структуры состоит из двух частей. EsmFold2Model.forward — это первая из них: она прогоняет входные данные, представленные в виде признаков, через основной блок сворачивания и возвращает уточненное парное представление вместе с дистограммой в виде объекта EsmFold2TrunkOutput. Она не генерирует 3D-координаты — ESMFold2 получает их методом итеративного шумоподавления, а цикл выборки (расписание шума, выравнивание по Кабшу и обновление по ОДУ/СДУ) находится в EsmFold2FoldingMixin вместе с вызовом блока оценки уверенности:

МетодИспользуйте для
infer_protein_as_pdb(sequence)строка PDB, полученная непосредственно из аминокислотной последовательности
infer_protein(sequence)сырые EsmFold2Output
fold(**features)предварительно преобразованные входные данные (то, что вызывает infer_protein)
forward(**features)только ствол — дистограмма и парное представление, без выборки

Вызывайте fold или infer_protein, чтобы получить фактическую структуру. Обращайтесь к forward, если вам нужен только distogram, или если вы хотите самостоятельно управлять диффузионным сэмплером: fold вызывает forward один раз, а затем передаёт его результат в EsmFold2DiffusionModule, чей собственный forward представляет собой один шаг денойзинга.

Более быстрый вывод с использованием объединённого ядра

Основная вычислительная стоимость складывающегося багажа приходится на обновление через умножение треугольных матриц. Передача use_kernels=True в from_pretrained() заменяет его на слиянный Triton-ядро, загружаемое из Hub через библиотеку kernels, при этом предсказания остаются неизменными. Это работает только для инференса и только на CUDA; на CPU или при отсутствии установленного ядра модель прозрачно переключается на чистую PyTorch-реализацию. Убедитесь, что модель находится на CUDA-устройстве в момент активации ядра (например, с помощью 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

класс 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 )

Параметры

  • hidden_size (int, необязательный, по умолчанию 384) — Ширина однослойного представления.
  • pairwise_hidden_size (int, необязательный, по умолчанию 256) — Ширина представления пар.
  • single_inputs_size (int, необязательный, по умолчанию 451) — Ширина конкатенированных признаков одиночного входа, подаваемых в ствол и диффузионное условие: atom_encoder.output_dim плюс два one-hot признака типа остатка и скаляр профиля.
  • pair_transition_intermediate_size (int, необязательный, по умолчанию 1024) — Ширина SwiGLU для переходов между потоками пар.
  • sliding_window (int, необязательный, по умолчанию 128) — Размер скользящего окна (расстояние по индексам токенов) для внимания atom-stack, заданный как общая ширина окна, а не радиус.
  • chunk_size (int, необязательный, по умолчанию 64) — Размер блока для операций с парами/потоком MSA, требующих много памяти. None отключает разбиение на блоки.
  • num_relative_residx_bins (int, необязательный, по умолчанию 32) — Количество бинов относительных индексов остатков в кодировании относительного положения.
  • num_relative_chain_bins (int, необязательный, по умолчанию 2) — Количество бинов относительных индексов цепей в кодировании относительных позиций.
  • num_loops (int, необязательный, по умолчанию 10) — Количество циклов уточнения ствола.
  • num_res_types (int, необязательный, по умолчанию 33) — Количество типов остатков.
  • max_atomic_number (int, необязательный, по умолчанию 128) — Размер one-hot-представления элемента в атомных признаках.
  • char_vocab_size (int, необязательный, по умолчанию 64) — Размер словаря символов для закодированных названий атомов.
  • max_chars (int, необязательный, по умолчанию 4) — Количество символов в имени закодированного атома.
  • max_atoms_per_token (int, необязательный, по умолчанию 23) — Максимальное количество атомов на токен.
  • atom_feature_dim (int, необязательный) — Ширина атомных признаков: xyz, заряд и маска, а также one-hot кодирование элемента и символов имени атома. Если не задано, вычисляется из max_atomic_number, char_vocab_size и max_chars.
  • folding_trunk_num_hidden_layers (int, необязательный, по умолчанию 24) — Количество блоков парного обновления в ствольной части сворачивания.
  • parcae_num_coda_layers (int, необязательный, по умолчанию 2) — Количество блоков обновления пар в parcae coda.
  • atom_encoder (EsmFold2AtomEncoderConfig, необязательный) — Конфигурация для SWA-кодера атомов в блоке встраивания входных данных.
  • structure_head (EsmFold2StructureHeadConfig, необязательный) — Конфигурация для диффузионного модуля предсказания структуры (содержит подконфигурацию diffusion_module).
  • confidence_head (EsmFold2ConfidenceHeadConfig, необязательный) — Конфигурация для confidence head.
  • msa_encoder (EsmFold2MsaEncoderConfig, необязательный) — Конфигурация для MSA-энкодера.
  • lm_encoder (EsmFold2LmEncoderConfig, необязательный) — Конфигурация для кодировщика скрытых состояний языковой модели.
  • esmc_config (EsmcConfig, необязательный) — Конфигурация для встроенного каркаса ESMC.

Это класс конфигурации для хранения настроек модели Esmfold2Model. Он используется для создания модели Esmfold2 в соответствии с указанными аргументами, определяя архитектуру модели. Создание конфигурации с параметрами по умолчанию даст конфигурацию, аналогичную конфигурации biohub/ESMFold2

Объекты конфигурации наследуются от PreTrainedConfig и могут использоваться для управления выводами модели. Подробнее читайте в документации PreTrainedConfig.

validate_architecture

< >

( )

Проверяет соотношения ширины, охватывающие подконфигурации; каждая подконфигурация проверяет свои собственные.

EsmFold2PreTrainedModel

класс transformers.EsmFold2PreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Параметры

  • config (PreTrainedConfig) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

EsmFold2Model

класс transformers.EsmFold2Model

< >

( config: EsmFold2Config )

Параметры

  • config (EsmFold2Config) — Класс конфигурации модели, содержащий все параметры модели. Инициализация с помощью файла конфигурации не загружает веса, связанные с моделью, а только конфигурацию. Чтобы загрузить веса модели, используйте метод from_pretrained().

ESMFold2 — предсказатель структуры белка на уровне всех атомов с встроенным базовым языковым моделированием белков ESMC. Это стандартная опубликованная архитектура ESMFold2, чей ствол представляет собой линейно-рекуррентный стек (внутреннее название — «parcae»).

Эта модель наследуется от PreTrainedModel. См. документацию родительского класса для общих методов, которые библиотека реализует для всех своих моделей (например, загрузка или сохранение, изменение размера входных эмбеддингов, обрезка голов и т. д.)

Эта модель также является подклассом torch.nn.Module в PyTorch. Используйте её как обычный модуль PyTorch и обращайтесь к документации PyTorch по всем вопросам, связанным с общим использованием и поведением.

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)

Параметры

  • token_index (torch.Tensor формы (batch_size, num_tokens)) — Позиционный индекс каждого токена в рамках полного комплекса; используется для кодирования относительных позиций.
  • residue_index (torch.Tensor формы (batch_size, num_tokens)) — Индекс остатка в каждой цепи; используется для кодирования относительного положения.
  • asym_id (torch.Tensor формы (batch_size, num_tokens)) — Идентификатор асимметричной единицы (цепи) для каждого токена.
  • sym_id (torch.Tensor формы (batch_size, num_tokens)) — Идентификатор симметричной копии, различающий идентичные цепи гомомера.
  • entity_id (torch.Tensor формы (batch_size, num_tokens)) — Идентификаторы сущностей, группирующие токены, относящиеся к одной молекулярной сущности.
  • mol_type (torch.Tensor формы (batch_size, num_tokens)) — Код типа молекулы для каждого токена: 0 = белок, 1 = ДНК, 2 = РНК, 3 = неполимер (лиганд).
  • res_type (torch.Tensor формы (batch_size, num_tokens)) — Индекс типа остатка (идентичность аминокислоты) для каждого токена.
  • token_bonds (torch.Tensor формы (batch_size, num_tokens, num_tokens, 1)) — Парная характеристика ковалентных связей между токенами.
  • attention_mask (torch.Tensor формы (batch_size, num_tokens)) — Маска, отмечающая валидные токены (1) и заполнители (0). Входные данные должны быть дополнены справа.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs) — Сырые тензоры атомов референсного конформера, объединённые в один объект: координаты, атомные номера, формальные заряды, закодированные имена атомов, групповые идентификаторы для каждого атома, маска отступов атомов и карта соответствия атомов токенам.
  • deletion_mean (torch.Tensor формы (batch_size, num_tokens), необязательный) — Среднее количество удалений MSA в каждом столбце. По умолчанию — нули (MSA отсутствует).
  • msa (torch.Tensor формы (batch_size, msa_depth, num_tokens), optional) — Токены типов остатков MSA (строка 0 — последовательность запроса). По умолчанию используется одно-последовательная MSA.
  • has_deletion (torch.Tensor формы (batch_size, msa_depth, num_tokens), optional) — Булевый флаг, отмечающий позиции MSA, предшествующие удалению.
  • deletion_value (torch.Tensor формы (batch_size, msa_depth, num_tokens), необязательный) — Количество удалений MSA для каждой позиции.
  • msa_attention_mask (torch.Tensor формы (batch_size, msa_depth, num_tokens), необязательный) — Маска допустимости для строк/столбцов MSA.
  • input_ids (torch.Tensor формы (batch_size, num_tokens), необязательный) — идентификаторы токенов из словаря ESMC для последовательности. Передаются в встроенный ESMC-бэкбон для получения lm_hidden_states, если они не переданы напрямую; игнорируются, если lm_hidden_states заданы.
  • lm_hidden_states (torch.Tensor формы (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size), optional) — Предварительно вычисленные скрытые состояния каркаса ESMC, по одному на каждый слой каркаса, плюс эмбеддинги. Если переданы, каркас не запускается, а input_ids не используется.
  • num_loops (int, необязательный) — Количество циклов уточнения ствола. По умолчанию config.num_loops.

Возвращает

[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] или tuple(torch.Tensor)

Объект [~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] или кортеж из torch.Tensor (если передано return_dict=False или если config.return_dict=False), содержащий различные элементы в зависимости от конфигурации ([EsmFold2Config]) и входных данных.

Запустите процесс сворачивания: преобразуйте входные данные в признаки, отобразите их в парное представление, уточните его в ходе num_loops итераций переработки и получите диаграмму расстояний. Это детерминированная часть предсказания структуры; диффузионный сэмплер, который превращает возвращаемое парное представление в 3D-координаты, находится в EsmFold2FoldingMixin — для сквозного предсказания вызовите [~EsmFold2Model.fold] или [~EsmFold2Model.infer_protein].

  • distogram_logits (torch.Tensor формы (batch_size, num_tokens, num_tokens, distogram_bins)) — Предсказанные логиты распределения расстояний по парам остатков.
  • pair_states (torch.Tensor формы (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — итоговое парное представление ствольной части, в fp32.
  • single_inputs (torch.Tensor формы (batch_size, num_tokens, single_inputs_size)) — Сконкатенированные признаки одиночных входов, созданные встраивателем входов.
  • relative_position_encoding (torch.Tensor формы (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Кодирование пар относительных позиций.
  • token_bonds_encoding (torch.Tensor формы (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Встроенная характеристика ковалентных связей между токенами.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, optional) — Векторизованные атомные входы референсного конформера, повторно используемые диффузионным атомным стеком.

fold

< >

( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )

Predict a structure end-to-end from featurized inputs: run the trunk ([EsmFold2Model.forward], which documents the feature arguments), sample coordinates from the diffusion structure head, and score them with the confidence head.

Здесь указаны только те аргументы, которые нужны сэмплеру и confidence head; остальные передаются в ствол без изменений, поэтому fold принимает те же аргументы, что и forward.

attention_mask (torch.Tensor формы (batch_size, num_tokens)): Маска, отмечающая валидные токены (1) и заполнители (0). Также передается в ствол. asym_id (torch.Tensor формы (batch_size, num_tokens)): ID асимметричной единицы (цепи) для каждого токена. Также передается в ствол. mol_type (torch.Tensor формы (batch_size, num_tokens)): Код типа молекулы для каждого токена: 0 = белок, 1 = ДНК, 2 = РНК, 3 = неполимер (лиганд). Также передается в ствол. distogram_atom_idx (torch.Tensor формы (batch_size, num_tokens)): Индекс представительного атома (Cβ, или Cα для глицина) каждого токена. Используется головой уверенности; стволу он не нужен. num_diffusion_samples (int, необязательный): Количество параллельных выборок структур; голова уверенности выполняется повторно для каждой выборки. По умолчанию config.structure_head.num_diffusion_samples. num_sampling_steps (int, необязательный): Количество шагов диффузионного сэмплирования. По умолчанию config.structure_head.inference_num_steps. trunk_kwargs: Остальные входные данные с признаками (включая num_loops, а также сырые тензоры по атомам, собранные ниже в atom_inputs), передаются в [EsmFold2Model.forward], где они описаны.

infer_protein

< >

( sequence: str**forward_kwargs )

Сформируйте признаки для sequence и сверните их. forward_kwargs передаются в [~EsmFold2Model.fold].

infer_protein_as_pdb

< >

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

Свернуть sequence и отобразить предсказание в виде строки PDB.

sample_idx определяет, какой диффузионный образец будет отрисован; по умолчанию выбирается образец с наивысшим рангом.

EsmFold2Output

класс 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 )

Параметры

  • distogram_logits (torch.Tensor формы (batch_size, num_tokens, num_tokens, distogram_bins)) — Предсказанные логиты распределения расстояний по парам остатков (не зависит от генератора случайных чисел; без диффузионного сэмплирования).
  • sample_atom_coords (torch.Tensor формы (num_diffusion_samples, num_atoms, 3)) — Предсказанные декартовы координаты всех атомов для каждого диффузионного сэмпла.
  • plddt_logits (torch.Tensor формы (num_diffusion_samples, num_atoms, num_plddt_bins)) — Логиты бинов pLDDT для каждого атома.
  • plddt (torch.Tensor формы (num_diffusion_samples, num_tokens)) — Предсказанная уверенность lDDT для каждого остатка.
  • plddt_per_atom (torch.Tensor формы (num_diffusion_samples, num_atoms)) — Предсказанная уверенность lDDT для каждого атома.
  • plddt_ca (torch.Tensor формы (num_diffusion_samples, num_tokens)) — Предсказанный lDDT для репрезентативного (Cα) атома каждого токена.
  • complex_plddt (torch.Tensor формы (num_diffusion_samples,)) — Среднее значение pLDDT по всем атомам комплекса.
  • complex_iplddt (torch.Tensor формы (num_diffusion_samples,)) — Взвешенный по интерфейсу комплексный pLDDT.
  • pae_logits (torch.Tensor формы (num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — Логиты бинов предсказанной ошибки выравнивания.
  • pae (torch.Tensor формы (num_diffusion_samples, num_tokens, num_tokens)) — Ожидаемая предсказанная ошибка выравнивания (Å) для каждой пары остатков.
  • pde_logits (torch.Tensor формы (num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — Логиты бинов ошибки предсказанного расстояния.
  • pde (torch.Tensor формы (num_diffusion_samples, num_tokens, num_tokens)) — Ожидаемая ошибка предсказания расстояния (Å) для каждой пары остатков.
  • resolved_logits (torch.Tensor формы (num_diffusion_samples, num_atoms, 2)) — Логиты для каждого атома, указывающие на разрешённое/неразрешённое состояние.
  • ptm (torch.Tensor формы (num_diffusion_samples,)) — Предсказанный TM-score для каждой выборки.
  • iptm (torch.Tensor формы (num_diffusion_samples,)) — Предсказанный TM-score интерфейса для каждой выборки.
  • pair_chains_iptm (torch.Tensor формы (num_diffusion_samples, num_chains, num_chains)) — Предсказанный TM-score интерфейса для каждой упорядоченной пары цепей.

Вывод EsmFold2Model. Все оценки уверенности находятся в диапазоне от 0 до 1; тензоры для каждого примера имеют ведущую ось num_diffusion_samples.

EsmFold2TrunkOutput

класс 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 )

Параметры

  • distogram_logits (torch.Tensor формы (batch_size, num_tokens, num_tokens, distogram_bins)) — Предсказанные логиты распределения расстояний по парам остатков.
  • pair_states (torch.Tensor формы (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Итоговое представление пар из ствольной части, в fp32.
  • single_inputs (torch.Tensor формы (batch_size, num_tokens, single_inputs_size)) — Сконкатенированные признаки одиночных входов, созданные встраивателем входов.
  • relative_position_encoding (torch.Tensor формы (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Кодирование пар относительных позиций.
  • token_bonds_encoding (torch.Tensor формы (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — Встроенная характеристика ковалентных связей между токенами.
  • atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs, optional) — Входные данные атомов референсного конформера, преобразованные в признаки и переиспользуемые диффузионным атомным стеком.

Вывод EsmFold2Model.forward(): пара-представление ствольной части сворачивания, дистограмма, считанная с него, и тензоры условий, которые потребляют заголовки структуры и уверенности. Всё здесь детерминировано при заданных входных данных, за исключением случайного начального состояния пар в ствольной части.

EsmFold2AtomInputs

класс 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 )

Параметры

  • ref_pos — декартовы координаты конформера-ссылки (batch_size, num_atoms, 3).
  • ref_charge — (batch_size, num_atoms) формальный заряд каждого атома.
  • atom_attention_mask — (batch_size, num_atoms) — маска валидных атомов (1) и заполнителей (0).
  • ref_element — (batch_size, num_atoms, max_atomic_number) one-hot код атомного номера.
  • ref_atom_name_chars — (batch_size, num_atoms, max_chars, char_vocab_size) one-hot представление имени атома.
  • ref_space_uid — (batch_size, num_atoms) идентификатор группы для каждого атома (индекс токена атома).
  • atom_to_token — (batch_size, num_atoms) индекс токена, которому принадлежит каждый атом.

Входные данные атомов референс-конформера в виде признаков, сгруппированные так, чтобы атомный стек принимал один аргумент.

Принимается в качестве одного аргумента [EsmFold2Model.forward], содержит необработанные тензоры фичерайзера. Затем EsmFold2Model._prepare_features выполняет one-hot кодирование категориальных полей и обнуляет padding, а forward подставляет их с помощью dataclasses.replace, поэтому каждый потребитель данных после этой точки видит закодированные формы, описанные ниже. Возвращается в [EsmFold2TrunkOutput], чтобы диффузионный сэмплер и head уверенности повторно использовали фичерайзацию trunk, а не выполняли её заново.

Обычный dataclass, а не [~utils.ModelOutput]: каждое поле здесь обязательно и безоговорочно читается на нижних уровнях, тогда как ModelOutput допускает не более одного обязательного поля (остальные должны иметь значение по умолчанию None), что превратило бы отсутствие тензора из ошибки конструктора в None, проявляющееся глубоко внутри атомного энкодера.

Update on GitHub