"""Sets of chemical components.""" import pickle from typing import Final from flax_model.alphafold3.common import resources _CCD_SETS_CCD_PICKLE_FILE = resources.filename( resources.ROOT / 'constants/converters/chemical_component_sets.pickle' ) _CCD_SET = pickle.load(open(_CCD_SETS_CCD_PICKLE_FILE, 'rb')) # Glycan (or 'Saccharide') ligands. # _chem_comp.type containing 'saccharide' and 'linking' (when lower-case). GLYCAN_LINKING_LIGANDS: Final[frozenset[str]] = _CCD_SET['glycans_linking'] # _chem_comp.type containing 'saccharide' and not 'linking' (when lower-case). GLYCAN_OTHER_LIGANDS: Final[frozenset[str]] = _CCD_SET['glycans_other'] # Each of these molecules appears in over 1k PDB structures, are used to # facilitate crystallization conditions, but do not have biological relevance. COMMON_CRYSTALLIZATION_AIDS: Final[frozenset[str]] = frozenset({ 'SO4', 'GOL', 'EDO', 'PO4', 'ACT', 'PEG', 'DMS', 'TRS', 'PGE', 'PG4', 'FMT', 'EPE', 'MPD', 'MES', 'CD', 'IOD', }) # pyformat: disable