Xplor-NIH (frequently) Asked Questions
- I see errors like:
registerPythonRNG: could not find the random module generator
- How do I generate parameters for a small molecule?
- script to add-in atoms whose positions are initially unknown
- using the IVM (internal variable modules) for torsion angle dynamics and
more
- Radius of gyration potential term
- DELPHIC torsion database of phi-psi angles
- DELPHIC torsion database of phi-psi angles: potential definition.
- dipolar couplings: the definition of the coefficients
- dipolar couplings: how are force constants weighted between different
experiments
- Strange characters in output files or binary output files.
- Xplor-NIH for similar computers.
- What are random number seeds?
- why do I get the error: %ASSFIL-ERR: no free unit available?
- Why do I get the error %COPYST-ERR: ST2MAX too small. Check input file?
- Why do I get the error
cannot restore segment prot after reloc: Permission denied
- Are the new Intel-based Macs supported?
- Why doesn't Xplor-NIH run on fedora core 5?
- does Xplor-NIH support parallel computer architectures?
- How do I run Xplor-NIH on a cluster using the PBS queuing system?
1. I see errors like:
registerPythonRNG: could not find the random module generator
The problem is probably that gcc-3 is not installed. Either, install
gcc-3, or copy
ftp://dcb.cit.nih.gov/pub/schwitrs/libgcc_s.so.1
into the bin.Linux_2.4_i686 directory within the xplor-nih
distribution.
2. How do I generate parameters for a small molecule?
You might try the The Dundee PRODRG2 Server at
http://davapc1.bioch.dundee.ac.uk/programs/prodrg/
3. script to add-in atoms whose positions are initially unknown
Here's a script which adds unknown atoms given some known positions.
I'l send the resulting pdb file separately.
Charles
- --
Charles Schwieters email: Charles.Schwieters@nih.gov
www: http://schwieters.org/cds
phone: (301) 402-4914 FAX: (301) 402-2867
rtf @TOPPAR:topallhdg_new.pro end
evaluate ($kbbang = 500.0)
evaluate ($kbbimp = 500.0)
!
! building-on sidechains, given known bb atoms (from pdb file only).
!
! to use: change the line with input.pdb appropriately.
! Output will be in out.pdb
!
! set constraints to only calculate necessary interactions
! (don't calc bb-bb interactions)
! don't make the improper interactions too strong: will torque bonds, angles
!
! to try: turn off vwd entirely in stage1!
!
! script based on Nilges et.al. script for random starting coords
!
! CDS 7/8/02
!
param @TOPPAR:parallhdg_new.pro end
segment
name=" "
SETUP=TRUE
chain
LINK PEPP HEAD - * TAIL + PRO END { LINK to PRO }
LINK PEPT HEAD - * TAIL + * END
FIRSt PROP TAIL + PRO END { nter for PRO }
FIRSt NTER TAIL + * END
LAST CTER HEAD - * END
SET ECHO=TRUE END
coor @input.pdb
end
end
delete select (name hd1 and resname his) end
!remove all hydrogens!
delete select (hydro) end
write psf output=l.psf end
param
! @TOPPAR:parallhdg_new.pro
bond CP NH3 $kbon 1.473 ! CP - proline at N terminus
angle CP CP NH3 $kang 103.2 ! CP - proline at N terminus
angle HA CP NH3 $kang 109.5 ! CP - proline at N terminus
angle CT NH3 CP $kang 112.0 ! CP - proline at N terminus
improper HC HC CT CP 50.0 0 -70.0 ! N-term Pro
improper HA HA CP NH3 $kchi 0 -70.874 ! CP methylene
end
coor @indira.pdb
vector do (fbeta=10) (not known) {*Friction coefficient for MD heatbath.*}
vector do (mass=100) (not known) {*Uniform heavy masses to speed*}
vector do (fbeta=0) (known) {*Friction coefficient for MD heatbath.*}
vector do (mass=0) (known) {*Uniform heavy masses to speed*}
{*molecular dynamics. *}
constraints fix (known) end
vector do (vx = 0) (known)
vector do (vy = 0) (known)
vector do (vz = 0) (known)
evaluate ($init_t = 1000 ) {* Initial simulated annealing temperature.*}
vector do (vx = maxwell($init_t)) (attr mass>0)
vector do (vy = maxwell($init_t)) (attr mass>0)
vector do (vz = maxwell($init_t)) (attr mass>0)
vector do (x=(random()-0.5)*20) (attr mass>0)
vector do (y=(random()-0.5)*20) (attr mass>0)
vector do (z=(random()-0.5)*20) (attr mass>0)
!try bonds first
flags exclude * include bond end
constraints
interaction (attr mass>0) (attr mass=0)
interaction (attr mass>0) (attr mass>0)
end
!mini powell
! drop=1e5
! nprint=1
! tolg=1e-5
! nstep=1000
!end
flags exclude * include bond angle dihe cdihe impr vdw end
!energy end
!mini powell
! drop=1e5
! nprint=1
! tolg=1e-5
! nstep=1000
!end
evaluate ($kbon = 0.00005 ) {* Bonds. *}
evaluate ($kang = 0.00005 ) {* Angles. *}
evaluate ($timestep = 0.04)
evaluate ($nstep = 100)
!constraints
! interaction (all) (all)
! weights bond $kbon angl $kang impr $kimp vdw 0 elec 0 end
!end
!dynamics verlet
! nstep=5000 timestep=$timestep iasvel=current
! tcoupling=true tbath=$init_t nprint=50 iprfrq=0
!end
while ($kbon < 0.01) loop stage1
evaluate ($kbon = min(0.25, $kbon * 1.25))
evaluate ($kang = $kbon)
evaluate ($kimp = $kbon/10)
noe scale * $knoe end
!restraints dihed scale 0. end
constraints
interaction (attr mass>0) (attr mass=0)
weights bond $kbon angl $kang impr $kimp vdw 5e-4 elec 0 end
interaction (attr mass>0) (attr mass>0)
weights bond $kbon angl $kang impr $kimp vdw 5e-4 elec 0 end
end
dynamics verlet
nstep=$nstep timestep=$timestep iasvel=current
tcoupling=true tbath=$init_t nprint=50 iprfrq=0
end
end loop stage1
parameter {* Parameters for the repulsive energy term. *}
nbonds
repel=0.9 {* Initial value for repel - modified later. *}
nbxmod=-3 {* Initial value for nbxmod - modified later. *}
wmin=0.01
cutnb=4.5 ctonnb=2.99 ctofnb=3.
tolerance=0.5
end
end
! add vdw and slowly increase its weight
parameter nbonds
atom cutnb 100 tolerance 45 repel=1.2
rexp=2 irexp=2 rcon=1.0 nbxmod 4
end end
flags exclude * include bond angle impr dihe cdihe vdw end
constraints
interaction (attr mass>0) (attr mass=0)
weights bond $kbon angl $kang impr $kimp vdw 0.002 elec 0 end
interaction (attr mass>0) (attr mass>0)
weights bond $kbon angl $kang impr $kimp vdw 0.002 elec 0 end
end
dynamics verlet
nstep=500 timestep=$timestep iasvel=current
tcoupling=true tbath=$init_t nprint=50 iprfrq=0
end
constraints
interaction (attr mass>0) (attr mass=0)
weights bond $kbon angl $kang impr $kimp vdw 0.005 elec 0 end
interaction (attr mass>0) (attr mass>0)
weights bond $kbon angl $kang impr $kimp vdw 0.005 elec 0 end
end
dynamics verlet
nstep=500 timestep=$timestep iasvel=current
tcoupling=true tbath=$init_t nprint=50 iprfrq=0
end
constraints
interaction (attr mass>0) (attr mass=0)
weights bond $kbon angl $kang impr $kimp vdw 0.01 elec 0 end
interaction (attr mass>0) (attr mass>0)
weights bond $kbon angl $kang impr $kimp vdw 0.01 elec 0 end
end
dynamics verlet
nstep=500 timestep=$timestep iasvel=current
tcoupling=true tbath=$init_t nprint=50 iprfrq=0
end
constraints
interaction (attr mass>0) (attr mass=0)
weights bond $kbon angl $kang impr $kimp vdw 0.5 elec 0 end
interaction (attr mass>0) (attr mass>0)
weights bond $kbon angl $kang impr $kimp vdw 0.5 elec 0 end
end
dynamics verlet
nstep=500 timestep=$timestep iasvel=current
tcoupling=true tbath=$init_t nprint=50 iprfrq=0
end
!flags exclude * include bond angle end
energy end
mini powell
drop=100
nprint=1
tolg=1e-5
nstep=10000
end
constraints
interaction (attr mass>0) (attr mass=0)
weights bond $kbon angl $kang impr $kimp vdw 0.1 elec 0 end
interaction (attr mass>0) (attr mass>0)
weights bond $kbon angl $kang impr $kimp vdw 0.1 elec 0 end
end
mini powell
drop=100
nprint=1
tolg=1e-5
nstep=10000
end
write coord output=out.pdb end
stop
4. using the IVM (internal variable modules) for torsion angle dynamics and
more
so far I have been using standard XPLOR protocols in XPLOR-NIH. I'd like
to try the torsion angle dynamics, but have little idea of parameter
settings. Would you have an example script, such as that described in
Schwieters and Clore (2001) J. Magn. Reson., 152, 288-302, for protein
G?
Please contact Charles@Schwieters.org for that exact script. Examples of
using the IVM can be found in multiple scripts located in the eginput
directory of the Xplor-NIH distribution. In particular, see
eginput/protG/anneal.inp
5. Radius of gyration potential term
Using the radius of gyration restraint is similar to using an
experimental term.
First, you need to set up the restraint, and then you have to turn on
its flag.
To set up the restraint, use the COLLapse statement at the top of your
script, near where you read in the NOEs:
collapse
assign (aSelection) 100.0 aTargetValue
scale 1.0
end
To turn it on, include COLL in your flags statement:
flags exclude * include bond angle improper ... noe coll end
You need to keep in mind a few things in order to set up the restraint
properly:
1. The selections should not include any flexible regions.
2. The target value (in Angstroms) should be (2.2 * Nresidues^0.38) - 1
where Nresidues is the number of residues in the selection.
3. For anisotropic structures, you need to divide up your structure
into several roughly spherical pieces and create a separate COLLapse
ASSIgn
statement for each.
Other than those caveats, the Rgyr restraint is relatively
bulletproof--it's
not particularly sensitive to the force constant or whatever. And it
doesn't
affect sampling or convergence.
6. DELPHIC torsion database of phi-psi angles
Hi Dr. Lecomte,
Thanks for your email.
The "raw" DELPHIC torsions code you're trying to use has been deprecated,
in favor of using fitted Gaussians.
To use the "raw" DELPHIC torsions, you'll need to change all your
RAMA commands to XRAM. This includes every call to RAMA inside
of the setup_longrange_4D_new.tbl script.
Sorry for the incompatability--we're still cleaning up all the old code and
examples.
Note that you're almost certainly better off using the stuff in
databases/torsions_gaussians or databases/torsions_quarts, since those
approaches give *much* smoother forces on the atoms. See
J Magn Resn 146 (2): 249-254 Oct 2000 .
Please let us know if you find any more problems!
--John Kuszewski
John--
maybe you could better deal with this one.
Charles
------- Start of forwarded message ------- >From schwitrs Wed Jun
19 21:08:26 2002 Envelope-to: schwitrs@localhost Delivery-date:
Wed, 19 Jun 2002 21:08:26 -0400 X-Sender: jtl1@email.psu.edu Date:
Wed, 19 Jun 2002 20:58:51 -0400 X-PH: V4.4@itchy2.cit.nih.gov To:
Charles.Schwieters@nih.gov From: Juliette Lecomte
Subject: a question about xplor-nih Content-Type: text/plain;
charset="us-ascii"; format=flowed
Dear Dr. Schwieters,
I am interested in using the xplor-nih.1.2.1 for its database
capabilities. I have downloaded the software and started
calculations with a small protein. I am running into a problem,
and I was wondering if you could help.
When executing setup_longrange_4D_new.tbl, I get the following
error message in the identification of the
nonturn_nonturn_nonturningap_phi_psi_phi_psi_p4: The N-end residue
is understood but in the second pass, once atoms need to be
assigned, only four atoms are recognized. After these four, the
prompts returns to "RAMA" from "SELRPN". From then on, the (segid
... etc.) command part of the assignment is not recognized and
the program bombs because of the large number of parsing errors.
I have looked for extraneous "end" commands etc, but have found
nothing that seems inappropriate. Different protein sequences
bomb at the same stage of the setup.
Have you come across this problem? I would be grateful for any
help that you might provide.
Kind regards,
Juliette Lecomte ------- End of forwarded message -------
-- Charles Schwieters email: Charles.Schwieters@nih.gov
www: http://schwieters.org/cds phone:
(301) 402-4914 FAX: (301) 402-2867
--
7. DELPHIC torsion database of phi-psi angles: potential definition.
> calculations is negative. According with the original article E is
> defined as
> - - -k*log(Pi) where Pi is the probability, that I think should be
> between 0 and
> 1, so I don't understand how E can be negative. Do you know?
> Thanks again,
> Hugo
The formulation for the DELPHIC torsion and DELPHIC position terms'
potentials of mean force is
E = -ln Pi, where Pi is the probability of being in bin i.
Pi is now defined as (nExamples(i) / volume(i)) / overallDensity.
This change was necessitated by some of the averaging I do to get a
defined potential energy
in unpopulated regions. If there are no examples in a particular bin,
I start including that bin's
neighbors along each axis until I reach a certain minimum number of
examples. Then I divide
by the total volume of the bins I just searched to get a "local
density." In order for the units to
work out correctly, I need to divide this local density by the overall
density (totExamples / totVolume).
The upshot is that regions of space that have greater-than-average
density of examples now have
negative energies, and regions with less-than-average density of
examples now have positive energies.
8. dipolar couplings: the definition of the coefficients
>
> Could you tell me what the exact meaning of the coefficients in SANI are?
> I am confused about third coefficient which you call "rhombicity". Is this
> "R" which is "Ar/Aa", or "Ar" itself?
>
this should answer your question: The SANI COEFficient statement takes
three arguments:
COEFficient
where the three real values are DFS, anisotropy, rhombicity. Their
meaning becomes clear in the expression for the dipolar coupling shift:
DFS + anisotropy*( (3*cos(theta)^2-1)+
rhombicity*(3/2)*sin(theta)^2*cos(2*phi) )
[note carefully the parentheses.]
9. dipolar couplings: how are force constants weighted between different
experiments
> We are trying to incorporate multiple dipolar coupling constraints into our
> structure calculations using xplor-nih. We have a sample input file for
> xplor-nih that has a few force constants (CACO, NCO, HNC, CH) that appear to
> be scaled relative to the N,NH force constant (for example, $k_sani_CACO =
> 0.035*$ksani), but we are unclear about where these force constant estimates
> come from, and how to estimate the missing ones (in particular, HNCA). Any
> help in this regard would be most appreciated.
>
The force constants are based on the measurement error, and in the
example you ask about, the dipolar couplings are all normalized
relative to NH (which makes it easier to estimate the appropriate
force constants).
e.g. let us say the measurement error for the NH dipolar couplings is 1 Hz,
then the final force constant should be around 1.
Let us say that the error for the NC' coupling is around 0.5 Hz. The NC'
couplings are 8.33 times smaller than the NH ones
(from the bond lengths and gyromagnetic ratios), so when normalize to the NH
couplings (by multiplying their values by 8.33) the error would be around 4
Hz. Since we minimize the square of the difference between observed and
calculated, this would translate into a force constant that should be 1/16
that use for the NH couplings.
10. Strange characters in output files or binary output files.
question:
> I then ran the xplor and the .out, .pdb, and .psf files were
> generated. I can view my protein in the vmd-xplor (.pdb). The only
> problem is that when I try to see these files in a text editor this is
> the message that I receive:
>
> [binary file or file with \000 character]
It's probably due to bogus characters Xplor-NIH prints when it can't
determine your username. This will be fixed in the next release. Until
then you might fix your files using the following command:
perl -i -pe 's/\000//g' file
11. Xplor-NIH for similar computers.
If you think that Xplor-NIH should run on your computer, but it gives
a message like: xplor not configured for platform: $ARCH
Try adding a line to the file arch/equivList of the form
OARCH ARCH
where OARCH is the architecture string given in the distribution and
ARCH is the string which Xplor-NIH claims is not supported.
12. What are random number seeds?
> I have a quick question to ask you about the random number
> generation SEED in XPLOR-NIH. The scripts supplied in the eginputs use
> either $seed=778, or $seed=65748309 for the initial velocities. Are
> these differences related to the architecture of the computer used for
> calculations? I'm running Mandrake 9.0 linux, and have had to adjust
> things like the maximum for random number generation in other types of
> programs (I typically use values for this of 2144563822.0), and use
> seed values of say 82364 (which is actually what I use for CNS
> calculations).
The exact value of the seed shouldn't matter too much- but it
shouldn't be too large- because the XPLOR interface stores the seed as
a floating point number, strange things happen it the seed gets larger
than about 10^8.
> Will altering the SEED change things much? Or will it
> just produce a slightly different set of results.
The value of the seed controls the exact sequence of pseudo-random
numbers used for things like setting initial random velocities. Thus,
changing the seed will change the details of a particular
structure. However, the set of final structures should be relatively
insensitive to the seed value. If the set of results does depend
sensitively on seed, it usually means that the optimization protocol
needs some further work.
13. why do I get the error: %ASSFIL-ERR: no free unit available?
You are probably redirecting print or display output to a file. When
you do this, and you also want some output to come out stdout, you
must perform two steps: close the file, and redirect output to
OUTPUT. Here's an example:
set print=noe.out end
print noe thresh=0.5 end
close noe.out end
set print=OUTPUT end
If you do not both close the file and redirect output back to stdout,
you will run out of files if you run many structures.
Another effect of not redirecting print or display output back to
OUTPUT is that subsequent output to stdout will not occur. Rather the
data will be written to a file named fort.# (the filename is system
dependent).
14. Why do I get the error %COPYST-ERR: ST2MAX too small. Check input file?
This is usually due to lines which are too long. The maximum line
length in the XPLOR interface of Xplor-NIH is 132 characters. You can
work around the error by inserting carriage returns in the offending
line, such that it is no longer too long.
15. Why do I get the error
cannot restore segment prot after reloc: Permission denied
This is due to a conflict with Security Enhanced Linux (SELinux) as
configured in some distributions. You can get Xplor-NIH running in one
of two ways:
* Change the default security context for Xplor-NIH by issuing the command:
find . -name \*.so -exec chcon -t texrel_shlib_t {} \;
in the top level Xplor-NIH directory.
or
* Disable SELinux altogether by setting the line
SELINUX=disabled
in your /etc/sysconfig/selinux file. Then reboot.
16. Are the new Intel-based Macs supported?
Not yet. We expect to have this working in the fall of 2006.
17. Why doesn't Xplor-NIH run on fedora core 5?
Applies for Xplor-NIH versions prior to 2.15:
This can be worked around by editing bin/xplor.in in the distribution
directory and removing the following lines:
if [ $arch = "Linux_2.4_i686" ]; then
#
# kludge for Redhat kernels with back-ported thread library.
#
LD_ASSUME_KERNEL="2.4.19"
exported="$exported LD_ASSUME_KERNEL"
fi
This workaround also seems to help for newer versions of the Suse, and
Gentoo distributions.
18. does Xplor-NIH support parallel computer architectures?
Scripts generating multiple structures can be conveniently
parallelized using the -parallel command-line switch. An example of
this use is shown on page 43 of the slides at
http://nmr.cit.nih.gov/xplor-nih/nih/class08Dec2006.pdf
Also, shared memory parallelism can be employed when performing
refinement on an ensemble of structures. Please enquire for more
details.
Please see http://nmr.cit.nih.gov/xplor-nih/parallel.txt (or
parallel.txt in the Xplor-NIH distribution directory) for details.
19. How do I run Xplor-NIH on a cluster using the PBS queuing system?
An example PBS script can be found at
http://nmr.cit.nih.gov/xplor-nih/nih/xplor.pbs