[Chimera-users] Problem in using BondRot
Eric Pettersen
pett at cgl.ucsf.edu
Tue Feb 11 17:12:53 PST 2014
I guess I didn't completely answer your question. If you want strict control over which side of the phi/psi moves, then you are going to have to set up the bond rotation yourself rather than use res.phi/res/psi. You do this by finding the bond you want to rotate and then using the BondRotMgr module:
from BondRotMgr import bondRotMgr
rot = bondRotMgr.rotationForBond(bond)
rot.anchorSide = anchor_atom
then you'll have to measure the current phi/psi (which you could get via res.phi/res.psi) and use:
rot.increment(angle_diff)
to get to the desired value. When you are completely done adjusting the bond rotation, call:
rot.destroy()
--Eric
On Feb 11, 2014, at 4:57 PM, Eric Pettersen <pett at cgl.ucsf.edu> wrote:
> Hi Amin,
> I'm not sure why you care which side moves, but by default the "smaller" side moves. So if the residue is near the N terminus then the N-terminal part will move, if it's near the C terminus then the C-terminal side will move. Unless these changes are relative to some other structure, it shouldn't matter which side "moves"; the resulting conformation is the same either way.
>
> --Eric
>
> Eric Pettersen
> UCSF Computer Graphics Lab
> http://www.cgl.ucsf.edu
>
>
> On Feb 8, 2014, at 8:33 PM, amin wrote:
>
>> Dear Dr. Pettersen and Dr. Meng,
>>
>> Thanks for the suggestion. I tried the simpler scripts and they work. But I am not sure that what atoms are moved when I set res.phi = -res.phi. The earlier script had set anchor residues to solve this problem. Can you please guide me on how to use anchor residues on newer versions of chimera?
>>
>> Warm Regards.
>>
>> Amin.
>>
>>
>> On 2014-02-09 07:44, Eric Pettersen wrote:
>>
>>> Hi Amin,
>>> As Elaine alluded to, the code for changing phi/psi is a lot simpler than what was necessary in 2005. In particular you can just assign a value to the phi or psi attribute to change it. Therefore in your script, the loop would just be:
>>>
>>> for res in mol.residues:
>>> if res.phi is not None:
>>> res.phi = -res.phi
>>>
>>> --Eric
>>>
>>> Eric Pettersen
>>> UCSF Computer Graphics Lab
>>>
>>> On Feb 8, 2014, at 11:03 AM, amin at imtech.res.in wrote:
>>>
>>>> Dear Chimera users,
>>>>
>>>> I am trying to write a script to change the phi and psi angle of a peptide. I am trying to adapt the code from http://plato.cgl.ucsf.edu/pipermail/chimera-users/2005-September/000456.html . I am trying to invert the angles so I am multiplying the angles by -1. My code is
>>>>
>>>> import chimera
>>>>
>>>> from chimera import selection, UserError, BondRot, replyobj
>>>>
>>>> opened = chimera.openModels.open('fun.pdb')
>>>> mol = opened[0]
>>>> RES_LIST = mol.residues
>>>> for res in mol.residues:
>>>> b = str(res.phi)
>>>> if b != 'None':
>>>> c = -1*float(b)
>>>> atomsMap = res.atomsMap
>>>> N = atomsMap['N'][0]
>>>> CA = atomsMap['CA'][0]
>>>> C = atomsMap['C'][0]
>>>> CAmap = CA.bondsMap
>>>> phiBond = CAmap[N]
>>>> psiBond = CAmap[C]
>>>> phiAnchor = N
>>>> psiAnchor = CA
>>>> phi = BondRot(phiBond)
>>>> phi.setAngle(c, phiAnchor)
>>>>
>>>> When I run this script i get the error
>>>>
>>>> phi.setAngle(c, phiAnchor)
>>>> AttributeError: '_molecule.BondRot' object has no attribute 'setAngle'
>>>>
>>>>
>>>> Can someone please help me with this?
>>>>
>>>> Warm regards.
>>>>
>>>> Amin.
>>>>
>>>>
>>>> _______________________________________________
>>>> Chimera-users mailing list
>>>> Chimera-users at cgl.ucsf.edu
>>>> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
>>
>>
>
> _______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20140211/fc9eae7f/attachment.html>
More information about the Chimera-users
mailing list