
    9i]              	       
   S SK r S SKJr  S SKrSrSrSrSr\R                  " S\
S9r\R                  " S	\
S9r\R                  " S
\
S9r\R                  " S
\
S9r\R                  " S\
S9r\R                  " S\
S9r\R                  " S\
S9r\R                  " S
\
S9r\R                  " S\S9r\R                  " S\S9r\R                  " S\S9r\R                  " S\S9rS rSS\R4                  S\S\S\4S jjrSS jrg)    N)Anyznumber of residuesznumber of MSA sequencesznumber of extra MSA sequencesznumber of templates   )
field_type   @           :0yE>     L@TFc                  	   [         R                  " 0 S0 S[        /_S[        S /_S[        S S /_S[        S /_S[        S /_S[        S S /_S[        S /_S	[        S /_S
[        S /_S[        S S /_S[        S /_S[        /_S[        S S /_S[        [        /_S[        S S /_S[        S /_S[        [        /_0 S[        [        /_S[        [        /_S[        [        /_S[        /_S/ _S[        [        S /_S[        [        /_S[        S /_S[        /_S/ _S[        S /_S[        /_S[        /_S [        S /_S![        S /_S"/ _S#[        S S S /_E0 S$[        S /_S%[        S /_S&[        S /_S'[        S S S /_S(/ _S)[        /_S*[        S /_S+[
        [        /_S,[
        [        S /_S-[
        [        S S /_S.[
        [        S S /_S/[
        [        /_S0[
        [        S S /_S1[
        /_S2[
        [        S /_S3[
        [        /_S4[
        S /_E[
        [        S /[
        [        S S /[        [        // S5/[        /[        /[        /[        /S /[        /S6.E_S7S8S8S8S9._S:S;S<S=S>S?._S@SASB0_SCS<_SDS<_SESF_SGSH_SISH_SJSH_SK/ SLQ_SM/ SNQ_SO/ SPQ_SQ/ SRQ_SS[        _ST[        _SU[        _SV[        0ESW/ SXQSY.SHS<S<SHSZS[S\S]S<S S<S<S<S^.SHS<S<SHSZS[S\S5S<S S_S`SHS<S<Sa.0 SbSH_ScSH_S:SH_S@SH_SdSZ_SeS[_SfS\_SgS5_ShSH_SiSj_SkS__SlS`_SmSH_SnSW_SoSp_SqSH_SrSH_Ss.[        S [        [        [        [        [        [        [         [        S<St.[        SuSv[        [        SwS]Sx.[        [        SySzS{S|S}.SyS~SS.S[        S.S/ SQ[        [        S<S.[        S>SS]S\S]SSSHS.	SH[        [        S>S\SS.SS[        [        S.	S[        S.[        [        SSwS[SwSS\S\S\SZSSSS<S.SHS.0 S[        _S[        _SSw_SSw_SS[_SSw_S[        _SS_SS\_SS_SS\_SSZ_SS_SS_SS_SS<_0 S[        _S[        _SS>_SS[_SS_SS\_SS_SS8_SS_SS5_SS]_SS_SS_SS_SS_SS<_SSH_S[        S[S.[        ["        S<S.[        ["        S<SS<S.[        SS<S.[        SS<S<S.S.S.SSSSS;S.SS8SSS.S`SS`SS_SS.S`S`S_SS.SWS.S8SSSSSS.SSS.S_SSSWS.SSS;SSS.SSS8SSSS.SSWS.SSS.S.
S.5      $ )Nfeaturesaatypeall_atom_maskall_atom_positionsalt_chi_anglesatom14_alt_gt_existsatom14_alt_gt_positionsatom14_atom_existsatom14_atom_is_ambiguousatom14_gt_existsatom14_gt_positionsatom37_atom_exists
frame_masktrue_frame_tensor	bert_maskchi_angles_sin_coschi_maskextra_msa_deletion_valueextra_msa_has_deletion	extra_msaextra_msa_maskextra_msa_row_maskis_distillationmsa_featmsa_mask
msa_chainsmsa_row_masknum_recycling_iterspseudo_betapseudo_beta_maskresidue_indexresidx_atom14_to_atom37residx_atom37_to_atom14
resolutionrigidgroups_alt_gt_framesrigidgroups_group_existsrigidgroups_group_is_ambiguousrigidgroups_gt_existsrigidgroups_gt_frames
seq_lengthseq_masktarget_feattemplate_aatypetemplate_all_atom_masktemplate_all_atom_positions#template_alt_torsion_angles_sin_costemplate_frame_masktemplate_frame_tensortemplate_masktemplate_pseudo_betatemplate_pseudo_beta_masktemplate_sum_probs   )template_torsion_angles_masktemplate_torsion_angles_sin_costrue_msause_clamped_fapeassembly_num_chainsasym_idsym_id	entity_idnum_symasym_lencluster_bias_mask
masked_msa皙?)profile_prob	same_probuniform_probblock_delete_msag333333?F      )msa_fraction_per_blockrandomize_num_blocks
num_blocksmin_num_msarandom_delete_msamax_msa_entryi   
v2_featuregumbel_samplemax_extra_msa   msa_cluster_featuresT$reduce_msa_clusters_by_max_templatesresample_msa_in_recyclingtemplate_features)r:   rA   r8   r9   unsupervised_features)
r   r,   msar'   num_alignmentsr5   between_segment_residuesdeletion_matrixr)   crop_and_fix_size_seedrecycling_features)r'   r&   r(   r   rE   r%   r   r    r!   r"   r#   r$   multimer_features)rG   rH   rI   rK   rJ   rL   rM   use_templatesis_multimeruse_template_torsion_anglesmax_recycling_iters      ?)r   r   r/   rF   r$   )use_clamped_fape_probsupervised_featuresg333333?r   r
      )
fixed_sizesubsample_templatesrS   rZ   masked_msa_replace_fractionmax_msa_clustersmax_templatesnum_ensemblescrop	crop_size
supervisedbiased_msa_by_chain
share_mask      ?g      $@)rt   ru   rS   rZ   rv   rw   rx   ry   rz   r{   spatial_crop_probca_ca_thresholdr|   r}   r~   rt   ru   rv   rw   rx   ry   rz   r{   r   r   r   r|   rq   max_distillation_msa_clustersi  r}   r~   )commonr|   predictevaltrain)
chunk_size
block_sized_paird_msa
d_templated_extra_msad_singleepsinfro   alphafold_original_mode   1       )tf_dimmsa_dimr   r   relpos_kmax_relative_chaing      
@g     4@   g    חA)r   r   min_binmax_binnum_binsr   g     `I@'   )r   r   r   9   )d_ind_outX   )r   rB   r   r   rB   rB   rB   rB   )r   v2_d_inr   r   r\   r   g      ?g    eA)	r   d_hid_tri_attd_hid_tri_mulrX   	num_headspair_transition_ndropout_rater   tri_attn_firstg     j@)enabledr   r   d_hidr   r   gư>)		distogramtemplate_angle_embeddertemplate_pair_embeddertemplate_pair_stacktemplate_pointwise_attentionr   r   r   embed_angles      g|=)r   r   d_hid_msa_att	d_hid_opm	d_hid_muld_hid_pair_attnum_heads_msanum_heads_pairrX   transition_nmsa_dropoutpair_dropoutr   r   outer_product_mean_first)extra_msa_embedderextra_msa_stackr   r   r   r   r   r   r   r   r   r   rX   0   r   r   r   r   r   r   d_ipad_anglenum_heads_ipa   num_qk_pointsnum_v_pointsr   no_transition_layersnum_resnet_blocks
num_angles   trans_scale_factor
   epsilong-q=separate_kvipa_bias2   )r   r   r   )r   r   disable_enhance_headg?)r   r   r   iptm_weightr      )r   r   r   %   )r   r   r   r   )plddtr   paerN   experimentally_resolved)rm   input_embedderrecycling_embeddertemplater!   evoformer_stackstructure_moduleheadsg     @g     5@)r   r   r   r   weightr   g      @g        )r   min_resolutionmax_resolutionr   g      >@g      4@g-C6?)clamp_distanceclamp_distance_between_chainsloss_unit_distance!loss_unit_distance_between_chainsr   r   )r   length_scaler   r   )backbone	sidechainr   g      .@{Gz?)r   r   cutoffr   r   r   g       @)r   r   )
chi_weightangle_norm_weightr   r   g      (@g      ?)violation_tolerance_factorclash_overlap_tolerancebond_angle_loss_weightr   r      )r   r   r   r   r   r   )r   	tolerance)r   r   )
r   r   faper   rN   supervised_chi	violationr   	repr_normchain_centre_mass)dataglobalsmodelloss)mlc
ConfigDictN_RESN_MSAN_EXTRA_MSAN_TPLrl   rm   ro   r   r   r   r   r   r   r   r   aux_distogram_bins     h/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/science/unifold/config.pybase_configr     s
   >>R EugE#eT]E )5$*=E %udm	E
 +UDME .tT/BE )5$-E /E 'E *E4+>E )5$-E !5'E (%t)<E  %E )5$*=E  !E" /e0D#E$ -{E.B%E&  +u!5'E( %{E&:)E* );-+E, &r-E. t 4/E0 1E2 !5$-3E4 #UG5E6 *27E8 "E4=9E: ';E< $eW=E> .t}?E@ .t}AEB !"CED 0%tT1JEEF /GEH 5udmIEJ ,eT]KEL ,eT4-FMEN !"OEP QER "E4=SET &u~UEV -ueT.BWEX 2E5$3MYEZ :	<[Ef *E5>gEh ,eUD$-GiEj $eWkEl +UE4,@mEn 0%oEp )5$-qEr 6;E44HE4.!&(*,-3 %w$g"' %w!%*/IERN $'!$$'ORX #.1,1"##%	%YRd $#W&eRj mRn  qRr  uRv 'yRz 7}R~ ,ARB $ &CRN ( *ORf % 'gRB $ &CRT  WRX [R\ ._R` &#cRj (
 #',$)%)/3$'!"!"!#',#  #',$)%)/3$'!"!"!%(#'"',#"d%t #D $T	
 .t #C      S $S "4 d ( 0  &t!" d#R
h %$& #6',
 ' &' ! #  $$ " ",
 :$'"'+ #-%'%'"#!")*$(&*
(  $",$!"1 ( -O(V ('
 )$%&!#!$&(%&&'"#$%#'$( 05$"  -0  &     R	 
 S  !"  H     !!  b    t    s  u   +E! $!H!&! ! 3	!
  !  ! ! ! a! '! $Q! a! %b! 5! s!  u!!" D#!* !#$  % 2,1 % 2$#&,1 #,1 !)$,1	,/qV
r "" "%"%	( '+59*.9=! '+$(!	 $ #&"% 
 "%)	 /3+.*- "%"%  
 "IH
qA A Ar   ckeyvalueignorec                    U R                  5          U R                  5        HG  u  pEUb  XC:X  a  M  [        U[        R                  5      (       a  [        XQU5        M<  XA:X  d  MC  X U'   MI     S S S 5        g ! , (       d  f       g = fN)unlockeditems
isinstancer   r   recursive_set)r  r  r  r  kvs         r  r  r    s[    	
GGIDA!ak!S^^,,ae,!  
s   AA6%A66
Bc                 j   [         R                  " [        5       5      nS nS nU S:X  a  GOU S:X  aR  [        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        GO{U S:X  a  [        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        SUR                  R                  l	        SUR                  R                  R                  l        SUR                  R                  l	        SUR                  l        GOU S:X  a  GOU S:X  a  GOU S:X  a  SUR                  l        GOU S:X  aR  [        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        GO6U S:X  a  [        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        SUR                  R                  l	        SUR                  R                  R                  l        SUR                  R                  l	        SUR                  l        GOrU S:X  a
  U" U5      nGObU S:X  aZ  U" U5      n[        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        GOU S:X  d  U S:X  Ga  [        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        SUR                  R                  l	        SUR                  R                  R                  l        SUR                  R                  l	        SUR                  l        SUR                  R"                  l        SUR                  R"                  l        [        USS5        [        USS5        GOU S:X  Ga  [        USS5        [        USS5        S	UR                  R
                  l        S
UR                  R                  l	        SUR                  R                  l	        SUR                  R                  R                  l        SUR                  R                  l	        SUR                  l        SUR                  R"                  l        SUR                  R"                  l        [        USS5        [        USS5        GOU S:X  a
  U" U5      nGOU S:X  aZ  U" U5      n[        USS5        [        USS 5        S	UR                  R
                  l        S!UR                  R                  l	        GObU S":X  GaL  [        USS5        [        USS 5        [        US#S5        [        US$S5        [        US%S5        S&UR                  R"                  R&                  l        SUR                  R"                  R*                  l        SUR                  R"                  R.                  l        SUR                  R                  R0                  l        SUR                  R                  R                  l        S'UR                  R                  R2                  l        SUR                  R6                  l        SUR                  R6                  l        S(UR                  R6                  l        S)UR                  R0                  l	        S!UR                  R                  l	        SUR                  R                  l	        S*UR                  R>                  l         SUR                  l        S	UR                  R
                  l        SUR                  R                  l	        S+UR                  RB                  l	        [        US,S5        O[E        S-U  S.35      eU(       a  S UR                  l#        [        US/S05        [        US1S2S35        U$ )4Nc                 :   [        U SS5        [        U SS5        SU R                  R                  R                  l        SU R                  R
                  l        SU R                  R
                  l        SU R                  R                  R                  l
        U $ )Nr\   Tr]   r   F"   )r  r   r   rN   r   r   r   r   r   r   r   r  s    r  
model_2_v2 model_config.<locals>.model_2_v2  sq    at,a$/)+  &/3  ,,1  )8:005r   c                    [        U SS5        [        U SS5        [        U SS5        [        U SS5        [        U SS5        S	U R                  R                  R                  l        S
U R                  R                  R
                  l        S
U R                  R                  R                  l        SU R                  R                  R                  l        SU R                  R                  R                  l        SU R                  R                  R                  l        SU R                  R                  l        S
U R                  R                  l        SU R                  R                  l        SU R$                  R                  l        SU R                  R(                  l        SU R,                  R.                  l        SU R$                  R2                  l        SU R$                  R4                  l        U $ )Nrm   Tr^     rw   r   r\   r]   r  Fr      rO      r   {Gz?rp   )r  r   r   r   r   r   r   r   r   r   r   r   rN   r   r   r   r   r   r   r   r   r   r   r   r{   r   r   r  s    r  multimermodel_config.<locals>.multimer  sZ   a-a$/a+S1at,a$/8:005>C,,;@E55=$(!15.)+  &/3  ,,1  )68  3

(*%!$"&*-  'r   model_1
model_1_ftr^   i   rw   i   r   r  model_1_af2r   Tr   model_2
model_initmodel_init_af2
model_2_ftr_   model_2_af2r  model_2_v2_ftmodel_3_af2model_4_af2Frl   rn   model_5_af2r  multimer_ftr  r   r   multimer_af2rm   r\   r]   r  r   r  rO   r  rp   r   zinvalid --model-name: .r   r   r   gh㈵>r   )$copydeepcopyr  r  r   r   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rN   r   r   r   r   r   r   r   r   
ValueErrorr   )namer   r  r  r  s        r  model_configr/    s   km$A. y		a$/a+S1!$"&		a$/a+S1!$"&"#8<--504&&-,0		)					!	!,0		)		a$/a+S1!$"&		a$/a+S1!$"&"#8<--504&&-,0		)		qM		 qMa$/a+S1!$"&		$-"7a$/a+S1!$"&"#8<--504&&-,0		)#( (-%a%0a6>		a$/a+S1!$"&"#8<--504&&-,0		)#( (-%a%0a6>		QK		QKa$/a+S1!$"%		a$/a+S1a-at,a$/8:005>C,,;@E55=$(!8<--5)+  &/3  ,,1  )68  3

"%04&&-(*%,0		)!$"#*-  'a3T:1$q9::#		!UC !UD&)Hr   r  )F)r+  typingr   ml_collectionsr   r   r   r   r   FieldReferenceintr   r   r   r   r   ro   r   r   floatr   r   boolrl   rm   r  r   strr  r/  r   r   r  <module>r7     s0     !-			CC	033/s3
  4cc2((s; c2
''s; 	%0	/""4D9  48BJS^^ # c 3 Pr   