| | 1 | = Writing mmCIF Files = |
| | 2 | |
| | 3 | The ultimate goal is to write out mmCIF files with all of the information ChimeraX uses. That is not possible for several reasons: |
| | 4 | |
| | 5 | * Information needed to reconstruct some tables is discarded after being used (//e.g.//, the sheet information for strands) |
| | 6 | * Whether or not the structure has been edited incompatibly is unknown, so associated metadata may or may not still be valid |
| | 7 | * intra-residue metal coordination bonds |
| | 8 | |
| | 9 | == First Pass == |
| | 10 | |
| | 11 | The [[http://www.rbvi.ucsf.edu/chimerax/docs/devel/mmcif.html|ChimeraX Fast mmCIF Guidelines]] give ChimeraX's requirements for reading. |
| | 12 | |
| | 13 | The minimal set of tables needed to properly reconstruct the connectivity are the **entity_poly_seq**, **atom_site**, and **struct_conn** tables. Minimal work for the **struct_conn** table, for example, hydrogen bonds would be skipped. |
| | 14 | |
| | 15 | After that, for completeness, we should add the **entity** and **chem_comp** tables. And the **audit_conform** table with our annotation that all keywords are in lowercase. |
| | 16 | |
| | 17 | Next, we should add support for writing the **atom_site** table with fixed width columns and add that annotation to the **audit_conform** table. |
| | 18 | |
| | 19 | == Completing Connectivity == |
| | 20 | |
| | 21 | All of the issues for the **struct_conn** table should be addressed: |
| | 22 | |
| | 23 | * intra-residue metal coordination bonds |
| | 24 | * hydrogen bonds |
| | 25 | * bonds missing from residue templates |
| | 26 | |
| | 27 | At this point, we could embed the residue templates (**chem_atom** and **chem_bond** tables) like the [[http://www.pdbe.org|PDBe]] does in its "updated" mmCIF files. |
| | 28 | |
| | 29 | == Secondary Structure == |
| | 30 | |
| | 31 | The secondary structure annotations, specifically the sheet annotations, are difficult since ChimeraX does not keep the original sheet information nor does it compute it. Functionally, the currently needed secondary structure information can be computed with the internal DSSP code. But those annotations don't always match the author's. Ideally, the sheet information would both preserved and be computed, so the mmCIF file could contain that information. (The sheet information would eventually be useful for a fancy cartoon representation.) |
| | 32 | |