Hi all,
Bringing back a long-forgotten thread from the dead... Would it be possible to incorporate self-contained annotations into mmCIF in ChimeraX (reading/writing)?
I recently added a primitive little widget to do this in coot1-trimmings: https://bsky.app/profile/olibclarke.bsky.social/post/3micblpuoxc2u
This adds the notes as base64 in a loop at the end, so they are persistent and can be read/written/modified by multiple users, with timestamps & 3D coordinates for each note:
_cootnote_annotation_meta.version 1
_cootnote_annotation_meta.program coot-trimmings
loop_
_cootnote_residue_note.id
_cootnote_residue_note.auth_asym_id
_cootnote_residue_note.auth_seq_id
_cootnote_residue_note.pdbx_PDB_ins_code
_cootnote_residue_note.label_comp_id
_cootnote_residue_note.author_b64
_cootnote_residue_note.modified_utc
_cootnote_residue_note.note_b64
1 A 162 ? GLY T2xp 2026-03-31T17:06:58Z dGhpcyBnbHljaW5lIGlzIHdlaXJk
2 A 196 ? GLU T2xp 2026-03-31T17:07:41Z VGhpcyBpcyBhIGdsdXRhbWF0ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUuIFRoaXMgaXMgYSByZWFsbHkgbG9uZyBub3RlLiBUaGlzIGlzIGEgcmVhbGx5IGxvbmcgbm90ZS4gVGhpcyBpcyBhIHJlYWxseSBsb25nIG5vdGUu
3 C 3006 ? K T2xp 2026-03-31T17:08:08Z VGhpcyBpcyBvbmUgb2YgdGhlIHBvdGFzc2l1bXM=
The nice thing about this is it is very flexible, and it means the structure itself can contain a record of modifications, interesting sites, disease mutations, etc - and can also become a kind of "track changes" or discussion forum for the structure - facilitating conversations between collaborators, for example. If there is interest, it might be good to identify a shared format for such a loop, so notes written in Coot could be read/navigated in ChimeraX, & vice versa?
Cheers
Oli
On Nov 12, 2015, at 7:08 PM, Greg Couch <gregc@cgl.ucsf.edu> wrote:
Noted. I've added this to the list of things to do for ChimeraX
(formerly known as Chimera2).
-- Greg
On 11/12/2015 02:21 PM, Oliver Clarke
wrote:
Relating to this, I wonder whether it is possible to find a
home for attributes calculated in Chimera 2 in one of the
mmCIF fields?
I mean that's the advantage of mmCIF in theory right, that it
is extensible and can support attributes beyond just position
and B-factor?
This would make transferring custom defined or calculated
attributes between different chimera sessions much easier I
think, if they were inherent to the file containing the
coordinates, and again would at least allow for the
possibility of data exchange with other programs.
Oliver.