ccd.ts 15 KB

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