Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Content

  • 1 CYANA setup
  • 2 Automated resonance assignment
    • 2.1 Experimental input data
      • 2.1.1 SPECTRUM definitions in the CYANA library
    • 2.2 Exercise 1: Determine the spectrum type
    • 2.3 Exercise 2: Run FLYA
      • 2.3.1 Execution scripts or "macros" in CYANA
      • 2.3.2 The init macro
      • 2.3.3 The FLYA CALC macro
    • 2.4 FLYA output files
      • 2.4.1 The flya.txt file
      • 2.4.2 The flya.tab file
      • 2.4.3 The flya.pdf file
    • 2.5 Exercise 3: Analyze the FLYA results
  • 3 Using Talos to generate torsion angle restraints
    • 3.1 Exercise 4: Calculate backbone torsion angle restraints using Talos
  • 4 Automated NOESY assignment and structure calculation
    • 4.1 Exercise 5: Run noeassign
      • 4.1.1 The noeassign CALC macro
  • 5 Creating the ligand library file for CYANA
    • 5.1 Exercise 6: Drawing the molecule and obtaining the SMILES code
    • 5.2 Exercise 7: Converting the SMILES code to mol2
    • 5.3 Exercise 8: Converting the mol2 file to a lib file for CYANA
    • 5.4 Alternative Exercise 6-8: Converting a pdb file to a lib file for CYANA
  • 6 Calculating the structure of the protein-ligand complex
    • 6.1 Exercise 9: (Semi-automatic) Intermolecular cross peaks assignment and structure calculation
  • 7 Comparing the calculated NMR structure to an XRAY reference structure
    • 7.1 Exercise 10: Compare the NMR structure to the Xray structure
    • 7.2 Exercise 11: Preparing an xray structure to use within CYANA
    • 7.3 Exercise 12: Calclulate the RMSD of NMR vs. xray structure using a CYANA macro
  • 8 Beyond The Basics: Improving the final structure
    • 8.1 FLYA options
    • 8.2 neoassign options
    • 8.3 Exercise 13: Mapping restraints onto a known structure
    • 8.4 Exercise 14: Work on improving the final structure

CYANA setup 

Please follow the following steps carefully (exact Linux commands are given below; you may copy them to a terminal):

  1. Go to your home directory (or data directory).
  2. Get the data for the practical from the server (data.zip).
  3. Unpack the input data for the practical.
  4. Get the demo version of CYANA for this practical.
  5. Unpack CYANA.
  6. Setup the CYANA environment variables.
  7. Change into the newly created directory 'data'.
  8. Copy the demo_data directory to 'flyabb'.
  9. Change into the subdirectory 'flyabb'.
  10. Test whether CYANA can be started by typing its name, 'cyana'.
  11. Exit from CYANA by typing 'q' or 'quit'.
  12. Download Chimera (to your personal laptop) from: Chimera
  13. Download Avogadro (to your personal laptop) from: Avogadro
cd ~
cp /home/julien/data.zip .
tar zxf data.zip 

wget 'http://www.cyana.org/wiki/images/6/64/Cyana-3.98bin-180213Demo.tgz'
tar zxf Cyana-3.98bin-180213Demo.tgz
cd cyana-3.98/
./setup

cd ~

cd data
cp -r demo_data flyabb 
cd flyabb

cyana
___________________________________________________________________

CYANA 3.98 (mac-intel)

Copyright (c) 2002-17 Peter Guentert. All rights reserved.
___________________________________________________________________

    Demo license valid for specific sequences until 2018-12-31

    Library file "/Users/deans/cyana-3.98/lib/cyana.lib" read, 41 residue types.
*** ERROR: Illegal residue name "LIG".
*** ERROR: Cannot read line 114:
           LIG  333
cyana> q

CYANA setup 

Please follow the following steps carefully (exact Linux commands are given below; you may copy them to a terminal):

  1. Go to your home directory (or data directory).
  2. Get the data for the practical from the server (data.zip).
  3. Unpack the input data for the practical.
  4. Get the demo version of CYANA for this practical.
  5. Unpack CYANA.
  6. Setup the CYANA environment variables.
  7. Change into the newly created directory 'data'.
  8. Copy the demo_data directory to 'flyabb'.
  9. Change into the subdirectory 'flyabb'.
  10. Test whether CYANA can be started by typing its name, 'cyana'.
  11. Exit from CYANA by typing 'q' or 'quit'.
  12. Download Chimera (to your personal laptop) from: Chimera
  13. Download Avogadro (to your personal laptop) from: Avogadro
cd ~
cp /home/julien/data.zip .
tar zxf data.zip 

wget 'http://www.cyana.org/wiki/images/6/64/Cyana-3.98bin-180213Demo.tgz'
tar zxf Cyana-3.98bin-180213Demo.tgz
cd cyana-3.98/
./setup

cd ~

cd data
cp -r demo_data flyabb 
cd flyabb


cyana
___________________________________________________________________

CYANA 3.98 (mac-intel)

Copyright (c) 2002-17 Peter Guentert. All rights reserved.
___________________________________________________________________

    Demo license valid for specific sequences until 2018-12-31

    Library file "/Users/deans/cyana-3.98/lib/cyana.lib" read, 41 residue types.
*** ERROR: Illegal residue name "LIG".
*** ERROR: Cannot read line 114:
           LIG  333
cyana> q

If all worked, you are If all worked, you are ready to go in terms of everything related to CYANA! The reason you see the ERROR message, is because you have a sequence file in the directory, but not a library file for the ligand yet. Don't worry, this is as expected and you will take care of it during the exercise.

...

peaks:= cnoesy.peaks,nnoesy.peaks,aro.peaks,intermol-NOEs.peaks 	
prot:= flya.prot                   		
restraints:= talos.aco                    		
tolerance:= 0.040,0.030,0.45            		
structures := 100,20                      		
steps:= 10000                       		
randomseed:= 434726   
write_peaks_names=.true.
assign_noartifact:="** list=intermol-NOEs.peaks"
noeassign peaks=$peaks prot=$prot keep=all selectcombine="* - @LIG" autoaco

The command 'assign_noartifact' effectivly disables network anchoring tests for the ligand. Since the list supplied is cleaned and presumed artifact free, we are allowed to do this. We therby encourage the use of the intermolecular NOEs even if the support by other nearby NOEs is weak. The command 'write_peaks_names=.true.' ensures that the assigned peak list are written to file with the actual resonance names (this is not xeasy standard).

You can run the calculation again, commenting out (#) the 'assign_noartifact' command, and see the effect on the final structure.

'selectcombine' calls for testing for errors to be done different: Intermolecular peaks do not have to compete with intra protein peaks.

Run the calculation:

cyana -n 33 CALC.cya

Comparing the calculated NMR structure to an XRAY reference structure

Exercise 10: Compare the NMR structure to the Xray structure

Download (www.rcsb.org) the xray structure with ID: 5c5a

Use either a web-browser or the terminal:

wget 'https://files.rcsb.org/download/5c5a.pdb'

Using chimera it is possible to compare two structures, by overlaying and inspecting visually.

When you have your xray structure ready, load your calculated nmr structure and the xray structure in chimera.

Use to chimera specific commands to overlay the two structures and compare the structures visually.

Exercise 11: Preparing an X-ray structure to use within CYANA

Deposited structures often lack specific features. i.e. Xray structures usually lack proton coordinates.

Copy your noecc results to a new directory call regulabb, then delete all the previous, unnecessary output files to reduce clutter and have better oversight.

cp -r noecc regulabb
cd regulabb
rm *cycle* *.out *.job

After reading the sequence file, the pdb file can be read with the option unknown=warn or unknown=skip, this will then skip the parts of the molecule not specified in the sequence file.

read pdb xxxx.pdb unknown=warn

Other options to read pdb's:

read 5c5a.pdb unknown=warn hetatm new

where the option 'hetatm' allows for reading of coordinate labeled HETATM, rather than ATOM in the pdb. 'new' will read the sequence from the pdb.

To write back out pdb's and sequences:

write pdb XXX.pdb
write seq XXX.seq  

Inspect the pdb using chimera: Now, there are several issues besides HETATM, that make the comparison to the calculated NMR structure not possible within CYANA before you fix them. You may use a graphical text editor to fix them. In the end, you need to have a conformer of the complex ready to compare with the calculated NMR structure.

Best would be to practice the use of the 'regularize' command as well. This is however not really necessary in this particular case, since this xray structure contains proton coordinates. Using the regularize command one can get a structure calculated within CYANA that has these features but still is very close to the input structure of your choice.

Copy your 'LIG.lib' file and name it 'NUT.lib', in the 'NUT.lib' file change the residue name from LIG to NUT. The 'NUT.lib' file is necessary to read the original xray structure with ligand into CYANA.

Copy the 'demoLong.seq' file and name it 'demoLongEd.seq', in the 'demoLongEd.seq' file delete the linker residues.

Create an 'init.cya' macro with:

cyanalib
read lib LIG.lib append

Then create a 'CALC_reg.cya' macro with:

read lib NUT.lib append
read 5c5a.pdb unknown=warn hetatm new
write 5c5a_Ed.seq 
write 5c5a_Ed.pdb

#renumber and rename the ligand from 201 333, NUT to LIG
library rename "@NUT" residue=LIG
atoms select @LIG
atoms set residue=333

write 5c5a_renum.seq
write 5c5a_renum.pdb

#sequence with ligand but without linker
read demoLongEd.seq
read 5c5a_renum.pdb rigid unknown=warn

write XrayAChainRenum.pdb

initialize

read seq demoLong.seq
read pdb XrayAChainRenum.pdb unknown=warn

write pdb test.pdb

read pdb test.pdb
regularize steps=20000 link=LL keep

Execute the 'CALC_reg.cya' macro in the CYANA shell (or use only one processor, do not distribute the job):

cyana CALC_reg.cya

Exercise 12: Calclulate the RMSD of NMR vs. xray structure using a CYANA macro

Using the INCLAN language of CYANA (Writing and using INCLAN macros,Using INCLAN variables,Using INCLAN control statements) it is possible to write complex macros that interact with the FORTRAN code of CYANA. Reading internal variables and manipulating them to achieves custom task.

  • save the manually edited xray structure (exercise 11) or the the regularized xray structure (containing the ligand and called 'regula.pdb') as 'reg_xray.pdb' to use the macro below (or change the name in the macro accordingly).
  • what do you think about the RMSD, does the value make sense? Does the range make sense?

Below you find the commands for a macro (call it 'CALC_RMSD.cya') that will read the regularized xray structure and the calculated nmr structure, then calculating the rmsd of both the protein and ligand parts of the complex:

read demoLong.seq

rmsd range=15-111 structure=final.pdb reference=reg_xray.pdb

atom select "BACKBONE 15-111"
t=rmsdmean
j=rindex('333')
n=0
s=0.0
do i ifira(j) ifira(j+1)-1
  if (element(i).gt.1) then
    n=n+1
    s=s+displacement(i)
   end if
end do
print "RMSD of the LIG: ${s/n} ($n atoms)"

read pdb final.pdb
structure mean
write pdb mean.pdb

read pdb mean.pdb
read pdb reg_xray.pdb append

atom select "BACKBONE 15-111"
t=rmsdmean
atom select "WITHCOORDALL"
j=rindex('333')
n=0
s=0.0
do i ifira(j) ifira(j+1)-1
  if (element(i).gt.1.and.asel(i)) then
    n=n+1
    s=s+displacement(i)*2
  end if
end do
print "Displacement of the LIG (to ref xray): ${s/n} ($n atoms)"

Beyond The Basics: Improving the final structure

FLYA options

There are a variety of commands to modify FLYA runs to accommodate experimental labeling schemes or apply previous assignments etc...

Modify the chemical shift statistics used for assignment

Supply user-defined chemical shift statistics instead of standard BMRB statistics from library and replace the general statistics from 'cyana.lib' (CSTABLE).

  • average value and stddev from input chemical shift list 'shiftx.prot'
  • 'assigncs_sd:=bmrb' to use stddev from BMRB ('cyana.lib') instead of input chemical shift list
  • 'assigncs_sdfactor:=0.5' to scale BMRB stddev by given factor
shiftassign_statistics:=predicted.prot

...

Groups of atoms for which assignment statistics will be calculated and reported in the 'flya.txt' output file can be defined as:

analyzeassign_group := BB: N H CA CB C

In this case, the command defines a group called BB (a name that can be chosen freely) comprising the atoms N, H, CA, CB, C.

...

 shiftassign_reference:=manREF.prot

The same parameter may also be set as part of the flya command:

flya runs=10 assignpeaks=$peaks shiftreference=manREF.prot

...

Specific labeling can be handled and peak list-specific atom selections can be applied.

To restrict the generation of expected peaks to a subset of atoms, here the backbone atoms:

command select_atoms
  atom select "N H CA CB C"
end

...

  • specify with parameter 'structure' of the command 'flya'
  • if parameter 'structure' is absent, a set of random structures is generated automatically
  • if set to blank ('structure='), no random structures are generated (if not needed because only through-bond spectra are used)
flya runs=10 assignpeaks=$peaks structure=XXX.pdb

Experimental peaks may also be employed as expected peak lists:

  • command N15NOESY_expect, reading input peak list N15NOESY_in.peaks
N15NOESY_expect :=N15NOESY_in

...

To keep input peak assignments in user peak assignments:

  • (partially) assigned input peak list XXX.peaks
  • parameter 'keepassigned' for 'loadspectra.cya'
loadspectra_keepassigned:=.true.

To fix input chemical shift assignments contained in a prot file

To do this i.e for backbone atoms extracted from the manREF.prot list:

Make a list of only the reference backbone chemical shifts by entering the CYANA commands:

read manREF.prot
  atom set "* - H N CA CB C" shift=none
write fix.prot

The file 'fix.prot' will contain the reference chemical shifts only for the backbone (and CB) atoms H, N, CA, CB, C'. Now you can repeat the assignment calculation by inserting the 'shiftassign_fix:=fix.prot' statement in 'CALC.cya' and choosing only the input peak lists that are relevant for sidechain assignment:

shiftassign_fix:=fix.prot

...

  • increased population size with 'shiftassign_population=200'
  • see Schmidt et al. J. Biomol. NMR 57, 193-204 (2013)

...

Serves the fast automated chemical shift assignment and means the results in general are less accurate since either the populations are smaller, there are less parallel runs or the optimization schedule is modified.

In production runs, better results can be expected (at the expense of longer computation times) if these parameters are not set.

...

Fixed number of generations in evolutionary optimization:

shiftassign_population=25

The population size for the genetic algorithm, i.e. how many assignments form one generation (25; chosen smaller than in normal production runs in order to speed up the calculation).

There is also an option to choose the "quick" optimization schedule:

shiftassign_quick=.true.

And last the 'runs' option can be set for flya as we did in the exercise ('flya runs=10').

neoassign options

To learn more about noeassign consult the tutorial Structure calculation with automated NOESY assignment. Other options for neoassign are described here: CYANA_Macro:_noeassign

Exercise 13: Mapping restraints onto a known structure

One can map the calculated restraints, such as distance restraints (upl/lol) onto a known structure (in the example here an xray structure). This is another approach to analyze restraints and their influence on the results.

Below you find the commands to accomplish this. You see by studying the commands, which files are needed to execute the macro. Therefore, create a new directory ('mkdir') or copy a directory containing the respective files. Delete what you do not need. Use the regularized xray structure from exercise 11.

Commands preceded by hashtags (#) are commented out, remove the hashtags if you want to use them. If you decide to use the intermo-NOEx-cycle7.peaks file, make sure to comment any commands you no longer need.

You need an init file:

rmsdrange:=15-111,333
cyanalib
read lib LIG.lib append

And the main macro (name it 'CALC_xraymap.cya'):

read seq demoLong.seq

The following block of commands, takes the assigned intermol.peaks list and calculates distance restraints from the peak intensities:

#peaks:=intermol-NOEs-cycle7.peaks
#calibration peaks=$peaks
#peaks calibrate simple
#write upl intermol.upl

The following block of commands, reads the 'final.upl' list (in this case of neoassign) and selects the intermolecular NOEs to LIG and writes them to file:

read upl final.upl
distance select "*, @LIG" info=full
write intermol.upl
read intermol.upl unknown=warn

#read upl lig.upl append
#read lol lig.lol

read regula.pdb unknown=warn

weight_vdw=0
overview intermol_xray.ovw
  • If the restraints do not match with the xray structure, does it mean they are wrong?
  • If you tried the two options, what is (are) the difference(s)?
  • Did you look at the LIG.upl/lol files in the demo_data folder, what are they? What type of NMR experiments are there to obtain them?

Exercise 14: Work on improving the final structure

Using what you have learned so far, employing some of the options of FLYA and noeassign, consider if it is possible to improve the resolution of the final structure.

...

		
structures := 100,20                      		
steps:= 10000                       		
randomseed:= 434726   
write_peaks_names=.true.
assign_noartifact:="** list=intermol-NOEs.peaks"
noeassign peaks=$peaks prot=$prot keep=all selectcombine="* - @LIG" autoaco

The command 'assign_noartifact' effectivly disables network anchoring tests for the ligand. Since the list supplied is cleaned and presumed artifact free, we are allowed to do this. We therby encourage the use of the intermolecular NOEs even if the support by other nearby NOEs is weak. The command 'write_peaks_names=.true.' ensures that the assigned peak list are written to file with the actual resonance names (this is not xeasy standard).

You can run the calculation again, commenting out (#) the 'assign_noartifact' command, and see the effect on the final structure.

'selectcombine' calls for testing for errors to be done different: Intermolecular peaks do not have to compete with intra protein peaks.

Run the calculation:

cyana -n 33 CALC.cya

...