Automated resonance assignment with FLYA (EMBO 2017): Difference between revisions

From CYANA Wiki
Jump to navigation Jump to search
 
(64 intermediate revisions by 2 users not shown)
Line 6: Line 6:


# Go to your home directory.
# Go to your home directory.
# Download the [[Media:cyanaembo2017.tgz|input data for the practical]].
# Download the [[Media:cyanaembo2017g.tgz|input data for the practical]].
# Unpack the input data for the practical.
# Unpack the input data for the practical.
# Change into the newly created directory 'cyana'
# Change into the newly created directory 'cyana'
# Run the setup script 'setupcyana'.
# Run the setup script 'setupcyana'.
# Change into the subdirectory 'flyaquick' where the input data for the practical are.
# Test whether CYANA can be started by typing its name, 'cyana'.
# Exit from CYANA by typing 'q' or 'quit'.


  cd ~
  cd ~
  wget 'http://www.cyana.org/wiki/images/3/3c/Cyanaembo2017.tgz'
  wget 'http://www.cyana.org/wiki/images/2/2a/Cyanaembo2017g.tgz'
  tar zxf cyanaembo2017.tgz
  tar zxf Cyanaembo2017g.tgz
  cd cyana
  cd cyana
  ./setupcyana
  ./setupcyana
  cd flyaquick
 
# <li value="6"> Copy the directory 'flyaquick' containing the input data for the practical to 'flyabb'.
# Change into the subdirectory 'flyabb'.
# Test whether CYANA can be started by typing its name, 'cyana'.
# Exit from CYANA by typing 'q' or 'quit'.
 
  cd flyabb
  cyana
  cyana
  ___________________________________________________________________
  ___________________________________________________________________
Line 132: Line 135:
In this case, a tolerance of 0.03 ppm will be used for protons, and 0.4 ppm for carbon and nitrogen.
In this case, a tolerance of 0.03 ppm will be used for protons, and 0.4 ppm for carbon and nitrogen.


The next parameter specifies the seed value for the random number generator (an arbitrary positive integer).  
The next parameter specifies the seed value for the random number generator (an arbitrary positive integer is ok).  
   
   
  randomseed=101
  randomseed=101
Line 146: Line 149:
  end
  end


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.


Specific labeling can be handled in the same way, and peak list-specific atom selections can be applied as follows (not used in 'CALCbackbone.cya' but in 'CALClabeling.cya'):


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.
command ''XXX''_select
  atoms select "..."
end
 
Two parameters of the assignment algorithm are set in order to speed up the calculation for this practical:


  shiftassign_population:=25
  shiftassign_population=25
  shiftassign_quick=1
  shiftassign_quick=1


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


* 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)   
* 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)   
* The maximal number of iterations during local optimization (15000).
* An option to choose the "quick" optimization schedule.
* An option to choose the "quick" optimization schedule.
* Groups of atoms for which assignment statistics will be calculated and reported in the 'flya.txt' output file.
* The seed value for the random number generator. Any positive integer number is fine.
Specific labeling can be handled in the same way, and peak list-specific atom selections can be defined (not in this practical):
command ''XXX''_select
  atoms select "..."
end


Finally, there is the command to start the FLYA algorithm:
Finally, there is the command to start the FLYA algorithm:


  flya runs=10 assignpeaks=$peaks shiftreference=ref.prot
  flya runs=10 assignpeaks=$peaks structure= shiftreference=ref.prot


Here, the given parameters of the 'flya' command specify that
Here, the given parameters of the 'flya' command specify that
Line 176: Line 175:
* The number of independent runs of the algorithm, from which the consolidated shift will be calculated (chosen smaller than in normal production runs in order to speed up the calculation).
* The number of independent runs of the algorithm, from which the consolidated shift will be calculated (chosen smaller than in normal production runs in order to speed up the calculation).
* The input peak lists that will be used (as defined above).
* The input peak lists that will be used (as defined above).
* No ensemble of random structures will be calculated for generating expected peaks (is only necessary for NOESY-type experiments).
* The results will be compared with the reference chemical shifts in the file 'ref.prot' (which have been determined independently by conventional methods). The reference chemical shifts will not be used by the algorithm but only for a subsequent analysis of its results.
* The results will be compared with the reference chemical shifts in the file 'ref.prot' (which have been determined independently by conventional methods). The reference chemical shifts will not be used by the algorithm but only for a subsequent analysis of its results.


== Run the FLYA calculation ==
== Run the FLYA calculation ==


To run the FLYA calculation, you start CYANA and execute the 'ASSIGN.cya' script:
To run the FLYA calculation, you start CYANA and execute the corresponding 'CALC*.cya' script. For instance:


  cyana "nproc=2; ASSIGN"
  cyana "nproc=5; CALCbackbone"


By specifying the 'nproc=2' command, the independent runs of the algorithm will be performed in parallel. On a computer with multiple processors this will speed up the calculation, which is expected to take a few minutes.
By specifying 'nproc=5', 5 independent runs of the algorithm will be performed in parallel. On a computer with multiple processors this will speed up the calculation, which is expected to take a few minutes.


== FLYA output files ==
== FLYA output files ==
Line 199: Line 199:
=== The flya.txt file ===
=== The flya.txt file ===


This output file starts with overall assignment statistics for each group of atoms as defined by 'analyzeassign_group:=...' in ASSIGN.cya':
This output file starts with overall assignment statistics for each group of atoms as defined by 'analyzeassign_group:=...' in CALCbackbone.cya':


     ____________________________________________________________
     ____________________________________________________________
Line 207: Line 207:
   
   
     SEED: 1
     SEED: 1
     chemical shifts for 1350 atoms found
     chemical shifts for 542 atoms found
     Peaks assigned from frequencies
     Peaks assigned from frequencies
   
   
    CONBB: REFERENCES(2):494 CHEMICALSHIFTS(1):498 (1)and(2):494 MATCH:491(99.4% of (2))
     BB: REFERENCES(2):512 CHEMICALSHIFTS(1):542 (1)and(2):512 MATCH:507(99.0% of (2))
    CONALL: REFERENCES(2):1096 CHEMICALSHIFTS(1):1114 (1)and(2):1096 MATCH:1047(95.5% of (2))
     BB: REFERENCES(2):512 CHEMICALSHIFTS(1):542 (1)and(2):512 MATCH:498(97.3% of (2))
    ALL: REFERENCES(2):1264 CHEMICALSHIFTS(1):1350 (1)and(2):1261 MATCH:1141(90.3% of (2))


* REFERENCES(2) is the number of reference assignments (in the selected group)
* REFERENCES(2) is the number of reference assignments (in the selected group)
Line 222: Line 216:
* (1)and(2) is the number of atoms that are assigned by FLYA and in the reference.  
* (1)and(2) is the number of atoms that are assigned by FLYA and in the reference.  
* MATCH is the number of atoms with the same assignment by FLYA and in the reference. The percentage is relative to the number of reference assignments.
* MATCH is the number of atoms with the same assignment by FLYA and in the reference. The percentage is relative to the number of reference assignments.


Further below comes a table with information about each peak list:
Further below comes a table with information about each peak list:
    PEAKLISTS
    #Expected: Total number of expected peaks
    noRef: Number of expected peaks with missing reference shifts
    noPeak: Number of expected peaks for wich no peak can be measured
    Assigned: Number of expected peaks that could be assigned
    Match: Number of assigned peaks that fit reference shifts
    #Measured: Total number of peaks in peak list
    Assigned: Number of measured peaks that could be assigned to expected peaks
    exp/meas: Ratio of assigned expected and measured peaks
   
   
     Lists      #Expected  noRef  noPeak  Assigned        Match    #Measured Assigned  exp/meas Assigned
     Lists      #Expected  noRef  noPeak  Assigned        Match    #Measured Assigned  exp/meas Assigned
    N15NOESY      1495    177    499  940( 62.88%)  790( 52.84%)  3008    768( 25.53%)  1.2
     N15HSQC        106      8       1   104( 98.11%)   97( 91.51%)    131    96( 73.28%)  1.1
    C13NOESY      4852    304    2074  2786( 57.42%)  2137( 44.04%)  10886  2178( 20.01%)  1.3
     HNCA          211      15      11  194( 91.94%)  186( 88.15%)    329    179( 54.41%)  1.1
    C13HSQC        556      27      85  453( 81.47%)  387( 69.60%)    407    335( 82.31%)  1.4
     HNcaCO        211      15      11  197( 93.36%)  183( 86.73%)    246    176( 71.54%)  1.1
     N15HSQC        135      16       4   128( 94.81%)   113( 83.70%)    131   113( 86.26%)  1.1
     HNCO          105      7      1  101( 96.19%)    97( 92.38%)    158    97( 61.39%)  1.0
     HCCHTOCSY    2796      87    1445  1289( 46.10%)  1000( 35.77%)  2363    971( 41.09%)  1.3
     HNcoCA        105      7      0  101( 96.19%)    97( 92.38%)    158    99( 62.66%)  1.0
    HCCHCOSY      1926      69    1102  869( 45.12%)  673( 34.94%)  2005    661( 32.97%)  1.3
     CBCANH        399      26      25  361( 90.48%)  350( 87.72%)    623    339( 54.41%)  1.1
     HNCA          211      15      11  192( 91.00%)  182( 86.26%)    329    175( 53.19%)  1.1
     CBCAcoNH      200      13      2  196( 98.00%)  185( 92.50%)    324    192( 59.26%)  1.0
     HNcaCO        211      15      11  193( 91.47%)  179( 84.83%)    246    175( 71.14%)  1.1
     ALL          1337     91     51  1254( 93.79%)  1195( 89.38%)  1969  1178( 59.83%)  1.1
     HNCO          105      7      1  101( 96.19%)    95( 90.48%)    158    97( 61.39%)  1.0
     HNcoCA        105      7      0  103( 98.10%)    96( 91.43%)    158    98( 62.03%)  1.1
     CBCANH        399      26      25  361( 90.48%)  344( 86.22%)    623    335( 53.77%)  1.1
     CBCAcoNH      200      13      2  196( 98.00%)  183( 91.50%)    324    187( 57.72%)  1.0
     HBHAcoNH      288     20      82  207( 71.88%)  188( 65.28%)    364    183( 50.27%)  1.1
    CcoNH          370      16     53  311( 84.05%)  277( 74.86%)    365    287( 78.63%)  1.1
    HCcoNH        540      22    225  313( 57.96%)  276( 51.11%)    442    256( 57.92%)  1.2
    ALL          14189    821    5619 8442( 59.50%)  6920( 48.77%) 21809   6819( 31.27%)  1.2
   
   
It contains the following data:
It contains the following data:
Line 262: Line 257:


     Atom  Residue      Ref  Shift    Dev  Extent  inside  inref
     Atom  Residue      Ref  Shift    Dev  Extent  inside  inref
     N    LYS   11 120.779 120.805  -0.026    5.0  100.0  100.0  strong=
    ...
     H    LYS   11   7.516   7.514   0.002    5.0  100.0  100.0  strong=
     N    GLY   57 102.109 102.043  0.066    10.0  100.0  100.0  strong=
     CA    LYS   11 55.129 54.976  0.153    5.0  100.0  100.0  strong=
     H    GLY   57   8.571   8.570   0.001    10.0  100.0  100.0  strong=
     HA    LYS   11   4.244   4.241  0.003    5.0    99.9  100.0  strong=
     CA    GLY   57 45.415 45.433  -0.018    10.0  100.0  100.0  strong=
     CB    LYS   11  31.380  31.357  0.023    5.0   100.0   100.0  strong=
     HA2   GLY   57   4.042
     HB2  LYS  11  1.490  1.486  0.004     5.0   100.0  100.0 strong=
     HA3   GLY   57   3.436
    HB3  LYS  11  1.490  1.487  0.003    5.0   100.0  100.0  strong=
     C     GLY   57 173.621 173.662 -0.041    10.0   89.4    90.0  strong=
     CG    LYS   11  25.362  25.427 -0.065    5.0   100.0   100.0  strong=
     N    LEU   58 120.640 120.649 -0.009    10.0   80.0   80.0  =
     HG2  LYS  11  1.270  1.263  0.007     5.0   100.0   100.0  strong=
     H     LEU   58   7.488   7.492 -0.004    10.0    79.8   80.0  =
    HG3   LYS  11  1.446  1.456 -0.010    5.0    99.8   100.0  strong=
     CA   LEU   58 51.943 51.940  0.003    10.0    70.0   70.0  =
     CD   LYS   11 29.374 29.445  -0.071    5.0    65.6   60.0  =
     HA   LEU   58   4.995
     HD2  LYS  11  1.495  1.487  0.008    5.0   59.9    60.0  =
     CB   LEU   58 45.602 45.568   0.034    10.0   82.7    80.0  strong=
    HD3  LYS  11   1.495   2.045  -0.550    5.0    91.4     0.0  strong! (HB3 10)
     CG    LEU   58 26.528
     CE   LYS   11 42.023 42.013   0.010    5.0   100.0  100.0  strong=
     HG   LEU  58   1.515
     HE2  LYS  11  2.744   2.749 -0.005     5.0   99.9   100.0  strong=
     CD1   LEU   58  24.745
     HE3   LYS   11  2.824  2.758  0.066    5.0    74.2    0.0  ! (HE2)
     C    LEU   58 173.619 174.576 -0.957    10.0    40.1   10.0  ! (C 59)
     C    LYS   11 174.616 176.282 -1.666    5.0    80.0   20.0  strong! (C 10)
    ...


* '''Ref:''' Chemical shift value in the reference chemical shift list (ref.prot). It was not used in the calculation.
* '''Ref:''' Chemical shift value in the reference chemical shift list (ref.prot). It was not used in the calculation.
Line 284: Line 279:
* '''Dev''' = Ref - Shift
* '''Dev''' = Ref - Shift
* '''Extent:''' Number of runs in which the atom was assigned by FLYA.
* '''Extent:''' Number of runs in which the atom was assigned by FLYA.
* '''Inside:''' Percentage of chemical shift values from the (5) independent runs of FLYA that agree (within the tolerance) with the consensus value.
* '''Inside:''' Percentage of chemical shift values from the (10) independent runs of FLYA that agree (within the tolerance) with the consensus value.
* '''inref:''' Percentage of chemical shift values from the (5) independent runs of FLYA that agree (within the tolerance) with the reference value.
* '''inref:''' Percentage of chemical shift values from the (10) independent runs of FLYA that agree (within the tolerance) with the reference value.
* Outcome of the assignment:
* Outcome of the assignment:
** '''strong:''' "strong" assignment, i.e. Inside > 80%.
** '''strong:''' "strong" assignment, i.e. Inside > 80%.
Line 295: Line 290:


This PDF file provides a graphical representation of the 'flya.tab' file. Each assignment for an atom is represented by a colored rectangle.  
This PDF file provides a graphical representation of the 'flya.tab' file. Each assignment for an atom is represented by a colored rectangle.  
[[Image:flya.png|thumb|600px|'''flya.pdf''']]
[[Image:flyabackbone.png|thumb|600px|'''flya.pdf generated by CALCbackbone.cya''']]


* '''Green:''' Assignment by FLYA agrees with the manually determined reference assignment (within tolerance)  
* '''Green:''' Assignment by FLYA agrees with the manually determined reference assignment (within tolerance)  
Line 304: Line 299:
Respective light colors indicate assignments not classified as strong by the chemical shift consolidation. The row labeled HN/Hα shows for each residue HN on the left and Hα in the center. The N/Cα/C’ row shows for each residue the N, Cα, and C’ assignments from left to right. The rows β-η show the side-chain assignments for the heavy atoms in the center and hydrogen atoms to the left and right. In the case of branched side-chains, the corresponding row is split into an upper part for one branch and a lower part for the other branch.
Respective light colors indicate assignments not classified as strong by the chemical shift consolidation. The row labeled HN/Hα shows for each residue HN on the left and Hα in the center. The N/Cα/C’ row shows for each residue the N, Cα, and C’ assignments from left to right. The rows β-η show the side-chain assignments for the heavy atoms in the center and hydrogen atoms to the left and right. In the case of branched side-chains, the corresponding row is split into an upper part for one branch and a lower part for the other branch.


== FLYA applications ==
CYANA macros 'CALC*.cya' are provided for the following FLYA tasks:
=== CALC.cya: standard automated chemical shift assignment ===
* specify list of input peak lists in variable 'peaks' without intervening blanks
* specify tolerances for 1H, 13C, 15N with variables assigncs_assH, assigncs_assC assigncs_assN
* command 'select_atoms' excludes some nuclei that are difficult to detect
* optional parameter 'shiftreference=ref.prot' specifies reference chemical shift list, used only for comparison in flya.tab, flya.txt, flya.pdf
'''Note that the input data for this calculation contains two mistakes. Try to identify the problem by inpecting the 'flya.txt' file and the input files. Correct the mistakes and rerun the calculation before proceeding with other calculations!
'''
=== CALCbackbone.cya: standard backbone chemical shift assignment ===
* parameter 'structure=' to avoid generation of random structures, which are not needed if using only through-bond spectra
=== CALCexperiments.cya (optional): using modified/new experiment definitions in library ===
* modified HCCHTOCSY only for aromatics (library HCCHTOCSY.lib, peak list HCCHTOCSYaro.peaks)
* new experiment N15NOESY2D (library peak list N15NOESY2D.lib, peak list N15NOESY2D.peaks)
=== CALCexpfromlist.cya (optional): read expected peaks from a peak list ===
* command N15NOESY_expect, reading input peak list N15NOESY_in.peaks
=== CALCfixedpeaks.cya (optional): keep input peak assignments in user peak assignments ===
* (partially) assigned input peak list N15HSQCassigned.peaks
* parameter 'keepassigned' for loadspectra.cya
=== CALCfixedshifts.cya: fix input chemical shift assignments ===
* input chemical shift list 'fix.prot'
* shift error in chemical shift list specifies range for assignment
=== CALClabeling.cya: use of experiment-specific isotope labeling ===
* command 'select_atoms' for general selection of assignable nuclei CcoNH + HSQCLEULYS
* command '<peak list name>_select' with atom selection for a specific peak list (e.g. C13HSQC_LK.peaks)
* command '<peak list name>_expect' for non-standard generation of expected peaks for a given peak list (e.g. CcoNH_LK.peaks with dimension-specific atom selection)
=== CALCnoesyonly.cya: chemical shift assignment using exclusively NOESY ===
*increased population size with 'shiftassign_population=200'
* see Schmidt et al. J. Biomol. NMR 57, 193-204 (2013)
<!--=== CALCquick.cya: fast automated chemical shift assignment ===
* fixed number of generations in evolutionary optimization
-->
=== CALCstatistics.cya: user-defined chemical shift statistics instead of standard BMRB statistics from library ===
* 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
=== CALCstructcalc.cya: follow automated shift assignment by automated NOESY assignment and structure calculation ===
* peak lists for distance restraint generation specified by parameter 'structurepeaks='
=== CALCstructure.cya: use input structure to generate expected peaks for through-space experiments ===
* specify with parameter 'structure' of 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)
<!--
== Using input chemical shifts: shift predictions or partial assignments (optional) ==
== Using input chemical shifts: shift predictions or partial assignments (optional) ==


Line 342: Line 395:
  assignpeaks:=C13H1,N15H1,HCCH24,HCCH7,HBHACONH,C_CO_NH,HC_CO_NH
  assignpeaks:=C13H1,N15H1,HCCH24,HCCH7,HBHACONH,C_CO_NH,HC_CO_NH


-->
<!--
<!--
== Fully automated structure calculation ==
== Fully automated structure calculation ==
Line 360: Line 414:
7 cycle of automated NOE assignment and structure calculation will be performed. Statistics on the NOE assignment and the structure calculation will be in the file 'Table', which can also be produced with the command 'cyanatable -lp'.
7 cycle of automated NOE assignment and structure calculation will be performed. Statistics on the NOE assignment and the structure calculation will be in the file 'Table', which can also be produced with the command 'cyanatable -lp'.


The final structure will be 'final.pdb'. You can visualize it, for example, with the command
The final structure will be 'final.pdb'. <!--You can visualize it, for example, with the command


  molmol -r 8-110 final.pdb
  molmol -r 8-110 final.pdb
Line 370: Line 424:
or with the [http://www.bpc.uni-frankfurt.de/cyrange.html CYRANGE web server].
or with the [http://www.bpc.uni-frankfurt.de/cyrange.html CYRANGE web server].
-->
-->
== Automated NOESY assignment and structure calculation ==
== Automated NOESY assignment and structure calculation ==


Automated NOE restraint assignment and the structure calculation by torsion angle dynamics can be done with 'CALC.cya' macro. The 'flya.prot' file from the automated resonance assignment will be used together with the (unassigned) NOESY peak lists to assign the NOESY peaks and to generate distance restraints in order to compute the three-dimensional structure of the protein.  
Automated NOE restraint assignment and the structure calculation by torsion angle dynamics is included in 'CALCstructcalc.cya' (see above).
 
Alternatively, you can also perform automated NOE restraint assignment and the structure calculation separately with the 'CALCauto.cya' macro. The 'flya.prot' file from the automated resonance assignment (e.g. with 'CALC.cya'; backbone and side-chain assignments are required!) will be used together with the (unassigned) NOESY peak lists to assign the NOESY peaks and to generate distance restraints in order to compute the three-dimensional structure of the protein.  


TALOS+ can be used to generate torsion angle restraints from the backbone chemical shifts in 'flya.prot'. To do this, use the CYANA commands
TALOS-N can be used to generate torsion angle restraints from the backbone chemical shifts in 'flya.prot'. To do this, use the CYANA commands


  read flya.prot
  read flya.prot
Line 380: Line 437:
  write talos.aco
  write talos.aco


This will call the program TALOS+ and store the resulting torsion angle restraints in the file 'talos.aco'.
This will call the program TALOS-N and store the resulting torsion angle restraints in the file 'talos.aco'.


For further information about automated NOESY assignment you can consult the Tutorial [[Structure calculation with automated NOESY assignment]] (which uses different file names than we have here).
For further information about automated NOESY assignment you can consult the Tutorial [[Structure calculation with automated NOESY assignment]] (which uses different file names than we have here).


To speed up the calculation, you can set in 'CALC.cya':
To speed up the calculation, you can set in 'CALCauto.cya':


  structures:=50,10
  structures:=50,10
Line 393: Line 450:
7 cycle of automated NOE assignment and structure calculation will be performed by running the command
7 cycle of automated NOE assignment and structure calculation will be performed by running the command


  cyana "nproc=2; CALC"
  cyana "nproc=4; CALC"


Statistics on the NOE assignment and the structure calculation will be in the file 'Table', which can also be produced with the command 'cyanatable -lp'.
Statistics on the NOE assignment and the structure calculation will be in the file 'Table', which can also be produced with the command 'cyanatable -lp'.
Line 399: Line 456:
The final structure will be 'final.pdb'. You can visualize it, for example, with the command
The final structure will be 'final.pdb'. You can visualize it, for example, with the command


  molmol -r 8-110 final.pdb
  pymol final.pdb


The optimal residue range for superposition can be found with the command
The optimal residue range for superposition can be found with the command
Line 405: Line 462:
  cyana overlay final.pdb
  cyana overlay final.pdb


or with the [http://www.bpc.uni-frankfurt.de/cyrange.html CYRANGE web server].
or with the [http://www.bpc.uni-frankfurt.de/cyrange.html CYRANGE web server]. To superimpose the structures in PyMOL, you can use the internal PYMOL command with the appropriate residue range:
 
intra_fit resi 8-110
set all_states


<!--
=== Download results of fully automated structure calculation ===
=== Download results of fully automated structure calculation ===


If you cannot complete the fully automated structure calculation but want to look at the results that have been calculated previously, you may download them [[Media:flyaemboresults.tgz|here]] (about 24 MB).
If you cannot complete the fully automated structure calculation but want to look at the results that have been calculated previously, you may download them [[Media:flyaemboresults.tgz|here]] (about 24 MB).
-->

Latest revision as of 12:28, 12 February 2018

In this tutorial we will determine the resonance assignments and the structure of a protein using the program CYANA.

CYANA setup for the EMBO Practical Course NMR in Basel (5-12 August 2017)

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.
  2. Download the input data for the practical.
  3. Unpack the input data for the practical.
  4. Change into the newly created directory 'cyana'
  5. Run the setup script 'setupcyana'.
cd ~
wget 'http://www.cyana.org/wiki/images/2/2a/Cyanaembo2017g.tgz'
tar zxf Cyanaembo2017g.tgz
cd cyana
./setupcyana
  1. Copy the directory 'flyaquick' containing the input data for the practical to 'flyabb'.
  2. Change into the subdirectory 'flyabb'.
  3. Test whether CYANA can be started by typing its name, 'cyana'.
  4. Exit from CYANA by typing 'q' or 'quit'.
cd flyabb
cyana
___________________________________________________________________

CYANA 3.98 (linux64-intel)

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

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

    Library file "/home/guentert_l/cyana/cyana-3.98/lib/cyana.lib" read, 41 residue types.
    Sequence file "demo.seq" read, 114 residues.
cyana> q

If all worked, you are ready to go!

If you want to return to your practical later, using your own Linux or Mac OS X computer, you can download the demo version of CYANA from here.

Hint: More information on the CYANA commands etc. is in the CYANA 3.0 Reference Manual.

Experimental input data

The protein sequence is stored in three-letter code in the file 'demo.seq'.

Experimental peak lists are available for the following spectra:

  • [1H,13C]-HSQC (called 'C13HSQC' in FLYA)
  • [1H,15N]-HSQC (called 'N15HSQC' in FLYA)
  • 3D [13C]-resolved NOESY (called 'C13NOESY' in FLYA)
  • 3D [15N]-resolved NOESY (called 'N15NOESY' in FLYA)
  • HNCA
  • HN(CO)CA (called 'HNcoCA' in FLYA)
  • HNCO
  • HN(CA)CO (called 'HNcaCO' in FLYA)
  • CBCANH
  • CBCACONH (called 'CBCAcoNH' in FLYA)
  • HBHACONH (called 'HBHAcoNH' in FLYA)
  • HCCH-TOCSY (called 'HCCHTOCSY' in FLYA)
  • HCCH-COSY (called 'HCCHCOSY' in FLYA)
  • C(CO)NH (called 'CcoNH' in FLYA)
  • HC(CO)NH (called 'HCcoNH' in FLYA)

Peak lists in XEASY format that have been prepared by automatic peak picking with the program NMRView are stored in files XXX.peaks, where XXX denotes the FLYA spectrum type.

Each peak list starts with a header that defines the experiment type and the order of dimensions. For instance, for HNCA.peaks:

# Number of dimensions 3
#FORMAT xeasy3D
#INAME 1 HN
#INAME 2 C
#INAME 3 N
#SPECTRUM HNCA HN C N
      5   6.475  58.033  98.548 1 U   2.769E+02  0.000E+00 e 0     0     0     0
      6   6.476  62.123  98.126 1 U   2.571E+01  0.000E+00 e 0     0     0     0
      7   6.475  54.017  98.159 1 U   2.547E+01  0.000E+00 e 0     0     0     0

The first line specifies the number of dimensions (3 in this case). The '#SPECTRUM' lines gives the experiment type (HNCA, which refers to the corresponding experiment definition in the CYANA library), followed by an identifier for each dimension of the peak list (HN C N) that specifies which chemical shift is stored in the corresponding dimension of the peak list. These labels must match those in the corresponding experiment definition in the general CYANA library (see below). After the '#SPECTRUM' line follows one line for every peak. For example, the first peak in the 'HNCA.peaks' list has

  • Peak number 5
  • HN chemical shift 6.475 ppm
  • C (CA) chemical shift 58.033 ppm
  • N chemical shift 98.548 ppm

The other data are irrelevant for automated chemical shift assignment with FLYA. In particular, the peak volume or intensity (2.769E+02) is not used by the algorithm.

Hint: The formats of other CYANA files are described in the CYANA 3.0 Reference Manual.


Experiment definitions in the CYANA library

When you start CYANA, the program reads the library and displays the full path name of the library file. You can open the standard library file to inspect, for example, the NMR experiment definitions that define which expected peaks are generated by FLYA. For instance, the definition for the HNCA spectrum (search for 'HNCA' in the library file 'cyana.lib') is

SPECTRUM HNCA  HN N C
 0.980  HN:H_AMI  N:N_AM*  C:C_ALI  C_BYL
 0.800  HN:H_AMI  N:N_AMI  (C_ALI) C_BYL  C:C_ALI 

The first line corresponds to the '#SPECTRUM' line in the peak list. It specifies the experiment name and a label for the atoms that are detected in each dimension of the spectrum. The number of labels defines the dimensionality of the experiment (3 in case of HNCA).

Each line below defines a (formal) magnetization transfer pathway that gives rise to an expected peak. in the case of HNCA there are two lines, corresponding to the intraresidual and sequential peak. For instance, the definition for the intraresidual peak starts with the probability to observe the peak (0.980), followed by a series of atom types, e.g. H_AMI for amide proton etc. An expected peak is generated for each molecular fragment in which these atom types occur connected by single covalent bonds. The atoms whose chemical shifts appear in the spectrum are identified by their labels followed by ':', e.g. for HNCA 'HN:', 'N:', and 'C:'.

FLYA execution scripts

The CYANA scripts ("macros") 'CALC*.cya' contain the commands to perform various automated chemical shift assignment calculations.

For instance, 'CALCbackbone.cya' performs automated backbone resonance assignment. It starts with the specification of the names of the input peak lists:

peaks:=N15HSQC,HNCA,HNcaCO,HNCO,HNcoCA,CBCANH,CBCAcoNH

The peak list names are separated by commas (without blanks!). The files on disk have the file name extension .peaks, e.g. HNCA.peaks.

The commands above will use all available peak lists. You can choose any subset of them by modifying the 'peaks:=...' statement.

These are followed by tolerances for chemical shift matching:

assigncs_accH=0.03
assigncs_accC=0.4
assigncs_accN=assigncs_accC
tolerance:=$assigncs_accH,$assigncs_accH,$assigncs_accC

In this case, a tolerance of 0.03 ppm will be used for protons, and 0.4 ppm for carbon and nitrogen.

The next parameter specifies the seed value for the random number generator (an arbitrary positive integer is ok).

randomseed=101

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

analyzeassign_group := BB: N H CA CB C 

The next commands 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

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.

Specific labeling can be handled in the same way, and peak list-specific atom selections can be applied as follows (not used in 'CALCbackbone.cya' but in 'CALClabeling.cya'):

command XXX_select
  atoms select "..."
end

Two parameters of the assignment algorithm are set in order to speed up the calculation for this practical:

shiftassign_population=25
shiftassign_quick=1

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

  • 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)
  • An option to choose the "quick" optimization schedule.

Finally, there is the command to start the FLYA algorithm:

flya runs=10 assignpeaks=$peaks structure= shiftreference=ref.prot

Here, the given parameters of the 'flya' command specify that

  • The number of independent runs of the algorithm, from which the consolidated shift will be calculated (chosen smaller than in normal production runs in order to speed up the calculation).
  • The input peak lists that will be used (as defined above).
  • No ensemble of random structures will be calculated for generating expected peaks (is only necessary for NOESY-type experiments).
  • The results will be compared with the reference chemical shifts in the file 'ref.prot' (which have been determined independently by conventional methods). The reference chemical shifts will not be used by the algorithm but only for a subsequent analysis of its results.

Run the FLYA calculation

To run the FLYA calculation, you start CYANA and execute the corresponding 'CALC*.cya' script. For instance:

cyana "nproc=5; CALCbackbone"

By specifying 'nproc=5', 5 independent runs of the algorithm will be performed in parallel. On a computer with multiple processors this will speed up the calculation, which is expected to take a few minutes.

FLYA output files

The FLYA algorithm will produce the following output files:

  • flya.prot: Consensus assigned chemical shifts. This file contains a chemical shift for every atom that has been assigned to least one peak.
  • flya.tab: Table with details about the chemical shift assignment of each atom (comparison with reference shifts). In this file you can see for each atom whether the assignment is "strong" (self-consistent) or "weak" (only tentative).
  • flya.txt: Assignment statistics
  • flya.pdf: Graphical representation of the assignment results
  • XXX_exp.peaks: List of expected peaks, corresponding to input peak list XXX.peaks
  • XXX_asn.peaks: Assigned peak list, corresponding to input peak list XXX.peaks

The flya.txt file

This output file starts with overall assignment statistics for each group of atoms as defined by 'analyzeassign_group:=...' in CALCbackbone.cya':

   ____________________________________________________________

   CHEMICAL SHIFT ASSIGNMENT
   ____________________________________________________________

   SEED: 1
   chemical shifts for 542  atoms found
   Peaks assigned from frequencies

   BB: REFERENCES(2):512 CHEMICALSHIFTS(1):542 (1)and(2):512 MATCH:507(99.0% of (2))
  • REFERENCES(2) is the number of reference assignments (in the selected group)
  • CHEMICALSHIFTS(1) is is the number of atoms assigned by FLYA
  • (1)and(2) is the number of atoms that are assigned by FLYA and in the reference.
  • MATCH is the number of atoms with the same assignment by FLYA and in the reference. The percentage is relative to the number of reference assignments.

Further below comes a table with information about each peak list:

   PEAKLISTS
   #Expected: Total number of expected peaks
   noRef: Number of expected peaks with missing reference shifts
   noPeak: Number of expected peaks for wich no peak can be measured
   Assigned: Number of expected peaks that could be assigned
   Match: Number of assigned peaks that fit reference shifts
   #Measured: Total number of peaks in peak list
   Assigned: Number of measured peaks that could be assigned to expected peaks
   exp/meas: Ratio of assigned expected and measured peaks

   Lists      #Expected  noRef   noPeak   Assigned        Match    #Measured Assigned  exp/meas Assigned
   N15HSQC        106       8       1   104( 98.11%)    97( 91.51%)    131     96( 73.28%)   1.1
   HNCA           211      15      11   194( 91.94%)   186( 88.15%)    329    179( 54.41%)   1.1
   HNcaCO         211      15      11   197( 93.36%)   183( 86.73%)    246    176( 71.54%)   1.1
   HNCO           105       7       1   101( 96.19%)    97( 92.38%)    158     97( 61.39%)   1.0
   HNcoCA         105       7       0   101( 96.19%)    97( 92.38%)    158     99( 62.66%)   1.0
   CBCANH         399      26      25   361( 90.48%)   350( 87.72%)    623    339( 54.41%)   1.1
   CBCAcoNH       200      13       2   196( 98.00%)   185( 92.50%)    324    192( 59.26%)   1.0
   ALL           1337      91      51  1254( 93.79%)  1195( 89.38%)   1969   1178( 59.83%)   1.1

It contains the following data:

  • #Expected: Total number of expected peaks
  • noRef: Number of expected peaks with missing reference shifts
  • noPeak: Number of expected peaks for which no peak can be measured
  • Assigned: Number of expected peaks that could be assigned based on the reference chemical shift assignments. The theoretical maximum of 100% corresponds to the situation that the spectra “explain” all expected peaks. Each expected peak can be mapped to at most one measured peak. Remaining expected peaks correspond to missing peaks in the measured peak list.
  • Match: Number of assigned peaks that fit (within tolerance) reference shifts. The theoretical maximum of 100% corresponds to having all measured peaks assigned. Note that several expected peaks can be mapped to the same measured peak, i.e. the assignments of measured peaks can be unambiguous or ambiguous. Remaining unassigned measured peaks are likely to be artifacts.
  • #Measured: Total number of peaks in peak list
  • Assigned: Number of measured peaks that could be assigned to expected peaks
  • exp/meas: Ratio of assigned expected and measured peaks

There is more information on the results of the assignment calculation in the 'flya.txt' file (not described here).

The flya.tab file

This file provides information about the chemical shift assignment of each individual atom:

   Atom  Residue      Ref   Shift     Dev  Extent  inside   inref
   ...
   N     GLY   57 102.109 102.043   0.066    10.0   100.0   100.0  strong=
   H     GLY   57   8.571   8.570   0.001    10.0   100.0   100.0  strong=
   CA    GLY   57  45.415  45.433  -0.018    10.0   100.0   100.0  strong=
   HA2   GLY   57   4.042
   HA3   GLY   57   3.436
   C     GLY   57 173.621 173.662  -0.041    10.0    89.4    90.0  strong=
   N     LEU   58 120.640 120.649  -0.009    10.0    80.0    80.0  =
   H     LEU   58   7.488   7.492  -0.004    10.0    79.8    80.0  =
   CA    LEU   58  51.943  51.940   0.003    10.0    70.0    70.0  =
   HA    LEU   58   4.995
   CB    LEU   58  45.602  45.568   0.034    10.0    82.7    80.0  strong=
   CG    LEU   58  26.528
   HG    LEU   58   1.515
   CD1   LEU   58  24.745
   C     LEU   58 173.619 174.576  -0.957    10.0    40.1    10.0  ! (C 59)
   ...
  • Ref: Chemical shift value in the reference chemical shift list (ref.prot). It was not used in the calculation.
  • Shift: Consensus chemical shift value from FLYA
  • Dev = Ref - Shift
  • Extent: Number of runs in which the atom was assigned by FLYA.
  • Inside: Percentage of chemical shift values from the (10) independent runs of FLYA that agree (within the tolerance) with the consensus value.
  • inref: Percentage of chemical shift values from the (10) independent runs of FLYA that agree (within the tolerance) with the reference value.
  • Outcome of the assignment:
    • strong: "strong" assignment, i.e. Inside > 80%.
    • =: Assignment that agrees with reference, i.e. Dev < tolerance.
    • !: Assignment that does not agree with the reference, i.e. Dev > tolerance.
    • (atom name): Correct assignment, if within the same residue (no residue number given), or the neighboring residues.

The flya.pdf file

This PDF file provides a graphical representation of the 'flya.tab' file. Each assignment for an atom is represented by a colored rectangle.

flya.pdf generated by CALCbackbone.cya
  • Green: Assignment by FLYA agrees with the manually determined reference assignment (within tolerance)
  • Red: Assignment by FLYA does not agree with the manually determined reference assignment
  • Blue: Assigned by FLYA but no reference available
  • Black: With reference assignment but not assigned by FLYA.

Respective light colors indicate assignments not classified as strong by the chemical shift consolidation. The row labeled HN/Hα shows for each residue HN on the left and Hα in the center. The N/Cα/C’ row shows for each residue the N, Cα, and C’ assignments from left to right. The rows β-η show the side-chain assignments for the heavy atoms in the center and hydrogen atoms to the left and right. In the case of branched side-chains, the corresponding row is split into an upper part for one branch and a lower part for the other branch.

FLYA applications

CYANA macros 'CALC*.cya' are provided for the following FLYA tasks:

CALC.cya: standard automated chemical shift assignment

  • specify list of input peak lists in variable 'peaks' without intervening blanks
  • specify tolerances for 1H, 13C, 15N with variables assigncs_assH, assigncs_assC assigncs_assN
  • command 'select_atoms' excludes some nuclei that are difficult to detect
  • optional parameter 'shiftreference=ref.prot' specifies reference chemical shift list, used only for comparison in flya.tab, flya.txt, flya.pdf

Note that the input data for this calculation contains two mistakes. Try to identify the problem by inpecting the 'flya.txt' file and the input files. Correct the mistakes and rerun the calculation before proceeding with other calculations!

CALCbackbone.cya: standard backbone chemical shift assignment

  • parameter 'structure=' to avoid generation of random structures, which are not needed if using only through-bond spectra

CALCexperiments.cya (optional): using modified/new experiment definitions in library

  • modified HCCHTOCSY only for aromatics (library HCCHTOCSY.lib, peak list HCCHTOCSYaro.peaks)
  • new experiment N15NOESY2D (library peak list N15NOESY2D.lib, peak list N15NOESY2D.peaks)

CALCexpfromlist.cya (optional): read expected peaks from a peak list

  • command N15NOESY_expect, reading input peak list N15NOESY_in.peaks

CALCfixedpeaks.cya (optional): keep input peak assignments in user peak assignments

  • (partially) assigned input peak list N15HSQCassigned.peaks
  • parameter 'keepassigned' for loadspectra.cya

CALCfixedshifts.cya: fix input chemical shift assignments

  • input chemical shift list 'fix.prot'
  • shift error in chemical shift list specifies range for assignment

CALClabeling.cya: use of experiment-specific isotope labeling

  • command 'select_atoms' for general selection of assignable nuclei CcoNH + HSQCLEULYS
  • command '<peak list name>_select' with atom selection for a specific peak list (e.g. C13HSQC_LK.peaks)
  • command '<peak list name>_expect' for non-standard generation of expected peaks for a given peak list (e.g. CcoNH_LK.peaks with dimension-specific atom selection)

CALCnoesyonly.cya: chemical shift assignment using exclusively NOESY

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

CALCstatistics.cya: user-defined chemical shift statistics instead of standard BMRB statistics from library

  • 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

CALCstructcalc.cya: follow automated shift assignment by automated NOESY assignment and structure calculation

  • peak lists for distance restraint generation specified by parameter 'structurepeaks='

CALCstructure.cya: use input structure to generate expected peaks for through-space experiments

  • specify with parameter 'structure' of 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)


Automated NOESY assignment and structure calculation

Automated NOE restraint assignment and the structure calculation by torsion angle dynamics is included in 'CALCstructcalc.cya' (see above).

Alternatively, you can also perform automated NOE restraint assignment and the structure calculation separately with the 'CALCauto.cya' macro. The 'flya.prot' file from the automated resonance assignment (e.g. with 'CALC.cya'; backbone and side-chain assignments are required!) will be used together with the (unassigned) NOESY peak lists to assign the NOESY peaks and to generate distance restraints in order to compute the three-dimensional structure of the protein.

TALOS-N can be used to generate torsion angle restraints from the backbone chemical shifts in 'flya.prot'. To do this, use the CYANA commands

read flya.prot
talos
write talos.aco

This will call the program TALOS-N and store the resulting torsion angle restraints in the file 'talos.aco'.

For further information about automated NOESY assignment you can consult the Tutorial Structure calculation with automated NOESY assignment (which uses different file names than we have here).

To speed up the calculation, you can set in 'CALCauto.cya':

structures:=50,10
steps=5000

These commands tell the program to calculate, in each cycle, 50 conformers, and to analyze the best 10 of them. 5000 torsion angle dynamics steps will be applied per conformer.

7 cycle of automated NOE assignment and structure calculation will be performed by running the command

cyana "nproc=4; CALC"

Statistics on the NOE assignment and the structure calculation will be in the file 'Table', which can also be produced with the command 'cyanatable -lp'.

The final structure will be 'final.pdb'. You can visualize it, for example, with the command

pymol final.pdb

The optimal residue range for superposition can be found with the command

cyana overlay final.pdb

or with the CYRANGE web server. To superimpose the structures in PyMOL, you can use the internal PYMOL command with the appropriate residue range:

intra_fit resi 8-110
set all_states