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 Eric Pettersen, 8 years ago

Cc: Eric Pettersen added
Status: assignedaccepted

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

comment:2 by Eric Pettersen, 7 years ago

Resolution: fixed
Status: acceptedclosed

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).

in reply to:  3 ; comment:3 by tic20@…, 7 years ago

Fantastic!! Should be able to have a good play with that next month.
 

 


comment:4 by Eric Pettersen, 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

in reply to:  5 ; comment:5 by tic20@…, 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?
 

 


in reply to:  6 ; comment:6 by Eric Pettersen, 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


in reply to:  7 ; comment:7 by tic20@…, 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 Tristan Croll, 5 years ago

Cc: Greg Couch added; Eric Pettersen removed
Resolution: fixed
Status: closedreopened

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 Eric Pettersen, 5 years ago

Resolution: fixed
Status: reopenedclosed

Okay, as of tomorrow chirality is available from a template Atom's chirality() method.

Note: See TracTickets for help on using tickets.