Hello Junhui Peng--
> >
> >> Sorry that I have to mail to you for this problem. I am always denied
> >> by the xplor-nih server when subscribing to xplor-nih.
> > The subscribe link is currently disabled due to an ongoing denial of
> > service attack we've been experiencing. At this point, a new user
> > should simply write me directly to be added to the mailing list. I
> > have manually added you.
> >
> >> I am refining an x-ray structure against PRE restraints.
> >> Attached is my script file and an example violation file.
> >> Very strangely that the IMPR energy is very large. Following shows a
> >> strange violation.
> >>
> >> (atom-i |atom-j |atom-k |atom-L ) angle
> >> equil. delta energy const. period
> >> (A 1 HE1 |A 1 HE2 |A 1 SD |A 1 HE3 ) 68.429
> >> -66.000 -134.429 2752.380 500.000 0
> >>
> >>
> >> I have also test the script without PRE restraints with other
> >> starting structures. The same could happen very often. However for
> >> some cases this would not happen (For example GB1 NMR structure).
> > This is likely due to the fact that your input coordinates are
> > inconsistent with the Xplor-NIH improper definition of (in this case)
> > the epsilon methyls. You might try specifying fixMethylImpropers=True
> > to protocol.initCoords.
> >
> > best regards--
> > Charles
> >
> Thanks for adding me to the mailing list. The argument
> fixMethylImpropers=True in protocol.initCoords can help to fix
> Impropers that are related to methyl group. However, still strange
> violations can happen. Here are some examples from my violation file.
>
> (atom-i |atom-j |atom-k |atom-L ) angle
> equil. delta energy const. period
>
> ( 1 HB1 | 1 HB2 | 1 CA | 1 CG ) 70.745
> -70.874 -141.619 3054.703 500.000 0
Hmm. I don't often see this sort of problem with input
coordinates. You might try calling the attached function after
protocol.initCoords. Please let me know if this helps.
best regards--
Charles
def fixProtonImpropers(sel="all",verbose=False):
"""
Swap proton positions on methyls or methylenes such that improper
energies are lowered.
Swapped coordinates include any C, N or S bound to two or three protons.
"""
sel=convertToAtomSel(sel)
from atomSel import intersection, AtomSel
from xplorPot import XplorPot
simulation=sel.simulation()
impr=XplorPot("IMPR",simulation)
Eimpr=impr.calcEnergy()
for heavy in intersection(sel,AtomSel("name C* or name S* or name N*",
simulation)):
protons=AtomSel('''bondedto ATOM "%s" %d %s
and name H*''' %(heavy.segmentName(),
heavy.residueNum(),
heavy.atomName()),
simulation)
if len(protons)==2 or len(protons)==3:
coords=[atom.pos() for atom in protons]
protons[0].setPos(coords[1])
protons[1].setPos(coords[0])
new=impr.calcEnergy()
if new<Eimpr:
if verbose:
print "fixMethylImpropers: swapped %s and %s" % \
(protons[0].string(), protons[1].string())
Eimpr=new
else:
protons[0].setPos(coords[0])
protons[1].setPos(coords[1])
pass
pass
pass
return
_______________________________________________
Xplor-nih mailing list
[email protected]
https://dcb.cit.nih.gov/mailman/listinfo/xplor-nih