Transformers documentation
ESMFold2
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-08-19.
ESMFold2
نظرة عامة
ESMFold2 is an all-atom protein structure prediction model. It predicts 3D coordinates and per-residue confidence (pLDDT, PAE, PDE) directly from an amino-acid sequence, using the ESMC protein language model as its backbone. The architecture combines a sliding-window atom encoder with 3D rotary position embeddings, a pairwise folding trunk applied iteratively, a diffusion-based structure head, and a confidence head.
نقطة التفتيش للنموذج متاحة على 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 المخرجات الخام (إحداثيات الذرات، وقيم distogram logits، ومؤشرات الثقة) على شكل EsmFold2Output إذا كنت بحاجة إليها بدلاً من نص PDB. قد تحصل على تنبؤات مختلفة قليلاً إذا قمت بتشغيل نفس التسلسل عدة مرات. اضبط بذرة يدوية إذا كنت ترغب في الحصول على هياكل قابلة للتكرار بدقة.
يرسم 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. لا ينتج إحداثيات ثلاثية الأبعاد — إذ تحصل ESMFold2 عليها عبر إزالة الضوضاء التكرارية، وتقع حلقة العينة هذه (جدول الضوضاء، محاذاة Kabsch، وتحديث ODE/SDE) في 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؛ فبالنسبة لوحدة المعالجة المركزية أو في حال عدم تثبيت النواة، يعود النموذج بشكل شفاف إلى التنفيذ النقي باستخدام 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
< 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 )
المعاملات
- 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) — حجم نافذة الانزلاق (المسافة بين فهارس الرموز) لانتباه مكدس الذرّات، كعرض إجمالي للنافذة وليس كنصف قطر. - 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) — حجم الترميز أحادي-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، اختياري) — إعدادات رأس الثقة. - msa_encoder (
EsmFold2MsaEncoderConfig، اختياري) — إعدادات مشفّر MSA. - lm_encoder (
EsmFold2LmEncoderConfig، اختياري) — إعدادات مُشفِّر حالة النموذج اللغوي المخفية. - esmc_config (EsmcConfig، اختياري) — إعدادات هيكل ESMC المدمج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Esmfold2Model. تُستخدم لاستحداث نموذج Esmfold2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ biohub/ESMFold2
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
يتحقق من علاقات العرض التي تمتد عبر الإعدادات الفرعية؛ حيث يتحقق كل إعداد فرعي من علاقاته الخاصة.
EsmFold2PreTrainedModel
فئة transformers.EsmFold2PreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
EsmFold2Model
فئة transformers.EsmFold2Model
< source >( config: EsmFold2Config )
المعاملات
- config (EsmFold2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
ESMFold2 هو متنبئ بهيكل البروتين على مستوى جميع الذرات، ويأتي مع عمود فقري مدمج لنموذج لغة البروتين ESMC. هذه هي بنية ESMFold2 القياسية المُصدَرة، حيث يتكون جذعها من مجموعة خطية متكررة (يُشار إليها داخلياً باسم “parcae”).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
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.FloatTensor)
المعاملات
- 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)) — معرّف نسخة التمايز (Symmetry-copy ID) الذي يميّز السلاسل المتطابقة في جزيء متماثل (homomer).
- entity_id (torch.Tensor من الشكل (batch_size, num_tokens)) — معرّف الكيان الذي يجمع الرموز التي تنتمي إلى نفس الكيان الجزيئي.
- mol_type (torch.Tensor من الشكل (batch_size, num_tokens)) —
رمز نوع الجزيء لكل رمز:
0= بروتين،1= DNA،2= RNA،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)، اختياري) — رموز نوع بقايا MSA (الصف 0 هو تسلسل الاستعلام). الافتراضي هو MSA لتسلسل واحد.
- has_deletion (torch.Tensor من الشكل (batch_size, msa_depth, num_tokens)، اختياري) — علامة منطقية تُشير إلى مواضع 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)، اختياري) — معرّفات الرموز (token ids) من مفردات ESMC للتسلسل. تُمرَّر إلى هيكل ESMC المدمج لإنتاج lm_hidden_states عندما لا يتم تمريرها مباشرةً؛ وتُتجاهل عند تقديم lm_hidden_states.
- lm_hidden_states (torch.Tensor من الشكل (batch_size, num_tokens, num_esmc_layers + 1, esmc_hidden_size)، اختياري) — حالات مخفية محسوبة مسبقًا لعمود ESMC، حالة واحدة لكل طبقة من طبقات العمود بالإضافة إلى التضمينات. عند تقديمها، لا يتم تشغيل العمود ولا يُستخدم input_ids.
- num_loops (int، اختياري) — عدد حلقات تحسين الجذع. القيمة الافتراضية هي config.num_loops.
يعيد
[~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput] أو tuple(torch.FloatTensor)
~models.esmfold2.modeling_esmfold2.EsmFold2TrunkOutput أو مجموعة مرتبة من torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات ([EsmFold2Config]) والمدخلات.
شغّل جذع الطي: قسّم المدخلات إلى ميزات، ثم غمّضها في تمثيل زوجي، وحسّنه عبر num_loops من تكرارات إعادة التدوير، واقرأ مخطط المسافات. هذا هو الجزء الحتمي من التنبؤ بالبنية؛ أما عيّنة الانتشار التي تحوّل التمثيل الزوجي المُعاد إلى إحداثيات ثلاثية الأبعاد فتوجد في EsmFold2FoldingMixin — استدعِ [~EsmFold2Model.fold] أو [~EsmFold2Model.infer_protein] للحصول على تنبؤ شامل من البداية إلى النهاية.
- distogram_logits (torch.FloatTensor من الشكل (batch_size, num_tokens, num_tokens, distogram_bins)) — قيم اللوجيت المتوقعة لتوزيع المسافات بين أزواج البقايا.
- pair_states (torch.FloatTensor من الشكل (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — تمثيل الأزواج النهائي للجذع، بدقة fp32.
- single_inputs (torch.FloatTensor من الشكل (batch_size, num_tokens, single_inputs_size)) — ميزات المدخلات المفردة المدمجة التي يبنيها مُضمِّن المدخلات.
- relative_position_encoding (torch.FloatTensor من الشكل (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — ترميز أزواج الموضع النسبي.
- token_bonds_encoding (torch.FloatTensor من الشكل (batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — ميزة الترابط التساهمي بين الرموز المضمّنة.
- atom_inputs (~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs، اختياري) — مدخلات الذرات المُصنَّفة للمُشكِّل المرجعي، والتي يعيد استخدامها مكدس الذرات الانتشاري.
طيّ
< source >( attention_mask: Tensorasym_id: Tensormol_type: Tensordistogram_atom_idx: Tensornum_diffusion_samples: int | None = Nonenum_sampling_steps: int | None = None**trunk_kwargs )
تنبؤ بالبنية من البداية إلى النهاية من مدخلات مُصنَّفة: نفّذ الجذع (EsmFold2Model.forward، الذي يوثّق حُجج الميزات)، ثم عيّن الإحداثيات من رأس البنية الانتشاري، وقَيِّمها برأس الثقة.
يُذكر هنا فقط الحُجج التي يحتاجها المُعيّن ورأس الثقة؛ أما البقية فتُمرَّر إلى الجذع دون أي تعديل، لذا يتقبّل fold نفس الحُجج التي يتقبّلها forward.
attention_mask (torch.Tensor of shape (batch_size, num_tokens)):
قناع يميّز الرموز الصالحة (1) مقابل الرموز المعبّئة (0). كما يُمرَّر إلى الجذع.
asym_id (torch.Tensor of shape (batch_size, num_tokens)):
معرّف الوحدة غير المتماثلة (السلسلة) لكل رمز. كما يُمرَّر إلى الجذع.
mol_type (torch.Tensor of shape (batch_size, num_tokens)):
رمز نوع الجزيء لكل رمز: 0 = بروتين، 1 = DNA، 2 = RNA، 3 = غير بوليمر (ربيط). كما يُمرَّر إلى الجذع.
distogram_atom_idx (torch.Tensor of shape (batch_size, num_tokens)):
مؤشر الذرّة الممثلة (Cβ، أو Cα في حالة الجلايسين) لكل رمز. يُستخدم من قِبل رأس الثقة؛ ولا يحتاجه الجذع.
num_diffusion_samples (int, optional):
عدد عينات البنية المتوازية التي سيتم سحبها؛ يعيد رأس الثقة التشغيل مرة واحدة لكل عينة.
الافتراضي هو config.structure_head.num_diffusion_samples.
num_sampling_steps (int, optional):
عدد خطوات أخذ العينات الانتشارية. الافتراضي هو config.structure_head.inference_num_steps.
trunk_kwargs:
بقية المدخلات المُصوَّرة (بما في ذلك num_loops، بالإضافة إلى متجهات الذرّات الخام المجمّعة أدناه في atom_inputs)، والتي تُمرَّر إلى [EsmFold2Model.forward]، حيث يتم توثيقها.
قم بتحويل sequence إلى ميزات ثم طيّها. تُمرَّر forward_kwargs إلى [~EsmFold2Model.fold].
اطوِ sequence واعرض التنبؤ كنص PDB.
يحدد sample_idx أي عينة من التوليد الانتشاري يجب عرضها؛ افتراضيًا، تكون العينة الأعلى ترتيبًا.
EsmFold2Output
فئة 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 )
المعاملات
- distogram_logits (
torch.FloatTensorمن الشكل(batch_size, num_tokens, num_tokens, distogram_bins)) — قيم اللوجيت المتوقعة لتوزيع المسافات بين أزواج البقايا (غير معتمدة على مولّد الأرقام العشوائية؛ لا تتضمن أخذ عينات بالانتشار). - sample_atom_coords (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_atoms, 3)) — إحداثيات ديكارتية متوقعة لجميع الذرات لكل عينة انتشار. - plddt_logits (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_atoms, num_plddt_bins)) — قيم اللوجيت (logits) لفئات pLDDT لكل ذرة. - plddt (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_tokens)) — ثقة lDDT المتوقعة لكل بقايا. - plddt_per_atom (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_atoms)) — ثقة lDDT المتوقعة لكل ذرة. - plddt_ca (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_tokens)) — قيمة lDDT المتوقعة عند الذرة الممثلة (Cα) لكل رمز. - complex_plddt (
torch.FloatTensorمن الشكل(num_diffusion_samples,)) — متوسط pLDDT لجميع ذرات المركّب. - complex_iplddt (
torch.FloatTensorمن الشكل(num_diffusion_samples,)) — pLDDT المركّب المرجّح حسب الأوزان الواجهة. - pae_logits (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_tokens, num_tokens, num_pae_bins)) — قيم اللوجيت (logits) لثوابت خطأ المحاذاة المتوقعة. - pae (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_tokens, num_tokens)) — الخطأ المحاذاة المتوقع (Å) لكل زوج من بقايا الأحماض الأمينية. - pde_logits (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_tokens, num_tokens, num_pde_bins)) — قيم اللوجيت (logits) لثوابت أخطاء المسافة المتوقعة. - pde (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_tokens, num_tokens)) — خطأ المسافة المتوقع (Å) لكل زوج من بقايا الأحماض الأمينية. - resolved_logits (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_atoms, 2)) — قيم الاحتمالات (logits) المحلولة وغير المحلولة لكل ذرة. - ptm (
torch.FloatTensorمن الشكل(num_diffusion_samples,)) — درجة TM المتوقعة لكل عينة. - iptm (
torch.FloatTensorمن الشكل(num_diffusion_samples,)) — درجة TM للواجهة المتوقعة لكل عينة. - pair_chains_iptm (
torch.FloatTensorمن الشكل(num_diffusion_samples, num_chains, num_chains)) — درجة TM-score المتوقعة للواجهة لكل زوج من السلاسل المرتبة.
مخرجات EsmFold2Model. جميع درجات الثقة على مقياس من 0 إلى 1؛ وللمتجهات الخاصة بكل عينة محور رئيسي باسم num_diffusion_samples.
EsmFold2TrunkOutput
فئة 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 )
المعاملات
- distogram_logits (
torch.FloatTensorمن الشكل(batch_size, num_tokens, num_tokens, distogram_bins)) — قيم اللوجيت المتوقعة لتوزيع المسافات بين أزواج البقايا. - pair_states (
torch.FloatTensorمن الشكل(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — تمثيل الأزواج النهائي للجذع، بدقة fp32. - single_inputs (
torch.FloatTensorمن الشكل(batch_size, num_tokens, single_inputs_size)) — مواصفات الإدخال المفرد المدمجة التي يبنيها مُضمِّن المدخلات. - relative_position_encoding (
torch.FloatTensorمن الشكل(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — ترميز أزواج الموضع النسبي. - token_bonds_encoding (
torch.FloatTensorمن الشكل(batch_size, num_tokens, num_tokens, pairwise_hidden_size)) — ميزة الترابط التساهمي بين الرموز المضمّنة. - atom_inputs (
~models.esmfold2.modeling_esmfold2.EsmFold2AtomInputs، اختياري) — مدخلات الذرات المُصنَّفة للمُشكِّل المرجعي، وتُعاد استخدامها بواسطة مكدس ذرات الانتشار.
مخرجات EsmFold2Model.forward(): تمثيل الأزواج الخاص بجذع الطي، وقراءة distogram منه، وموترات التكييف التي تستهلكها رؤوس البنية والثقة. كل ما هنا حتمي بالنظر إلى المدخلات باستثناء الحالة الأولية العشوائية للأزواج في الجذع.
EsmFold2AtomInputs
class 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 )
المعاملات
- 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]، حيث تحتفظ بالتensors الخام للمُخصِّص. ثم يقوم EsmFold2Model._prepare_features بتشفير الحقول التصنيفية بطريقة one-hot وتصفير الحشو، بينما يستبدل forward تلك الحقول باستخدام dataclasses.replace، بحيث يرى كل مستهلك تالٍ لتلك النقطة الأشكال المشفّرة الموثقة أدناه. تُعاد في [EsmFold2TrunkOutput] حتى يعيد مُعيّن الانتشار (diffusion sampler) ورأس الثقة (confidence head) استخدام تخصيص الجذع بدلاً من إعادة إنجازه.
فئة بيانات بسيطة بدلاً من [~utils.ModelOutput]: كل حقل هنا إلزامي ويُقرأ بشكل غير مشروط في المراحل اللاحقة، بينما يسمح ModelOutput بحقل إلزامي واحد كحد أقصى (يجب أن تكون القيم الافتراضية لبقية الحقول None)، مما سيحوّل غياب المصفوفة من خطأ في المُنشئ إلى None يظهر في أعماق مُشفِّر الذرّة.