


# flake8: noqa
# Lint as: python3
lowerCAmelCase__			:      Optional[Any]								=[
    'VerificationMode',
    'Version',
    'disable_progress_bar',
    'enable_progress_bar',
    'is_progress_bar_enabled',
    'experimental',
]

from .info_utils import VerificationMode
from .logging import disable_progress_bar, enable_progress_bar, is_progress_bar_enabled
from .version import Version
from .experimental import experimental













from typing import Dict

import numpy as np
import torch

from . import residue_constants as rc
from .tensor_utils import tensor_tree_map, tree_map
def 		_a       ( a					:Dict[str, torch.Tensor]					)				->     Dict[str, torch.Tensor]:
 a						    = []
 a						    = []
 a						    = []

 for rt in rc.restypes:
  a						    = rc.restype_name_to_atomaa_names[rc.restype_atoa[rt]]
  restype_atomaa_to_atomaa_list.append([(rc.atom_order[name] if name else 0) for name in atom_names]					)
  a						    = {name: i for i, name in enumerate(a					)}
  restype_atomaa_to_atomaa_list.append(
      [(atom_name_to_idxaa[name] if name in atom_name_to_idxaa else 0) for name in rc.atom_types]					)

  restype_atomaa_mask_list.append([(1.0 if name else 0.0) for name in atom_names]					)

 # Add dummy mapping for restype 'UNK'
 restype_atomaa_to_atomaa_list.append([0] * 14					)
 restype_atomaa_to_atomaa_list.append([0] * 37					)
 restype_atomaa_mask_list.append([0.0] * 14					)

 a						    = torch.tensor(
     a      ,				dtype=torch.intaa      ,				device=protein['''aatype'''].device      ,				)
 a						    = torch.tensor(
     a      ,				dtype=torch.intaa      ,				device=protein['''aatype'''].device      ,				)
 a						    = torch.tensor(
     a      ,				dtype=torch.floataa      ,				device=protein['''aatype'''].device      ,				)
 a						    = protein['''aatype'''].to(torch.long					)

 # create the mapping for (residx, atom14) --> atom37, i.e. an array
 # with shape (num_res, 14) containing the atom37 indices for this protein
 a						    = restype_atomaa_to_atomaa[protein_aatype]
 a						    = restype_atomaa_mask[protein_aatype]

 a						    = residx_atomaa_mask
 a						    = residx_atomaa_to_atomaa.long()

 # create the gather indices for mapping back
 a						    = restype_atomaa_to_atomaa[protein_aatype]
 a						    = residx_atomaa_to_atomaa.long()

 # create the corresponding mask
 a						    = torch.zeros([21, 37]      ,				dtype=torch.floataa      ,				device=protein['''aatype'''].device					)
 for restype, restype_letter in enumerate(rc.restypes					):
  a						    = rc.restype_atoa[restype_letter]
  a						    = rc.residue_atoms[restype_name]
  for atom_name in atom_names:
   a						    = rc.atom_order[atom_name]
   a						    = 1

 a						    = restype_atomaa_mask[protein_aatype]
 a						    = residx_atomaa_mask

 return protein

def 		_a       ( a					:Dict[str, torch.Tensor]					)				->     Dict[str, np.ndarray]:
 a						    = tree_map(lambda a					: torch.tensor(a      ,				device=batch['''aatype'''].device					)      ,				a      ,				np.ndarray					)
 a						    = tensor_tree_map(lambda a					: np.array(a					)      ,				make_atomaa_masks(a					)					)
 return out


