Structure calculation using manually assigned NOESY peak lists
This calculation shows how to calculate a structure from previously assigned NOESY peak lists. The input data are in the subdirectory ‘manual’ of the demo data zip archive:
- amino acid sequence
- peak list from 3D 13C-resolved NOESY spectrum
- peak list from 3D 15N-resolved NOESY spectrum
- peak list from 3D aromatic 13C-resolved NOESY spectrum
- 1H, 13C, and 15N chemical shift list
- dihedral angle restraints
- initialization macro
- macro for the structure calculation
The structure calculation is performed by the commands in the macro file CALC.cya:
name := demo peaks := c13,n15,aro # names of peak list(s) prot := $name # names of proton list(s) tolerance := 0.040,0.030,0.45 # shift tolerances: H, H', C/N', C/N calibration:= 6.7E5,8.2E5,8.0E4 # calibration constants, automatic if empty dref := 4.2 # average distance limit for automatic calibration if (master) then # execute the following commands only on master node # ---- check consistency of peak and chemical shift lists---- peakcheck peaks=$peaks prot=$prot # check consistency of peak and shift assignments # ---- calibration ---- calibration prot=$prot peaks=$peaks constant=$val('calibration') dref=$dref # calibrate NOEs peaks calibrate "**" simple # convert calibrated NOEs into distance restraints write upl $name-in.upl # write initial upper distance limit file distance modify # remove irrelevant restraints, apply pseudoatom corrections write upl $name.upl # write upper distance limit file end if synchronize # wait until all parallel processes have arrived here # ---- structure calculation ---- read seq $name.seq # re-read sequence to initialize read upl $name.upl # read upper distance limits read aco $name.aco # read angle restraints seed=5671 # set random number generator seed calc_all structures=100 command=anneal steps=10000 # calculate conformers overview $name.ovw structures=20 pdb # write overview file and coordinates
First several variables are set: The variable name is used to define the name of various input and output files. The variable peaks gives the names of the input peak lists, separated by commas without intervening blanks. The variable prot gives the name(s) of the input chemical shift list(s). If a single name is given as in the example, it specifies that a single chemical shift list file with this name will be used for all peak lists. Alternatively, it is possible to specify a separate chemical shift list for each peak list as a comma-separated list of file names. The variable tolerance specifies the tolerances for the matching of chemical shifts, and is used only for the consistency check. The calibration constants for the peak lists can be given by the variable calibration as a comma-separated list of values in the order of the peak list names given by the variable peaks. If the variable calibration is not given, the calibration parameters are determined automatically such that the median of the upper distance limits for each peak list equals the value of the variable dref. The variable dref can have a single value that applies to all peak lists, or separate values for each peak list. This variable is not used when the calibration constants are given explicitly by the variable calibration.
The calibration part, which is executed only by the master process if the program is executed in parallel, starts with a consistency check of the peak lists and the chemical shift list(s) by the peakcheck command, followed by the actual calibration, i.e. the conversion of peak volumes (or intensities) to upper bounds for 1H-1H distances.
Finally, the sequence and the conformational restraints are read and 100 conformers are calculated using the standard simulated annealing schedule with 10000 torsion angle dynamics steps per conformer. Finally, the 20 conformers with the lowest final target function values are analyzed. An overview table of these 20 best conformers is saved in the file demo.ovw, and their coordinates are written to the PDB file demo.pdb.