Opened 8 years ago
Closed 5 years ago
#872 closed enhancement (fixed)
Add chirality property to atoms
Reported by: | Tristan Croll | Owned by: | Eric Pettersen |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Structure Analysis | Version: | |
Keywords: | Cc: | Greg Couch | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
Apologies if this already exists, but I can't find anything in the documentation or in the Atoms API. Chemical Components Dictionary residue entries include the field _chem_comp_atom.pdbx_stereo_config (http://mmcif.wwpdb.org/dictionaries/mmcif_pdbx.dic/Items/_chem_comp_atom.pdbx_stereo_config.html) to mark chiral centres. It would be great if this could be carried through to ChimeraX's atom properties. Incorrect chirality is not that uncommon (especially in older structures, and particularly in sugars) so it's important to be able to check all chiral centres. Also, standard MD forcefields make no attempt to explicitly restrain chirality, relying on a good starting geometry and a high energy barrier to prevent flipping. That's not really good enough for my purposes - I'm going to need to add chirality restraints (which isn't actually particularly hard, once I have an easy way of getting the list of centres and their expected states).
Change History (9)
comment:1 by , 8 years ago
Cc: | added |
---|---|
Status: | assigned → accepted |
comment:2 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
If the corresponding CCD template has been read (which it should if the structure is mmCIF), then r.ideal_chirality(atom_name) returns the chirality info (R/S/N).
follow-up: 3 comment:3 by , 7 years ago
Fantastic!! Should be able to have a good play with that next month.
comment:4 by , 7 years ago
I just cobbled together an API that seemed most natural to me, but if something else would work better for you then let me know and I'll try to improve it.
--Eric
follow-up: 5 comment:5 by , 7 years ago
Will do. Related question: is there a pre-existing tool in ChimeraX to work out the order of precedence around a chiral centre, or should I go ahead and implement my own?
follow-up: 6 comment:6 by , 7 years ago
No, there is not, and in the general case it is quite a hard problem. For the limited case of standard amino acid side chains, it is tractable. In Chimera 1 there is a chirality-determination function which works in all but the most difficult cases. It was implemented as a summer project by a student. —Eric
follow-up: 7 comment:7 by , 7 years ago
Hmm... for my purposes it may be sensible to just take the easy way out, and just set the targets based on the ideal coordinates from the CCD entry. Will consider.
comment:8 by , 5 years ago
Cc: | added; removed |
---|---|
Resolution: | fixed |
Status: | closed → reopened |
It's taken much (much!) longer for me to get to the point of properly applying this than I first envisioned, but I'm reopening to ask if atoms' chirality (i.e. _chem_comp_atom.pdbx_stereo_config
) could also be exposed more directly in 'TmplResidue' and/or 'TmplAtom'? Not urgent, but it will make things slightly easier to set up.
comment:9 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Okay, as of tomorrow chirality is available from a template Atom's chirality() method.
Okay, the general plan here is to put an 'ideal_chirality' map in the C++ Residue class (not instances) and have the mmCIF code populate it, and also make it available to Python. The map will be keyed on residue name, and the values will in turn be maps from atom name to chirality value.
--Eric