ccd.ts 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. /**
  2. * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * Code-generated 'CCD' schema file. Dictionary versions: mmCIF 5.363, IHM 1.17, MA 1.4.3.
  5. *
  6. * @author molstar/ciftools package
  7. */
  8. import { Database, Column } from '../../../../mol-data/db';
  9. import Schema = Column.Schema;
  10. const str = Schema.str;
  11. const float = Schema.float;
  12. const List = Schema.List;
  13. const lstr = Schema.lstr;
  14. const Aliased = Schema.Aliased;
  15. const int = Schema.int;
  16. const coord = Schema.coord;
  17. export const CCD_Schema = {
  18. /**
  19. * Data items in the CHEM_COMP category give details about each
  20. * of the chemical components from which the relevant chemical
  21. * structures can be constructed, such as name, mass or charge.
  22. *
  23. * The related categories CHEM_COMP_ATOM, CHEM_COMP_BOND,
  24. * CHEM_COMP_ANGLE etc. describe the detailed geometry of these
  25. * chemical components.
  26. */
  27. chem_comp: {
  28. /**
  29. * The formula for the chemical component. Formulae are written
  30. * according to the following rules:
  31. *
  32. * (1) Only recognized element symbols may be used.
  33. *
  34. * (2) Each element symbol is followed by a 'count' number. A count
  35. * of '1' may be omitted.
  36. *
  37. * (3) A space or parenthesis must separate each cluster of
  38. * (element symbol + count), but in general parentheses are
  39. * not used.
  40. *
  41. * (4) The order of elements depends on whether carbon is
  42. * present or not. If carbon is present, the order should be:
  43. * C, then H, then the other elements in alphabetical order
  44. * of their symbol. If carbon is not present, the elements
  45. * are listed purely in alphabetic order of their symbol. This
  46. * is the 'Hill' system used by Chemical Abstracts.
  47. */
  48. formula: str,
  49. /**
  50. * Formula mass in daltons of the chemical component.
  51. */
  52. formula_weight: float,
  53. /**
  54. * The value of _chem_comp.id must uniquely identify each item in
  55. * the CHEM_COMP list.
  56. *
  57. * For protein polymer entities, this is the three-letter code for
  58. * the amino acid.
  59. *
  60. * For nucleic acid polymer entities, this is the one-letter code
  61. * for the base.
  62. */
  63. id: str,
  64. /**
  65. * The identifier for the parent component of the nonstandard
  66. * component. May be be a comma separated list if this component
  67. * is derived from multiple components.
  68. *
  69. * Items in this indirectly point to _chem_comp.id in
  70. * the CHEM_COMP category.
  71. */
  72. mon_nstd_parent_comp_id: List(',', x => x),
  73. /**
  74. * The full name of the component.
  75. */
  76. name: str,
  77. /**
  78. * For standard polymer components, the one-letter code for
  79. * the component. For non-standard polymer components, the
  80. * one-letter code for parent component if this exists;
  81. * otherwise, the one-letter code should be given as 'X'.
  82. *
  83. * Components that derived from multiple parents components
  84. * are described by a sequence of one-letter-codes.
  85. */
  86. one_letter_code: str,
  87. /**
  88. * For standard polymer components, the common three-letter code for
  89. * the component. Non-standard polymer components and non-polymer
  90. * components are also assigned three-letter-codes.
  91. *
  92. * For ambiguous polymer components three-letter code should
  93. * be given as 'UNK'. Ambiguous ions are assigned the code 'UNX'.
  94. * Ambiguous non-polymer components are assigned the code 'UNL'.
  95. */
  96. three_letter_code: str,
  97. /**
  98. * For standard polymer components, the type of the monomer.
  99. * Note that monomers that will form polymers are of three types:
  100. * linking monomers, monomers with some type of N-terminal (or 5')
  101. * cap and monomers with some type of C-terminal (or 3') cap.
  102. */
  103. type: Aliased<'d-peptide linking' | 'l-peptide linking' | 'd-peptide nh3 amino terminus' | 'l-peptide nh3 amino terminus' | 'd-peptide cooh carboxy terminus' | 'l-peptide cooh carboxy terminus' | 'dna linking' | 'rna linking' | 'l-rna linking' | 'l-dna linking' | 'dna oh 5 prime terminus' | 'rna oh 5 prime terminus' | 'dna oh 3 prime terminus' | 'rna oh 3 prime terminus' | 'd-saccharide, beta linking' | 'd-saccharide, alpha linking' | 'l-saccharide, beta linking' | 'l-saccharide, alpha linking' | 'l-saccharide' | 'd-saccharide' | 'saccharide' | 'non-polymer' | 'peptide linking' | 'peptide-like' | 'l-gamma-peptide, c-delta linking' | 'd-gamma-peptide, c-delta linking' | 'l-beta-peptide, c-gamma linking' | 'd-beta-peptide, c-gamma linking' | 'other'>(lstr),
  104. /**
  105. * Synonym list for the component.
  106. */
  107. pdbx_synonyms: List(';', x => x),
  108. /**
  109. * A preliminary classification used by PDB.
  110. */
  111. pdbx_type: str,
  112. /**
  113. * A preliminary classification used by PDB to indicate
  114. * that the chemistry of this component while described
  115. * as clearly as possible is still ambiguous. Software
  116. * tools may not be able to process this component
  117. * definition.
  118. */
  119. pdbx_ambiguous_flag: str,
  120. /**
  121. * Identifies the _chem_comp.id of the component that
  122. * has replaced this component.
  123. */
  124. pdbx_replaced_by: str,
  125. /**
  126. * Identifies the _chem_comp.id's of the components
  127. * which have been replaced by this component.
  128. * Multiple id codes should be separated by commas.
  129. */
  130. pdbx_replaces: str,
  131. /**
  132. * The net integer charge assigned to this component. This is the
  133. * formal charge assignment normally found in chemical diagrams.
  134. */
  135. pdbx_formal_charge: int,
  136. /**
  137. * This data item provides additional details about the model coordinates
  138. * in the component definition.
  139. */
  140. pdbx_model_coordinates_details: str,
  141. /**
  142. * This data item identifies the PDB database code from which the heavy
  143. * atom model coordinates were obtained.
  144. */
  145. pdbx_model_coordinates_db_code: str,
  146. /**
  147. * This data item identifies the source of the ideal coordinates in the
  148. * component definition.
  149. */
  150. pdbx_ideal_coordinates_details: str,
  151. /**
  152. * This data item identifies if ideal coordinates are missing in this definition.
  153. */
  154. pdbx_ideal_coordinates_missing_flag: Aliased<'y' | 'n'>(lstr),
  155. /**
  156. * This data item identifies if model coordinates are missing in this definition.
  157. */
  158. pdbx_model_coordinates_missing_flag: Aliased<'y' | 'n'>(lstr),
  159. /**
  160. * Date component was added to database.
  161. */
  162. pdbx_initial_date: str,
  163. /**
  164. * Date component was last modified.
  165. */
  166. pdbx_modified_date: str,
  167. /**
  168. * This data item holds the current release status for the component.
  169. */
  170. pdbx_release_status: Aliased<'REL' | 'HOLD' | 'HPUB' | 'OBS' | 'DEL' | 'REF_ONLY'>(str),
  171. /**
  172. * This data item identifies the deposition site that processed
  173. * this chemical component defintion.
  174. */
  175. pdbx_processing_site: Aliased<'PDBE' | 'EBI' | 'PDBJ' | 'PDBC' | 'RCSB'>(str),
  176. },
  177. /**
  178. * Data items in the CHEM_COMP_ATOM category record details about
  179. * the atoms in a chemical component. Specifying the atomic
  180. * coordinates for the components in this category is an
  181. * alternative to specifying the structure of the component
  182. * via bonds, angles, planes etc. in the appropriate
  183. * CHEM_COMP subcategories.
  184. */
  185. chem_comp_atom: {
  186. /**
  187. * An alternative identifier for the atom. This data item would be
  188. * used in cases where alternative nomenclatures exist for labelling
  189. * atoms in a group.
  190. */
  191. alt_atom_id: str,
  192. /**
  193. * The value of _chem_comp_atom.atom_id must uniquely identify
  194. * each atom in each monomer in the CHEM_COMP_ATOM list.
  195. *
  196. * The atom identifiers need not be unique over all atoms in the
  197. * data block; they need only be unique for each atom in a
  198. * component.
  199. *
  200. * Note that this item need not be a number; it can be any unique
  201. * identifier.
  202. */
  203. atom_id: str,
  204. /**
  205. * The net integer charge assigned to this atom. This is the
  206. * formal charge assignment normally found in chemical diagrams.
  207. */
  208. charge: int,
  209. /**
  210. * The x component of the coordinates for this atom in this
  211. * component specified as orthogonal angstroms. The choice of
  212. * reference axis frame for the coordinates is arbitrary.
  213. *
  214. * The set of coordinates input for the entity here is intended to
  215. * correspond to the atomic model used to generate restraints for
  216. * structure refinement, not to atom sites in the ATOM_SITE
  217. * list.
  218. */
  219. model_Cartn_x: coord,
  220. /**
  221. * The y component of the coordinates for this atom in this
  222. * component specified as orthogonal angstroms. The choice of
  223. * reference axis frame for the coordinates is arbitrary.
  224. *
  225. * The set of coordinates input for the entity here is intended to
  226. * correspond to the atomic model used to generate restraints for
  227. * structure refinement, not to atom sites in the ATOM_SITE
  228. * list.
  229. */
  230. model_Cartn_y: coord,
  231. /**
  232. * The z component of the coordinates for this atom in this
  233. * component specified as orthogonal angstroms. The choice of
  234. * reference axis frame for the coordinates is arbitrary.
  235. *
  236. * The set of coordinates input for the entity here is intended to
  237. * correspond to the atomic model used to generate restraints for
  238. * structure refinement, not to atom sites in the ATOM_SITE
  239. * list.
  240. */
  241. model_Cartn_z: coord,
  242. /**
  243. * This data item is a pointer to _chem_comp.id in the CHEM_COMP
  244. * category.
  245. */
  246. comp_id: str,
  247. /**
  248. * The code used to identify the atom species representing
  249. * this atom type. Normally this code is the element
  250. * symbol.
  251. */
  252. type_symbol: str,
  253. /**
  254. * Atom name alignment offset in PDB atom field.
  255. */
  256. pdbx_align: int,
  257. /**
  258. * Ordinal index for the component atom list.
  259. */
  260. pdbx_ordinal: int,
  261. /**
  262. * An alternative x component of the coordinates for this atom in this
  263. * component specified as orthogonal angstroms.
  264. */
  265. pdbx_model_Cartn_x_ideal: coord,
  266. /**
  267. * An alternative y component of the coordinates for this atom in this
  268. * component specified as orthogonal angstroms.
  269. */
  270. pdbx_model_Cartn_y_ideal: coord,
  271. /**
  272. * An alternative z component of the coordinates for this atom in this
  273. * component specified as orthogonal angstroms.
  274. */
  275. pdbx_model_Cartn_z_ideal: coord,
  276. /**
  277. * The chiral configuration of the atom that is a chiral center.
  278. */
  279. pdbx_stereo_config: Aliased<'r' | 's' | 'n'>(lstr),
  280. /**
  281. * A flag indicating an aromatic atom.
  282. */
  283. pdbx_aromatic_flag: Aliased<'y' | 'n'>(lstr),
  284. /**
  285. * A flag indicating a leaving atom.
  286. */
  287. pdbx_leaving_atom_flag: Aliased<'y' | 'n'>(lstr),
  288. },
  289. /**
  290. * Data items in the CHEM_COMP_BOND category record details about
  291. * the bonds between atoms in a chemical component. Target values
  292. * may be specified as bond orders, as a distance between the two
  293. * atoms, or both.
  294. */
  295. chem_comp_bond: {
  296. /**
  297. * The ID of the first of the two atoms that define the bond.
  298. *
  299. * This data item is a pointer to _chem_comp_atom.atom_id in the
  300. * CHEM_COMP_ATOM category.
  301. */
  302. atom_id_1: str,
  303. /**
  304. * The ID of the second of the two atoms that define the bond.
  305. *
  306. * This data item is a pointer to _chem_comp_atom.atom_id in the
  307. * CHEM_COMP_ATOM category.
  308. */
  309. atom_id_2: str,
  310. /**
  311. * This data item is a pointer to _chem_comp.id in the CHEM_COMP
  312. * category.
  313. */
  314. comp_id: str,
  315. /**
  316. * The value that should be taken as the target for the chemical
  317. * bond associated with the specified atoms, expressed as a bond
  318. * order.
  319. */
  320. value_order: Aliased<'sing' | 'doub' | 'trip' | 'quad' | 'arom' | 'poly' | 'delo' | 'pi'>(lstr),
  321. /**
  322. * Ordinal index for the component bond list.
  323. */
  324. pdbx_ordinal: int,
  325. /**
  326. * Stereochemical configuration across a double bond.
  327. */
  328. pdbx_stereo_config: Aliased<'e' | 'z' | 'n'>(lstr),
  329. /**
  330. * A flag indicating an aromatic bond.
  331. */
  332. pdbx_aromatic_flag: Aliased<'y' | 'n'>(lstr),
  333. },
  334. /**
  335. * Data items in the CHEM_COMP_DESCRIPTOR category provide
  336. * string descriptors of component chemical structure.
  337. */
  338. pdbx_chem_comp_descriptor: {
  339. /**
  340. * This data item is a pointer to _chem_comp.id in the CHEM_COMP
  341. * category.
  342. */
  343. comp_id: str,
  344. /**
  345. * This data item contains the descriptor value for this
  346. * component.
  347. */
  348. descriptor: str,
  349. /**
  350. * This data item contains the descriptor type.
  351. */
  352. type: Aliased<'smiles_cannonical' | 'smiles_canonical' | 'smiles' | 'inchi' | 'inchi_main' | 'inchi_main_formula' | 'inchi_main_connect' | 'inchi_main_hatom' | 'inchi_charge' | 'inchi_stereo' | 'inchi_isotope' | 'inchi_fixedh' | 'inchi_reconnect' | 'inchikey'>(lstr),
  353. /**
  354. * This data item contains the name of the program
  355. * or library used to compute the descriptor.
  356. */
  357. program: str,
  358. /**
  359. * This data item contains the version of the program
  360. * or library used to compute the descriptor.
  361. */
  362. program_version: str,
  363. },
  364. /**
  365. * Data items in the CHEM_COMP_IDENTIFIER category provide
  366. * identifiers for chemical components.
  367. */
  368. pdbx_chem_comp_identifier: {
  369. /**
  370. * This data item is a pointer to _chem_comp.id in the CHEM_COMP
  371. * category.
  372. */
  373. comp_id: str,
  374. /**
  375. * This data item contains the identifier value for this
  376. * component.
  377. */
  378. identifier: str,
  379. /**
  380. * This data item contains the identifier type.
  381. */
  382. type: Aliased<'COMMON NAME' | 'SYSTEMATIC NAME' | 'CAS REGISTRY NUMBER' | 'PUBCHEM Identifier' | 'MDL Identifier' | 'SYNONYM' | 'CONDENSED IUPAC CARB SYMBOL' | 'IUPAC CARB SYMBOL' | 'SNFG CARB SYMBOL' | 'CONDENSED IUPAC CARBOHYDRATE SYMBOL' | 'IUPAC CARBOHYDRATE SYMBOL' | 'SNFG CARBOHYDRATE SYMBOL'>(str),
  383. /**
  384. * This data item contains the name of the program
  385. * or library used to compute the identifier.
  386. */
  387. program: str,
  388. /**
  389. * This data item contains the version of the program
  390. * or library used to compute the identifier.
  391. */
  392. program_version: str,
  393. },
  394. };
  395. export type CCD_Schema = typeof CCD_Schema;
  396. export interface CCD_Database extends Database<CCD_Schema> {};