
    9i                     F   S SK rS SKrS SKrS SKrS SKJrJr  S SKrS SK	r
S SKJr  SSKJr  SSKJr  SS jr\" SS	S
9S\S\\\4   4S j5       r\" SS	S9S\S\\\4   4S j5       rS rS\S\4S jrS\4S jrS\
R4                  0rS\S\4S jrS\S\4S jrS\4S jrg)    N)AnyDict)sparse   )residue_constants)	NumpyDictc                 x   ^ ^ U(       a	  U U4S jnU$ U(       a	  U U4S jnU$ [         R                  " T T5      nU$ )Nc                    >^ [         R                  " TT5      " U 5      m[         R                  " U 5      U4S j5       nU$ )Nc                  <   > [         R                  " T" U 0 UD65      $ N)copy_libdeepcopyargskwargscached_funcs     l/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/science/unifold/data/utils.pywrapper-lru_cache.<locals>.decorator.<locals>.wrapper   s    ((d)Ef)EFF    	functools	lru_cachewrapsfr   r   maxsizetypeds     @r   	decoratorlru_cache.<locals>.decorator   s>    #--gu=a@K__QG  G Nr   c                    >^ [         R                  " TT5      " U 5      m[         R                  " U 5      U4S j5       nU$ )Nc                  <   > [         R                  " T" U 0 UD65      $ r   )r   copyr   s     r   r   r   %   s    }}[$%A&%ABBr   r   r   s     @r   r   r    "   s>    #--gu=a@K__QC  C Nr   )r   r   )r   r   r#   r   r   s   ``   r   r   r      s?    	,  
	  ''7	r      T)r   r   pathreturnc                 2    S nU" U 5      n[        U5      nU$ )Nc                 <   U R                  S5      (       d!  U R                  S5      (       d   SU  S35       eU R                  S5      (       a  [        R                  O[        nU" U S5       n[        R                  " U5      sS S S 5        $ ! , (       d  f       g = fNz.pklz.pkl.gzzbad suffix in z as pickle file.z.gzrbendswithgzipopenpickleloadr%   open_fnr   s      r   r0   load_pickle_safe.<locals>.load3   ~    }}V$$) ) 	@(.>?	@ #}}U33$))T4 A;;q> !     -B
Buncompress_featuresr%   r0   rets      r   load_pickle_safer:   0   !    " t*C
c
"CJr   )r   r#   c                 2    S nU" U 5      n[        U5      nU$ )Nc                 <   U R                  S5      (       d!  U R                  S5      (       d   SU  S35       eU R                  S5      (       a  [        R                  O[        nU" U S5       n[        R                  " U5      sS S S 5        $ ! , (       d  f       g = fr)   r+   r1   s      r   r0   load_pickle.<locals>.loadB   r4   r5   r6   r8   s      r   load_pickler?   ?   r;   r   c                     [         R                  " U SS9R                  [         R                  5      n [        R
                  n[         R                  " XR                  [         R                  5      SS9n U $ )zECorrect template restype to have the same order as residue_constants.)axisr   )npargmaxastypeint32rc MAP_HHBLITS_AATYPE_TO_OUR_AATYPEtake)featurenew_order_lists     r   correct_template_restypesrL   N   sN    iib)00:G88NggnnnRXX&>QGGNr   rJ   c                     U S   R                  [        R                  5      U S'   SU ;   a  U R                  S5        S nU R	                  5        VVs0 s H  u  p#U" U5      U_M     snn$ s  snnf )Nmsanum_alignmentsc                 <    U R                  S5      (       d  U  S3$ U $ )N_all_seq)r,   )ks    r   make_all_seq_key1convert_all_seq_feature.<locals>.make_all_seq_key\   s"    zz*%%S>!r   )rE   rC   uint8popitems)rJ   rS   rR   vs       r   convert_all_seq_featurerY   V   se    U^**2884GEN7"$%
 07}}?tqQ"???s   A,
spmat_dictc                     [         R                  " U S   U S   U S   44U S   [        R                  S9nUR	                  5       $ )Ndatarowcolshape)r_   dtype)sp
coo_matrixrC   float32toarray)rZ   spmats     r   to_dense_matrixrf   d   sI    MM	F	j/E1BCD!jjE
 ==?r   rN   featsc                 R    SU ;   a   U R                  S5      n[        U5      nXS'   U $ )Nsparse_deletion_matrix_intdeletion_matrix)rV   rf   )rg   rX   s     r   r7   r7   p   s1    #u,II23A#$ Lr   c                    [        U5      S:X  d
   SU 35       eSU;   a0  U R                  5        VVs0 s H  u  p#X!S   ;   d  M  X#_M     n nnU $ SU;   a  US    H  nX ;   a  M
   SU S35       e   U $ SU;   a0  U R                  5        VVs0 s H  u  p#X!S   ;  d  M  X#_M     n nnU $ [        SU 35      es  snnf s  snnf )Nr   z#wrong usage of filter with kwargs: desired_keysrequired_keyszcannot find required key .ignored_keys)lenrW   AssertionError)rJ   r   rR   rX   s       r   filterrr   x   s	   v;!KB6(KK  
'1~0F+F AD' 	 
 N 
F	"(A<A#<QCq!AA< ) N 
6	!  
'1>4J+J AD' 	 
 N B6(KLL

s   B8B8B>B>featuresc                 P   S[         R                  0nS/n0 nU R                  5        Hz  u  pEXA;   a  UR                  X   5      nXB;   aT  [        R
                  " XUR                  S9nUR                  UR                  UR                  UR                  S.nSU 3nUnXSU'   M|     U$ )NrN   deletion_matrix_int)r`   )r_   r]   r^   r\   sparse_)rC   rU   rW   rE   ra   rb   r`   r_   r]   r^   r\   )rs   change_dtypesparse_keyscompressed_featuresrR   rX   sp_vs          r   compress_featuresr{      s    rxxL ))K )Aaww/Auuuu	D !AA!"A ! r   )   FFF)r#   r   r   r-   r/   typingr   r   jsonnumpyrC   scipyr   ra    r   rG   data_opsr   r   strr:   r?   rL   rY   rf   rF   FEATS_DTYPEr7   rr   r{    r   r   <module>r      s            % 
8 1t$3 4S>  % 14 c d38n  !@Y @9 @	  bhhy Y I I (	 r   