+
    œ°³j£   ã                   óÔ   € ^ RI Ht ^ RIt^ RIt^ RIHt ^RIHt ^RIH	t	H
t
 ^RIHt ]R R l4       t]R	 R
 l4       tR tR R ltR R ltRR R lltR R ltR R ltR R ltR# )é    )ÚoverloadN)Únn)Úresidue_constants)ÚRigidÚRotation)Úbatched_gatherc                ó|   € V ^8„  d   QhR\         P                  R\         P                  RRR\         P                  /# )é   ÚaatypeÚall_atom_positionsÚall_atom_masksNÚreturn)ÚtorchÚTensor)Úformats   "Úm/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/esm/openfold_utils/feats.pyÚ__annotate__r      s,   € × uÑ uœ5Ÿ<™<Ð u¼U¿\¹\Ð uÐ[_Ð uÔdi×dpÑdpÑ uó    c                 ó   € R # ©N© ©r   r   r   s   &&&r   Úpseudo_beta_fnr      s   € Ùrur   c          
      óÎ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        \         P                  \         P                  3,          /# )r
   r   r   r   r   )r   r   Útuple)r   s   "r   r   r       sJ   € ÷ ,ñ ,Ü�L‰Lð,Ü.3¯l©lð,ÜLQÏLÉLð,ä
Œ5�<‰<œŸ™Ð%Õ&ñ,r   c                 ó   € R # r   r   r   s   &&&r   r   r      s   € ñ ),r   c           	      ó¸  € V \         P                  R ,          8H  p\         P                  R,          p\         P                  R,          p\        P                  ! VR,          P
                  ! . R\        VP                  4      ,          O^N5!  VRVR3,          VRVR3,          4      pVe.   \        P                  ! VVRV3,          VRV3,          4      pWg3# V# )ÚGÚCAÚCB.ºNNN©.N)éÿÿÿÿ)ÚrcÚrestype_orderÚ
atom_orderr   ÚwhereÚexpandÚlenÚshape)r   r   r   Úis_glyÚca_idxÚcb_idxÚpseudo_betaÚpseudo_beta_masks   &&&     r   r   r   %   sÉ   € Ø”r×'Ñ'¨Õ,Ñ,€FÜ�]‰]˜4Õ €FÜ�]‰]˜4Õ €FÜ—+’+ØˆyÕ× Ò ÐA 5¬3¨v¯|©|Ó+<Õ#<ÐA¸qÓAØ˜3 ¨˜>Õ*Ø˜3 ¨˜>Õ*ó€Kð Ò!Ü Ÿ;š;ØØ˜3 ˜;Õ'Ø˜3 ˜;Õ'ó
Ðð
 Ð,Ð,àÐr   c                óš   € V ^8„  d   QhR\         P                  R\        \        \         P                  3,          R\         P                  /# )r
   Úatom14Úbatchr   )r   r   ÚdictÚstr)r   s   "r   r   r   :   s7   € ÷ 
ñ 
œUŸ\™\ð 
´$´s¼E¿L¹LÐ7HÕ2Ið 
ÌeÏlÉlñ 
r   c           
      óŠ   € \        V VR ,          R\        V P                  RR 4      R7      pW!R,          R,          ,          pV# )Úresidx_atom37_to_atom14N)ÚdimÚno_batch_dimsÚatom37_atom_existséþÿÿÿr"   )r   r)   r*   )r1   r2   Úatom37_datas   && r   Úatom14_to_atom37r<   :   sI   € Ü ØØÐ'Õ(ØÜ˜&Ÿ,™, s¨Ð+Ó,ô	€Kð Ð&:Õ ;¸IÕ FÕF€KàÐr   c                óz   € V ^8„  d   QhR\         \        \        P                  3,          R\        P                  /# )r
   Útemplate_featsr   ©r3   r4   r   r   )r   s   "r   r   r   G   s,   € ÷ ñ ¬d´3¼¿¹Ð3DÕ.Eð Ì%Ï,É,ñ r   c           
      óB  € V R ,          pV R,          pV R,          pV R,          p\         P                  ! \        P                  P	                  V^4      VP
                  ! . VP                  RR O^N5!  VP
                  ! . VP                  RR O^N5!  V.RR7      pV# )Útemplate_aatypeÚtemplate_torsion_angles_sin_cosÚ#template_alt_torsion_angles_sin_cosÚtemplate_torsion_angles_maskN©r7   r:   r#   )r   Úcatr   Ú
functionalÚone_hotÚreshaper*   )r>   rA   Útorsion_angles_sin_cosÚalt_torsion_angles_sin_cosÚtorsion_angles_maskÚtemplate_angle_feats   &     r   Úbuild_template_angle_featrN   G   s´   € Ø$Ð%6Õ7€OØ+Ð,MÕNÐØ!/Ð0UÕ!VÐØ(Ð)GÕHÐÜŸ)š)ä�M‰M×!Ñ! /°2Ó6Ø"×*Ò*ÐRÐ,B×,HÑ,HÈÈ"Ð,MÐRÈrÓRØ&×.Ò.ÐZÐ0J×0PÑ0PÐQTÐRTÐ0UÐZÐWYÓZØð		
ð ôÐð Ðr   c                ó  € V ^8„  d   QhR\         \        \        P                  3,          R\        P                  P
                  R\        P                  P
                  R\        R\        R\        R\        R\        P                  /# )	r
   r2   Úmin_binÚmax_binÚno_binsÚuse_unit_vectorÚepsÚinfr   )	r3   r4   r   r   ÚtypesÚNumberÚintÚboolÚfloat)r   s   "r   r   r   Y   s~   € ÷ :ñ :Ü””U—\‘\Ð!Õ"ð:ä�[‰[×Ñð:ô �[‰[×Ñð:ô ð	:ô
 ð:ô 
ð:ô 
ð:ô ‡\�\ñ:r   c                 ó  € V R ,          pVR,          VR,          ,          pV R,          p	\         P                  ! V	R,          V	R,          ,
          ^,          RRR7      p
\         P                  ! WW9P                  R7      ^,          p\         P                  ! VR,          VP                  V.4      .RR	7      pW«8„  W¬8  ,          P                  V
P                  4      p
W¨R,          .p\        P                  P                  V R
,          \        P                  ^,           4      pV R
,          P                  R,          pVP                  VR,          P                  ! . VP                  RR OVNRNRN5!  4       VP                  VR,          P                  ! . VP                  RR ORNVNRN5!  4       R Uu. uF  p\        P                   V,          NK  	  upw  ppp\"        P$                  ! V R,          RVR3,          V R,          RVR3,          V R,          RVR3,          VR7      pVP'                  4       R,          pVR,          P)                  V4      p\         P*                  ! V\         P                  ! V^,          RR	7      ,           4      pV R,          pVRV3,          VRV3,          ,          VRV3,          ,          pVR,          VR,          ,          pVV,          pVVR,          ,          pV'       g
   VR,          pVP-                  \         P.                  ! VR,          RR	7      4       VP                  VR,          4       \         P                  ! VRR	7      pVVR,          ,          pV# u upi )Útemplate_pseudo_beta_mask.Nr!   Útemplate_pseudo_betaT)r7   Úkeepdim)Údeviceºé   NNrE   rA   Útemplate_all_atom_positions)Ún_xyzÚca_xyzÚc_xyzrT   Útemplate_all_atom_maskg        r"   ©.Nr!   ).Nr!   r!   r#   r:   )ÚNr   ÚC)r   ÚsumÚlinspacer_   rF   Ú
new_tensorÚtypeÚdtyper   rG   rH   r$   Úrestype_numr*   Úappendr(   r&   r   Úmake_transform_from_referenceÚ	get_transÚinvert_applyÚrsqrtÚextendÚunbind)r2   rP   rQ   rR   rS   rT   rU   Útemplate_maskÚtemplate_mask_2dÚtpbÚdgramÚlowerÚupperÚ	to_concatÚaatype_one_hotÚn_resÚaÚnÚcaÚcÚrigidsÚpointsÚ	rigid_vecÚinv_distance_scalarÚ
t_aa_masksÚunit_vectorÚacts   &&&&&&&                    r   Úbuild_template_pair_featr‹   Y   s  € ð Ð5Õ6€MØ$ YÕ/°-ÀÕ2MÕMÐð Ð&Õ
'€CÜ�IŠI�s˜<Õ(¨3¨Õ+?Õ?ÀAÕEÈ2ÐW[Ô\€EÜ�NŠN˜7¨W¿Z¹ZÔHÈAÕM€EÜ�IŠI�u˜R•y %×"2Ñ"2°C°5Ó"9Ð:ÀÔC€EØ‰m ¡Õ.×4Ñ4°U·[±[ÓA€Eà¨Õ3Ð4€Iä')§}¡}×'<Ñ'<ØÐÕ Ü
�‰˜Õó(€Nð
 Ð#Õ$×*Ñ*¨2Õ.€EØ×Ñ�^ OÕ4×;Ò;Ðf¸^×=QÑ=QÐRUÐSUÐ=VÐfÐX]ÐfÐ_aÐfÐceÓfÔgØ×Ñ�^ LÕ1×8Ò8Ðc¸.×:NÑ:NÈsÐPRÐ:SÐcÐUWÐcÐY^ÐcÐ`bÓcÔdá*:Ó;Ñ*: Q”—‘˜a× Ð Ñ*:Ñ;�H€A€rˆ1Ü×0Ò0ØÐ1Õ2°3¸¸1°9Õ=ØÐ2Õ3°C¸¸Q°JÕ?ØÐ1Õ2°3¸¸1°9Õ=Øô	€Fð ×ÑÓ Õ0€FØ�yÕ!×.Ñ.¨vÓ6€IäŸ+š+ c¬E¯IªI°iÀµlÈÔ,KÕ&KÓLÐàÐ/Õ0€JØ˜s A˜vÕ&¨°C¸°GÕ)<Õ<¸zÈ#ÈqÈ&Õ?QÕQ€MØ$ YÕ/°-ÀÕ2MÕMÐà-Ð0@Õ@ÐØÐ1°)Õ<Õ<€KçØ! CÕ'ˆà×Ñ”U—\’\ +¨lÕ";ÀÔDÔEØ×ÑÐ% iÕ0Ô1ä
�)Š)�I 2Ô
&€CØ
Ð  Õ+Õ
+€Cà€Jùò9 <s   Æ; M=c                óz   € V ^8„  d   QhR\         \        \        P                  3,          R\        P                  /# )r
   r2   r   r?   )r   s   "r   r   r   –   s,   € ÷ 'ñ '¤¤S¬%¯,©,Ð%6Õ 7ð '¼E¿L¹Lñ 'r   c                 óâ   € \         P                  P                  V R ,          ^4      pVV R,          P                  R4      V R,          P                  R4      .p\        P
                  ! VRR7      # )Ú	extra_msaÚextra_has_deletionÚextra_deletion_valuerE   r#   )r   rG   rH   Ú	unsqueezer   rF   )r2   Úmsa_1hotÚmsa_feats   &  r   Úbuild_extra_msa_featr”   –   sb   € Ü!#§¡×!6Ñ!6°u¸[Õ7IÈ2Ó!N€HàØÐ"Õ#×-Ñ-¨bÓ1ØÐ$Õ%×/Ñ/°Ó3ð€Hô
 �9Š9�X 2Ô&Ð&r   c          
      ó�   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P                  R\         /# )r
   ÚrÚalphar   Úrrgdfr   ©r   r   r   )r   s   "r   r   r       sF   € ÷ ; ñ ; Üð; ä�<‰<ð; ô �L‰Lð; ô �<‰<ð	; ô
 ñ; r   c           	      óž  € W2R 3,          pV P                  V4      pVP                  . R\        VP                  RR 4      ,          O^N54      p^VR&   \        P
                  ! VP                  ! . VP                  RR ORNRN5!  V.RR7      pVP                  VP                  4       P                  4       P                  4      p^VR&   VR,          VR	&   VR
,          ) VR&   WR&   VP                  \        \        VR7      R4      4      pVR,          p	VR,          p
VR,          pVR,          pVP                  V	4      pVP                  V
4      pVP                  V4      p\        P
                  ! VR,          VP                  R4      VP                  R4      VP                  R4      .RR7      pV R,          P                  V4      pV# ).NrE   )Úrot_mats)ra   r#   ).ra   r:   ).r   r   ).ra   ra   ).r   ).ra   r
   ).r
   r`   ).é   ).é   ).é   ).é   ).:Nrœ   Nr"   )Úfrom_tensor_4x4Ú	new_zerosr)   r*   r   rF   r(   Úget_rotsÚget_rot_matsÚcomposer   r   r‘   )r–   r—   r   r˜   Údefault_4x4Ú	default_rÚbb_rotÚall_rotsÚ
all_framesÚchi2_frame_to_frameÚchi3_frame_to_frameÚchi4_frame_to_frameÚchi1_frame_to_bbÚchi2_frame_to_bbÚchi3_frame_to_bbÚchi4_frame_to_bbÚall_frames_to_bbÚall_frames_to_globals   &&&&              r   Útorsion_angles_to_framesr³       sÐ  € ð  ˜Õ$€Kð
 ×!Ñ! +Ó.€Ià�_‰_ÐA ¤s¨5¯;©;°s¸Ð+;Ó'<Õ <ÐA¸qÑAÓB€FØ€Fˆ6�Nô �IŠI�v—}’}Ð? e§k¡k°#°2Ð&6Ð?¸Ð?¸BÓ?ÀÐGÈRÔP€Eð �‰˜y×1Ñ1Ó3×@Ñ@ÓB×HÑHÓI€HØ€HˆYÑØ �-€HˆYÑØ  �=˜.€HˆYÑØ ˆZÑà×"Ñ"¤5¬¸8Ô)DÀdÓ#KÓL€Jà$ VÕ,ÐØ$ VÕ,ÐØ$ VÕ,Ðà! &Õ)ÐØ'×/Ñ/Ð0CÓDÐØ'×/Ñ/Ð0CÓDÐØ'×/Ñ/Ð0CÓDÐä—y’yà�wÕØ×&Ñ& rÓ*Ø×&Ñ& rÓ*Ø×&Ñ& rÓ*ð		
ð ôÐð ˜Y�<×/Ñ/Ð0@ÓAÐàÐr   c                óä   € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  R\        P                  /# )r
   r–   r   Údefault_framesÚ	group_idxÚ	atom_maskÚlit_positionsr   r™   )r   s   "r   r   r   Þ   sf   € ÷ ñ Üðä�L‰Lðô —L‘Lðô �|‰|ð	ô
 �|‰|ðô —<‘<ðô ‡\�\ñr   c                 ó:  € W1R 3,          p\         P                  P                  VVP                  R,          R7      pV R,          V,          pVP	                  R 4      pWAR 3,          P                  R4      pWQR 3,          pVP                  V4      p	W”,          p	V	# ).)Únum_classesc                 ó2   € \         P                  ! V RR7      # )ra   rE   r#   )r   rj   )Úxs   &r   Ú<lambda>Ú?frames_and_literature_positions_to_atom14_pos.<locals>.<lambda>ó   s   € Ä%Ç)Â)ÈAÐSUÕBVr   éýÿÿÿrg   r#   )r   rG   rH   r*   Úmap_tensor_fnr‘   Úapply)
r–   r   rµ   r¶   r·   r¸   Ú
group_maskÚgroup_mask_one_hotÚt_atoms_to_globalÚpred_positionss
   &&&&&&    r   Ú-frames_and_literature_positions_to_atom14_posrÆ   Þ   s©   € ð  3˜;Õ'€Jô ,.¯=©=×+@Ñ+@ØØ"×(Ñ(¨Õ,ð ,Aó ,Ðð ˜,�Ð*<Õ<Ðð *×7Ñ7Ñ8VÓWÐð  #˜+Õ&×0Ñ0°Ó4€Ið "¨# +Õ.€MØ&×,Ñ,¨]Ó;€NØ#Õ/€NàÐr   )Fg#B’¡œÇ;g    „×—A)Útypingr   r   Útorch.typesr   Ú r   r$   Úrigid_utilsr   r   Útensor_utilsr   r   r<   rN   r‹   r”   r³   rÆ   r   r   r   Ú<module>rÌ      se   ðõ  ã Û Ý å %ß (Ý (ð 
Ü uó 
Ø uð 
ô,ó 
ð,ò
õ*
õ÷$:õz'õ; ÷|r   