Opened 6 years ago
Closed 5 years ago
#2720 closed enhancement (fixed)
RFE: selector or attribute for standard residues with missing atoms
Reported by: | Elaine Meng | Owned by: | pett |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Structure Analysis | Version: | |
Keywords: | Cc: | Tristan Croll | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
It would be useful to be able to quickly identify truncated residues (any standard residues with missing heavy atoms), such as by selection with a selector or an attribute.
Change History (6)
comment:1 by , 6 years ago
Cc: | added |
---|
comment:2 by , 6 years ago
Status: | assigned → accepted |
---|
comment:3 by , 5 years ago
Status: | accepted → feedback |
---|
Okay, in no way is any of this final, but I'm putting it out there for testing and feedback. There is now a "std-res-missing-heavies" selector whose name is somewhat misleading in that it selects standard residues whose heavy atoms don't match their template, which means it also selects residues with extra atoms (e.g. 5' nucleic acids with phosphate groups). It only checks residues that ChimeraX has builtin templates for.
follow-up: 5 comment:5 by , 5 years ago
Happy to have a selector but don't like the name. Maybe "template-mismatch" or "template-discordant" instead? Those aren't great either, but "std-res-missing-heavies" is no more mnemonic, and as you said, slightly inaccurate.
comment:6 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | feedback → closed |
Though I like the fact that the original name indicates that only heavy atoms in standard residues are checked, there is definitely a tradeoff between precise description and something that is mnemonic and easy to type, so I have changed the name to "template-mismatch".
Absolutely agree - I've been meaning to add a tool for this to ISOLDE for ages. I have the beginnings of an implementation at https://github.com/tristanic/isolde/blob/master/isolde/src/atomic/template_utils.py... feel free to use any of it if it's useful. Isn't yet in active use by any of my other code, but it does at least some of the basics:
find_incorrect_residues()
checks that the set of atom names in the residue matches those in the CCD template. Allows for common terminal peptide and NA modifications, but will give false positives where the residue is covalently modified.find_maximal_isomorphous_fragment()
uses NetworkX to find the biggest contiguous fragment in common between a residue and its template, andfix_residue_from_template()
uses this to fill in the blanks in a truncated residue and rename hydrogens to match the template. This one's still a work in progress - does a nice job on the average non-covalent ligand, but adds spurious atoms where the residue is covalently bound/part of a chain. Also doesn't fix acid/base protonation states yet. Also treats metal bonds as covalent rather than pseudobonds (which is useful for ISOLDE, since that's how the AMBER forcefield expects them to be).