[Chimera-users] Circular DNA minimization
pett at cgl.ucsf.edu
Mon Jan 7 16:02:01 PST 2013
On Jan 7, 2013, at 10:10 AM, Damien Larivière wrote:
> Dear all,
> I'm still on this subject.
> I tested the command (minimize spec :275-276.E:7-8.F fragment true nsteps 0 cgsteps 1 interval 1) suggested by Conrad or Eric in their reply to the bug I submitted. It works well.
> I attach the original structure to be minimized by Chimera (Chimera_minimization.pdb). This structure poses various problems (too long O3'-P bonds for instance) and that's the reason why I want to minimize it.
> It is interesting to note that the four distorted base rings (275 and 276 chain E, 7 and 8 chain F) occured after the Steepest Descent steps. I attach the structure as it is after 100 Steepest Descent steps (Chimera_minimization_NoConjugate.pdb).
> For your information, the summary of my user experience in this specific case:
> - the Steepest descent phase repaired too long O3'-P bonds
> - the Steepest descent phase generated four distorted base rings
> - the command minimize spec :275-276.E:7-8.F fragment true nsteps 0 cgsteps 1 interval 1 (so just one step of conjugate gradient minimization) repaired the distorted rings. The structure at the end looks like stucturally correct.
With the before-minimization structure you provided, I cannot reproduce the ring distortion -- neither with 1.6.2 nor 1.8, and neither on Mac nor Windows 64. 100 steps of steepest descent with no conjugate gradient and default forcefield choices (99SB on 1.6.2; 12SB on 1.8) results in perfectly normal-looking rings in those residues. So if we can't reproduce it, the problem may not be possible for us to solve. We'll see what we can do.
> May you tell me how you identified these four distorted rings? thanks to a visual inspection of the base pairs one by one?
Well, if you're as familiar with Chimera as I am, you can use the Python layer to directly answer questions that no tool directly addresses. So when I noted that breaking the circularizing phosphate bridges allowed the minimization to proceed, with a big drop in energy but no noticeable movement of the newly-freed ends, I wondered what atoms had moved. Here's how I answered that question:
1) I used MatchMaker to superimpose the structure as best as possible. Since I knew which chains to match up, I used the "specific chain with specific chain" option in MatchMaker to match chain E with E and chain F with F.
2) I opened the IDLE Python interpreter (in Tools/General Controls) so I could interactively execute Python commands. In IDLE I:
2a) Fetched a list of atoms from both models:
atoms1, atoms2 = [m.atoms for m in chimera.openModels.list()]
2b) Since one structure had atoms the other didn't, I needed to set up some way of matching up the atoms in one structure to the corresponding atoms (if any) in the other structure. I made a lookup dictionary of the (residue ID + atom name) to atom for one structure's atoms, that I could later use on the other structure's atoms to determine the correspondences:
lookup = dict([((a.residue.id, a.name), a) for a in atoms1])
2c) Then I run through the atoms in the other structure, and for ones that correspond to atoms in the first structure I note the distance between the atoms:
dists = 
for a in atoms2:
key = (a.residue.id, a.name)
if key not in lookup:
Note that since the models have been moved by MatchMaker relative to each other, I need to use xformCoord(). Also, I put the distance first in the 2-tuple, since I know I will want to sort the list next, and sorting works on the first member of a tuple first, only using later parts of the tuple in the event of ties.
2d) Sort the distances.
2e) Since sorting is from smallest to largest, reverse the order.
Then I just examined the list. For instance, "print dists" showed me that the largest movement was ~0.4 angstroms. That seemed significant. "print dists[-1]" showed me it was one of the atoms in the four distorted residues. I went and looked at the residue and could immediately see that the distorted ring was the problem. To try to get a handle on how many large movements had occurred (which I arbitrarily decided was 0.2 angstroms) I executed this code:
len([a for d, a in dists if d > 0.2])
which told me there were 25 atoms that had moved that much. Since that wasn't an overwhelming number, I just printed them all:
for d, a in dists[:25]:
print d, a
I could see that they were all in those four residues. So that's how I found the problem residues.
> Many thanks
> On 04/01/2013 13:27, Damien Larivière wrote:
>> Dear all,
>> Many thanks for your help on this!
>> Just one comment about the Steepest Descent steps that did not modify anything (RMSD = 0 as Eric or Conrad said). In fact, the structure I uploaded had already been minimized with through 100 Steepest Descent steps. It resulted in the repairing of several too long O3'-P bonds and other structural deficiencies (but not the distorted base rings). This explains the RMSD equal to 0.
>> I have a question:
>> How did Eric or Conrad noticed that some rings were structurally deficient? I also observed these distortions but thanks to a visual inspection and, due to the size of the structure, by chance! One can use the ADIT server to know whether structural deficiencies subsist or not but this requires to make sense of a list of number. In other words, it is not said "your structure poses problem at the sugar rings at position 255 or at base ring at position 266". You were able to tell me that base rings in residues 275 and 276 of chain E and residues 7 and 8 of chain F were deficient: Is there a way in Chimera to notice that "directly" or this is just a matter of expertize?
>> I can't test the solution before Monday as I am away of my office. If I understand correctly:
>> - I have to remove the phosphate bridges in order the conjugate gradient phase to start?!
>> - I have to use the fragment option to accelerate the repair of known distorted rings thanks to the conjugate gradient steps?!
>> I wish all of you a very happy new year!
>> On 03/01/2013 23:04, Eric Pettersen wrote:
>>> Okay, the executive summary for those interested is that in a case like this where minimization gets "stuck" on a large structure you may have to minimize badly distorted parts of the structure separately first by using the "fragment" option of the minimize command (not the "freeze" option in the tool or command, which still uses the remainder of the structure in the calculation).
>>> On Jan 2, 2013, at 1:34 PM, Eric Pettersen wrote:
>>>> On Dec 29, 2012, at 7:40 AM, Damien Larivière wrote:
>>>>> Dear all,
>>>>> I'm currently minimizing a circular DNA molecule, relatively large (~11 000 atoms). I use "Minimizing structure" in Structure editing.
>>>>> The first phase, the Steepest Descent Steps, works fine.
>>>>> However, the second one, the Conjugate Gradient Steps, looks like blocked with the message "dock prep finished" at the bottom of the screen.
>>>>> If I remove one base pair so that the molecule is no more cyclized, then the second minimization stage starts as expected.
>>>>> I'm not versed in the art of minimization. Do you know the reason of this behavior?
>>>> Hi Damien,
>>>> I cannot reproduce this behavior. A small circular peptide (attached) minimizes fine with conjugate gradient. I need you to open a bug report (in Chimera, Help->Report A Bug) and attach the circular DNA structure. Thanks!
>>>> Eric Pettersen
>>>> UCSF Computer Graphics Lab
>>>> Chimera-users mailing list
>>>> Chimera-users at cgl.ucsf.edu
>>> Chimera-users mailing list
>>> Chimera-users at cgl.ucsf.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Chimera-users