Opened 6 years ago

Closed 6 years ago

#2368 closed enhancement (fixed)

Handling missing structure pseudobonds when editing chains

Reported by: Tristan Croll Owned by: pett
Priority: major Milestone:
Component: Structure Editing Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

More of a query than anything else: when adding a residue to a chain to partially or completely fill a chain break, is the expectation that the editing code should also handle deleting and replacing the missing structure pseudobond? Or is this something that the core structure code should do automagically?

Change History (9)

comment:1 by pett, 6 years ago

Status: assignedaccepted

Right this second, you would have to handle it yourself -- but since missing-structure pseudobonds are automagically created for structure deletions, they should also probably be automagically adjusted/removed for structure addition.

comment:2 by pett, 6 years ago

Resolution: fixed
Status: acceptedclosed

I believe missing-structure pseudo bonds adjust accordingly now.

in reply to:  3 ; comment:3 by Tristan Croll, 6 years ago

This isn't quite working correctly. If I create a chain break by 
deleting some intra-chain residues, then add a residue to the new 
dangling carboxyl, the pseudobond shifts to link the *nitrogen* on the 
new residue to the nitrogen at the other end of the break. Similarly, if 
I add a residue to the dangling nitrogen, the new pseudobond goes from C 
to C.

On 2019-10-19 01:34, ChimeraX wrote:

comment:4 by pett, 6 years ago

Resolution: fixed
Status: closedreopened

Needs to be smarter about more than a single atom/bond being added in at once.

comment:5 by pett, 6 years ago

Status: reopenedfeedback

Okay, I have committed a fix for this that compiles. It's hard for me to generate a test case for this, so I'm depending on you to be my guinea pig. :-) Let me know if it works.

--Eric

in reply to:  6 ; comment:6 by Tristan Croll, 6 years ago

Will try tomorrow... but if you have the latest ISOLDE installed:

from chimerax.isolde.atomic.building.build_utils import 
add_amino_acid_residue

add_amino_acid_residue(model, 'ALA', 
prev_res=selected_residues(session)[0])

or

add_amino_acid_residue(model, 'ALA', 
next_res=selected_residues(session)[0])

It's a bit (OK, OK, *very*) rough-and-ready with the positioning right 
now, but it works.

On 2019-10-28 20:56, ChimeraX wrote:

comment:7 by pett, 6 years ago

I'm going to let you test it. However, if it doesn't work then I will test subsequent fixes myself using your guidelines.

--Eric

in reply to:  8 ; comment:8 by Tristan Croll, 6 years ago

Sorry for being a bit slow to test this, but I'm afraid it's still not 
right. Now if I do the following with a dangling peptide nitrogen 
selected:

from chimerax.isolde.atomic.building.build_utils import 
add_amino_acid_residue
from chimerax.atomic import selected_residues
m = session.isolde.selected_model
add_amino_acid_residue(m, 'ALA', next_res=selected_residues(session)[0])

... then the pseudobond ends up attached to the HA atom.

Building from the other end (i.e. with a peptide carbon selected):

add_amino_acid_residue(m, 'ALA', prev_res=selected_residues(session)[0])

... seems to be fine (the pseudobond attaches to the new carbon).

On 2019-10-28 21:18, ChimeraX wrote:

comment:9 by pett, 6 years ago

Resolution: fixed
Status: feedbackclosed

No problem -- we all have things to do. Committed a fix for the problem. Hydrogens attached to minimal-backbone heavy atoms were inadvertently being considered part of the minimal backbone. Now they aren't. That should fix it.

--Eric

Note: See TracTickets for help on using tickets.