Major Uses of AutoPeak

Converting Peak Lists into AutoAssign Format
Registering AutoAssign Peak Lists
Manipulating Peak Lists
Evaluating the Quality of Peak Lists
Evaluating Assignment Results
Manipulating BMRB (NMRStar) Files


Converting Peak Lists into AutoAssign Format

Explanation:
The first step in using AutoAssign and many other parts of AutoPeak is converting peaks lists into AutoAssign format.

Programs:
extract_columns.pl - extracts columns from text files.
create_peak_list.pl - creates a peak list given peak information in separate columns.
sparkyPks2pks.pl - create a peak list given the shift values and intensity in separate columns. It also tries to assert a HN, N15, HX, CX, CO and X dimension ordering.

Examples:
1) Convert an HNCACB -type peak list into AutoAssign format.

The raw HNCACB-type peak file in the following format:

   2 126.257  46.356   7.965 2 U          3.396e+04  4.86e+02 a   0 30103 30105 30104 0
   4 124.691  61.261   9.144 2 U          4.550e+02  3.54e+02 a   0 30203 30205 30204 0
   5 124.050  54.715   7.640 2 U          6.764e+03  5.84e+02 a   0 30303 30305 30304 0
   6 123.694  53.532   8.140 2 U          2.642e+04  4.75e+02 a   0 30403 30405 30404 0
   7 123.694  59.841   7.878 2 U          7.815e+03  5.44e+02 a   0 30503 30505 30504 0
...
The following series of commands will create a peak list in the AutoAssign format:
% extract_columns.pl 4 2 3 7 < raw_peak_list.txt > extracted_peak_list.txt
% create_peak_list.pl extracted_peak_list.txt HNCACB hncacb.pks
The resulting HNCACB-type peak file will look like this:
#Index  1Dim    2Dim    3Dim            Intensity       Workbook
1            7.965   126.257 46.356          3.396e+04       HNCACB
2            9.144   124.691 61.261          4.550e+02       HNCACB
3            7.640   124.050 54.715          6.764e+03       HNCACB
4            8.140   123.694 53.532          2.642e+04       HNCACB
5            7.878   123.694 59.841          7.815e+03       HNCACB
...


Registering AutoAssign Peak Lists

Explanation:
For good performance from AutoAssign and other AutoPeak programs that compare peak lists, peak lists must be registered to each other in their alignable dimensions.  Even though spectra may be aligned by hand in spectra visualization software, differences in data collection and processing as well as imperfections in phasing, peak picking, and peak centering can create deviations that reduce performance.  Also, registration of peaks lists gives valuable statistical information on how comparable peaks lists are.  This is useful in evaluation peak list quality and determining match tolerances.

Normally, a star registration strategy gives good registration results.  A typical application of a star strategy is registering all the peaks lists to the HSQC in the matching amide 1H and 15N dimensions followed by registering all alphiphatic carbon containing peak lists to the HNCACB-type peak list.  If HNHA/HNcoHA or HNCO/HNcaCO combinations of peak lists are present, then these pairwise registrations are performed as well.


Programs:
calculate_registration - calculates the registration (shifting) of one peak list against another.
apply_shifting.pl - adjusts peaks chemical shifts using the given shifting.

Hints:
calculate_registration:
Check the dimensions in the peak lists if calculate_registration does not find an initial registration.

Examples:
1) Register an HNcoCA peak list to an HSQC peak list.
Calculating the registration is done with the following command:
% calculate_registration hncoca.pks hsqc.pks
This generates the following output:
Final Results
    Raw Robustness:           92.734 out of 95
    Robustness:              64.6922 out of 95

    Input Dimensions:                               1                      2                3
    Full Registration:                -0.0109206         0.132316           ------
    Weighted Registration:       -0.0107468         0.132745           ------

    Full STD:                          0.000922378     0.00725433           ------
    Weighted STD:                 0.000678018     0.00525216           ------

    Full Skewness:                       -0.958115        -0.867331           ------
    Weighted Skewness:           0.00108908       0.0305068           ------

    Full Kurtosis:                            4.70341           2.72701           ------
    Weighted Kurtosis:                 0.157536       0.0175747           ------
The following command applies the shifting to create an aligned HNcoCA peak list:
% apply_shifting.pl hncoca.pks HNcoCA hncoca2.pks  -0.0107 0.1327


Manipulating Peak Lists

Explanation:

Many times peak lists must be manipulated in various ways to create a usable AutoAssign dataset.  These manipulations are normally required to handle alternate data collection strategies using fewer experiments.   But some of the manipulations are useful in implementing robust automatic restrictive peak picking strategies or in handling datasets with signficant numbers of residues in multiple conformations.  

Using the AutoPeak programs to perform these manipulations has the added benefit of keeping a log of the manipulations in the "File History" of each peak list.  This feature is invaluable for keeping up with where peak lists came from and how they have been manipulated.

Programs:
average_duplicates.pl - create a set of average peaks from groups of duplicate peaks.
change_phase.pl - changes the sign of the peak intensities.
concatenate.pl - concatenates multiple peak files.
convert_rd_experiment - extracts the projected dimension in a reduced dimensionality experiment.
extract_dims.pl - extracts and rearranges peak dimensions of a peak file.
extract_duplicates.pl - extracts duplicate or nonduplicate peaks.
extract_by_dup_count.pl - extract peak duplicates with a certain peak count.
extract_by_filter.pl - extracts peaks that match (or don't match) a filter list.
extract_by_intensity.pl - extract a certain fraction of strong peaks.
extract_by_intensity2.pl - extract peaks above a fraction of the average/top peak.
extract_by_intensity3.pl - extract peaks above a threshhold.
extract_by_phase.pl - extract positive or negative intensity peaks.
extract_by_shift.pl - extract peaks with chemical shifts above or below certain values.
extract_by_shift_range.pl - extract peaks with chemical shifts within a range of values.
file_history.pl - print File History of a peak file.
match_recombine.pl - create new peaks from parts of other peaks.
pks2SparkyPks.pl - converts an AutoAssign peak list file to a Sparky peak list file.
remove_peaks.pl - removes peaks from a peak list with the given indeces.
tag_peaks.pl - extract a group of peaks using a set of filter peaks and tag them.

Examples:
1) Generate an HSQC peak list from an HNCO peak list.
Given the "hnco.pks" HNCO peak list that looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    8.479    123.157    180.112        1.0612e+06    HNCO
2    8.811    123.028    179.764        8.7698e+05    HNCO
3    8.349    120.988    179.768        1.0079e+06    HNCO
4    7.566    120.516    179.758        1.5093e+06    HNCO
5    7.615    117.932    179.215        1.1491e+06    HNCO
...
The following command will extract the first two dimensions to create an HSQC peak list:
% extract_dims.pl hnco.pks HSQC hsqc.pks 1 2
This creates the "hsqc.pks" HSQC peak list that looks like:
#Index    1Dim    2Dim        Intensity    Workbook
1    8.479    123.157        1.0612e+06    HSQC
2    8.811    123.028        8.7698e+05    HSQC
3    8.349    120.988        1.0079e+06    HSQC
4    7.566    120.516        1.5093e+06    HSQC
5    7.615    117.932        1.1491e+06    HSQC
...
2) Generate an HNCA-type peak list from a CA/CB phase labelled HNCACB-type peak list.
Given the "hncacb.pks" HNCACB-type peak list that looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    7.721    116.744    21.733        1.2652e+06    HNCACB
2    8.374    117.233    33.196        3.488e+05    HNCACB
3    8.301    117.234    32.545        8.8283e+05    HNCACB
4    8.374    117.217    68.946        7.9682e+05    HNCACB
5    8.376    117.24    63.796        -7.6645e+05    HNCACB
6    8.377    117.244    61.818        -4.0926e+05    HNCACB
7    8.302    117.224    54.735        -1.4108e+06    HNCACB
8    8.304    117.237    46.501        -4.6939e+05    HNCACB
...
The negative intensity peaks are the CA peaks.
The following command extract the peaks with the negative intensities from an HNCACB-type peak list:
% extract_by_phase.pl hncacb.pks negative HNCA hnca.pks
This creates an HNCA-type peak list that looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    8.376    117.24    63.796        -7.6645e+05    HNCA
2    8.377    117.244    61.818        -4.0926e+05    HNCA
3    8.302    117.224    54.735        -1.4108e+06    HNCA
4    8.304    117.237    46.501        -4.6939e+05    HNCA
...
3) Generate an HNcoCA-type peak list using an HNcoCACB-type and HNCA-type peak lists.
Given the "hnca.pks" HNCA-type peak list looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    8.376    117.24    63.796        -7.6645e+05    HNCA
2    8.377    117.244    61.818        -4.0926e+05    HNCA
3    8.302    117.224    54.735        -1.4108e+06    HNCA
4    8.304    117.237    46.501        -4.6939e+05    HNCA
...
Given the "hncocacb.pks" HNcoCACB-type peak list looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    8.379    117.216    61.816        1.6974e+06    HNcoCACB
2    8.379    117.216    33.294        9.6913e+05    HNcoCACB
3    8.3    117.211    46.479        1.3929e+06    HNcoCACB
4    8.616    117.15    66.864        1.0037e+06    HNcoCACB
...
The following command extracts the peaks from "hnca.pks" that matches peaks in "hncocacb.pks":
% extract_by_filter.pl hnca.pks hncocacb.pks inclusive HNcoCA hncoca.pks 0.02 0.3 0.4
This creates an HNcoCA-type peak list that looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    8.377    117.244    61.818        -4.0926e+05    HNcoCA
2    8.304    117.237    46.501        -4.6939e+05    HNcoCA
...
4) Generate an average HSQC from a composite of the other peak lists.
Given a dataset that has twice the number of HSQC peaks that are expected given the sequence.  
This is a strong indication of multiple conformations.
AutoAssign is having problems working through the large number of spin systems.

The follow pair of commands concatenates a group of peak lists and creates a composite HSQC peak list from the most complete spin systems:
% concatenate.pl pre_hsqc.pks HSQC hsqc.pks hnco.pks hncacb.pks hncocacb.pks hncoca.pks hnca.pks hnha.pks
% average_duplicates.pl pre_hsqc.pks HSQC hsqc_average.pks -min 8 0.03 0.1

5) Generate HNCA-type  and HNHA-type peak lists from a reduced dimensionality HNCAHA peak list.

Given the "hncaha_rd.pks" RD HNCAHA peak list looks like:
#Index    1Dim    2Dim    3Dim        Intensity    Workbook
1    7.637    129.737    59.037        -3.126e+04    HNCAHA
2    7.692    129.737    59.119        -4.023e+03    HNCAHA
3    8.038    128.735    57.535        -7.771e+04    HNCAHA
4    8.411    128.400    52.359        -1.760e+04    HNCAHA
5    7.210    126.061    53.675        -6.397e+04    HNCAHA
...
250    7.889    124.055    39.492        6.637e+04    HNCAHA
251    7.887    124.055    38.172        3.709e+04    HNCAHA
252    8.138    119.376    46.162        4.076e+04    HNCAHA
253    8.139    119.376    39.325        2.837e+04    HNCAHA
254    8.168    118.373    46.747        5.668e+04    HNCAHA
255    8.168    118.373    46.090        1.652e+04    HNCAHA
256    8.536    120.713    44.570        6.805e+04    HNCAHA
...
The following command converts the peak triplets in "hncaha_rd.pks" into 4D peak equivalents:
% convert_rd_experiment hncaha_rd.pks hncaha_4D.pks 3 0.0 3.97603 -range 2.9 5.5 -template average -print expanded -sign neg -use_two -match_int 0.9 -weight 0.5 -tol 0.03 0.3 0.3
This creates a 4D HNCAHA peak list that looks like:
#Index    1Dim    2Dim    3Dim    4Dim        Intensity    Workbook
1    7.64    129.737    59.067    4.449        16026.666    HNCAHA
2    7.642  129.737    61.367    4.111        7280             HNCAHA
3    7.69    129.737    59.092    4.461        8919             HNCAHA
4    8.039  128.735    57.529    4.175        30890           HNCAHA
5    8.039  128.735    63.614    4.46          10153.333    HNCAHA
6    8.411  128.4        52.357    4.288        11016.666    HNCAHA
7    8.41    128.4        56.478    4.316        557.666        HNCAHA
8    7.212  126.061    53.614    4.477        18183.333    HNCAHA
9    7.212  126.061    55.829    4.5            1988.666      HNCAHA
...
The following commands extracts the HNCA-type and HNHA-type peak lists from the 4D HNCAHA peak list:
% extract_dims.pl hncaha_4D.pks HNCA hnca.pks 1 2 3
% extract_dims.pl hncaha_4D.pks HNHA hnha.pks 1 2 4


Evaluating the Quality of Peak Lists


Explanation:
The first step in obtaining correct assignments from AutoAssign is to give AutoAssign a good dataset.   Towards this goal, one must evaluate the quality of the peak lists in the dataset.  Evaluations are done on each peak list and on the set of peak lists.  

Programs:
calculate_registration - calculates the registration (shifting) of one peak list against another.
examine_spin_systems.pl - groups peaks into spin systems and examines them for completeness and overlap.

Examples:
1) Uses calculate_registration to detect a poorly unalignable peak list.
The following command checks how alignable an HNCO peak list is to an HNcaCO peak list:
% calculate_registration hnco.pks hncaco.pks
This generates the following output:
Final Results
    Raw Robustness:               56 out of 156
    Robustness:              49.6801 out of 156

    Input Dimensions:                               1                       2                      3
    Full Registration:                 0.0008543        0.0715716           0.51375
    Weighted Registration:        0.0005342        0.0730397         0.613312

    Full STD:                            0.00545457        0.0354198           2.07691
    Weighted STD:                   0.00370256        0.0327938           1.85157

    Full Skewness:                  -4.74346e-05        -0.264039        -0.240244
    Weighted Skewness:            -0.0712982        -0.280238          -0.17169

    Full Kurtosis:                             2.60191       -0.446117         0.391656
    Weighted Kurtosis:                    1.31327       -0.219108         0.270923
The high STD for the third dimension (carbonyl) and few matching peaks shows a clear problem in aligning these two peak lists.  One or both peak lists may be flawed.

2) Examines all the peak lists by how well they organize into spin systems.
The following command concatenates all the peak lists together:
% concatenate.pl all_peaks.pks - -old_index hnca.pks hncacb.pks hnco.pks hncoca.pks hncocacb.pks hsqc.pks
The following command groups the peaks into spin systems and examines each spin system:
% examine_spin_systems.pl all_peaks.pks report.pks  0.03 0.35 0.4 0.05 0.35
This generates the following output:
#Index     1Dim     2Dim     3Dim     Intensity     Workbook
#
#
#
#
# Spin System 0
#
#    Gly Intra Flags: 2
#
1        7.910        108.152        45.685        361023        HNCA
264        7.914        108.271        55.066        146662        HNCA
23        7.90550002    108.1782337    45.629        1368605        HNCACB
323        7.91150002    108.1022337    29.105        -214385        HNCACB
324        7.91050002    108.1442337    55.189        182674        HNCACB
42        7.90656298    108.15922925    176.378201    5550650        HNCO
8        7.907239426    108.1589011    55.1338        434843        HNcoCA
188        7.90574684    108.1821777    55.154111    916206        HNcoCACB
309        7.90574684    108.1401777    29.094111    -710884        HNcoCACB
41        7.906        108.150        610197        HSQC
#
#
#
#
# Spin System 1
#
#    Incomplete Flags: 1
#        HNCA -1 
#    Gly Intra Flags: 2
#
2        8.280        108.567        45.279        997229        HNCA
250        8.27450002    108.5862337    54.951        406760        HNCACB
325        8.27750002    108.5862337    32.005        -377034        HNCACB
327        8.27650002    108.5942337    45.248        4258708        HNCACB
47        8.27656298    108.54622925    174.120201    12943344        HNCO
9        8.277239426    108.5529011    55.0598        1189475        HNcoCA
231        8.27574684    108.5511777    32.289111    -1634500        HNcoCACB
311        8.27274684    108.5341777    55.125111    2088785        HNcoCACB
45        8.282        108.564        1333516        HSQC
#
#
#
#
# Spin System 2
#
#    Incomplete Flags: 4
#        HNcoCA -1  HNCA -1  HNcoCACB -1  HNCACB -1 
#
3        8.332        108.676        45.093        6166932        HNCA
24        8.32950002    108.6892337    31.717        -1065387    HNCACB
326        8.32850002    108.6952337    45.076        30771032    HNCACB
46        8.32856298    108.67522925    174.931201    108363768    HNCO
325        8.32874684    108.6701777    45.216111    42570612        HNcoCACB
44        8.329        108.667        5176627        HSQC
#
...
This report can direct peak picking for missing peaks in the different peak lists.  For example "Spin System 2" is missing 3 to 4 different peaks from different peak lists.


Evaluating Assignment Results

Explanation:
The assignment results from AutoAssign must be evaluated.  The typical problems arise at the ends of assigned segments and with overlapped spin systems.  Also checking assignments that do not have CB assignments coming from both intra and sequential peaks should be checked as well.

To aid in the evaluation are programs for comparison of BMRB assignments to expected values for each type of resonance.  There are also evaluation with respect to other types of data including hCCcoNH TOCSY and 15N-Edited NOESY.  There are also other evaluations that determines if the assigned segments of spin systems break inherent typing degeneracy seen in the sequence.
 

Programs:
bmrb2cmap.pl - converts bmrb format to cmap format.
compare_bmrb.pl   - compares two bmrb files and returns how well they match.
compare_cmap.pl - compares two CMap files and returns how well they match.
bmrb_assign_spl.pl - assigns the spectral_peak_lists in a BMRB file.
dyanaUPL2cmap.pl - converts the backbone NOEs from a DYANA UPL constraint file to the CMap format.
jval2bmrb.pl - converts AutoStructure Input J HNHA values into BMRB coupling constants save frame.
missing_shifts.pl - reports the missing AtomTypes in a given BMRB file.
pks2bmrb.pl - Converts AutoAssign peak list into BMRB spectral peak list save frame.
sec2bmrb.pl - converts AutoStructure output .sec file into BMRB secondary_structure save frame.
typing_degeneracy.pl
- calculates the typing degeneracy for a given sequence.

validate_assignments.pl - validates assignments in bmrb format.

Examples:
1) Checks a BMRB file for missing assignments.
The following command scans a BMRB file for missing assignments:
% missing_shifts.pl -expected -printstats assignments.bmrb
This produces the following report of what is missing:
M1:    CE 17.43  CG 32.13  H 8.29  HA 4.41  HB2 2.01  HB3 2.01  HE 1.84  HG2 2.47  HG3 2.46  N 120.22 
G2:    HA3 3.98 
H3:    C 174.97  CD2 119.64  CE1 136.09  CG 130.59  HB2 3.1  HB3 3.13  HD1 11.56  HD2 7.1  HE1 8.11  HE2 10.99  ND1 192.74  NE2 180.95 
H4:    C 174.97  CD2 119.64  CE1 136.09  CG 130.59  HA 4.62  HB2 3.1  HB3 3.13  HD1 11.56  HD2 7.1  HE1 8.11  HE2 10.99  ND1 192.74  NE2 180.95 
H8:    CA 55.99  CB 29.67  CD2 119.64  CE1 136.09  CG 130.59  H 8.26  HA 4.62  HB2 3.1  HB3 3.13  HD1 11.56  HD2 7.1  HE1 8.11  HE2 10.99  N 118.7  ND1 192.74  NE2 180.95 
S9:    CB 63.77  HB2 3.84  HB3 3.85  HG 5.19 
H10:    CD2 119.64  CE1 136.09  CG 130.59  HB2 3.1  HB3 3.13  HD1 11.56  HD2 7.1  HE1 8.11  HE2 10.99  ND1 192.74  NE2 180.95 
M11:    CE 17.43  CG 32.13  HB2 2.01  HB3 2.01  HE 1.84  HG2 2.47  HG3 2.46 
A12:    HB 1.38 
A13:    HB 1.38 
...
Percentage of AtomTypes >>
    C    ::    150 / 187    =    80.214%
    CA    ::    185 / 187    =    98.930%
    CB    ::    164 / 168    =    97.619%
    CD    ::    0 / 47    =    0.000%
    CD1    ::    0 / 27    =    0.000%
    CD2    ::    0 / 30    =    0.000%
    CE    ::    0 / 31    =    0.000%
...
The missing assignments are organized by residue with their expected values.  This is is useful in directly looking for these assignments.  There is also a summary report for each  resonance class.
2) Statistically validate each assignment in a BMRB file.
The following command checks each assignment in the BMRB file:
% validate_assignments.pl assignments.bmrb
This produces the following report:
M1    Overall: Consistent     Typing: Indeterminable     SRO: Consistent     C Shifts: Indeterminable     H Shifts: Indeterminable

A2    Overall: Consistent     Typing: Consistent     SRO: Consistent     C Shifts: Consistent     H Shifts: Consistent

    PRTL>>    A 0.8541   M 0.1374   L 0.0064   V 0.0009   I 0.0007   T 0.0001  

    C Shift Assignments>>     C :: 179.3     CA :: 51.5     CB :: 19.4

    H Shift Assignments>>     H :: 8.57     HA :: 4.04     HB :: 1.46

K3    Overall: Misassigned     Typing: Suspicious     SRO: Consistent     C Shifts: Misassigned     H Shifts: Consistent

    PRTL>>    M 0.7431   Q 0.184   E 0.0552   Y 0.0099   R 0.0055   F 0.0011   I 0.0009  

    C Shift Assignments>>     C :: 176.4     CA :: 56.6     CB :: 32.7     CG :: 32.7(M)
    Ave C Shift Values>>     C :: 176.46     CA :: 56.84     CB :: 32.83     CG :: 24.91     CD :: 28.78     CE :: 41.78

    H Shift Assignments>>     H :: 8.58     HA :: 4.14     HB2 :: 1.82     HB3 :: 1.82     HG2 :: 1.51     HG3 :: 1.51
...
Error Summary:

K3    Typing: Suspicious
K3    CG = 32.7(M),     Expected = 24.91, Std = 1.3100, ChiSquare = 2.7383e-09
P8    HD2 = 0.82(M),     Expected =  3.64, Std = 0.3600, ChiSquare = 4.7510e-15
P8    HD3 = 0.82(M),     Expected =  3.63, Std = 0.4000, ChiSquare = 2.1407e-12
Q9    Typing: Mistyped
Q9    CD = 29.1(M),     Expected = 179.68, Std = 1.1700, ChiSquare = 0.0000e+00
Q9    HG2 = 3.31(S),     Expected =  2.32, Std = 0.2900, ChiSquare = 6.4065e-04
Q9    HG3 = 3.31(S),     Expected =  2.32, Std = 0.2900, ChiSquare = 6.4065e-04
...
The report is broken down by residue with a summary of suspicious and erroneous chemical shifts at the end.  This program checks each chemical shift against its expected values and types each residue using the aliphatic carbon chemical shifts.  It also reports unknown resonance types and duplicate entries.  
3)  Adds additional types of data to a BMRB file and then converts it to a CMap file for visualization of assignment results.
The following commands converts AutoAssign peak lists into spectral peak list save frames and appends them to a BMRB file:
% pks2bmrb.pl hsqc.pks assignments_plus.bmrb -append
pks2bmrb.pl hnco.pks assignments_plus.bmrb -append
pks2bmrb.pl hnca.pks assignments_plus.bmrb -append
pks2bmrb.pl hncoca.pks assignments_plus.bmrb -append
pks2bmrb.pl hncacb.pks assignments_plus.bmrb -append
pks2bmrb.pl hncocacb.pks assignments_plus.bmrb -append
pks2bmrb.pl hnha.pks assignments_plus.bmrb -append
pks2bmrb.pl hncoha.pks assignments_plus.bmrb -append
pks2bmrb.pl c_hccconh.pks assignments_plus.bmrb -append
pks2bmrb.pl h_hccconh.pks assignments_plus.bmrb -append
The following command assigns the unassigned spectral peak list save frames:
% create_assigned_peaklist.pl assignments_plus.bmrb assignments_plus2.bmrb
The following command converts AutoStructure HNHA J coupling values and appends them to the BMRB file:
% jval2bmrb.pl hnha_j.txt assignments_plus2.bmrb -append
The following command converts the BMRB file to CMap file format:
% bmrb2cmap.pl assignments_plus2.bmrb assignments_plus2.cmap
The following command converts dyana UPL backbone NOE constraints and appends them to the CMap file:
% dyanaUPL2cmap.pl -append n15_noesy.upl assignments_plus2.cmap
The following is the visualization of the CMap file using the AutoAssign CMap Image Editor:
CMap Image
This visualization contains all the Resonance Rows as well as NOE Connectivity Rows, a J Coupling Row, and a Secondary Structure Row.
4) Analyzes the linkage strength and typing degeneracy of assigned spin system segments in a CMap file.
The following command analyzes the typing degeneracy of the assigned segments:
% typing_degeneracy.pl -input assignments.cmap -output report.cmap
This produces the following output:
Suspicious Spin System Segments:

  Segment - Suspicion
  -------------------

  10_PAL - segment mapping is not unique - Likelyhood = 4.8444e-01
        Likelyhood(19_GAF) = 1.4526e-01      Ratio = 3.3351
        Likelyhood(78_SAN) = 5.4626e-01      Ratio = 0.8868
        Likelyhood(100_ECF) = 3.4376e-03     Ratio = 140.9238
        Likelyhood(125_VAL) = 4.8444e-01    Ratio = 1.0000
        Likelyhood(144_KAI) = 3.3615e-03     Ratio = 144.1141

  24_GHFKD - segment mapping is not unique - Likelyhood = 7.9198e-01
        Likelyhood(30_KRLYC) = 3.2701e-02     Ratio = 24.2192
        Likelyhood(53_REKSD) = 2.0389e-03      Ratio = 388.4319
        Likelyhood(58_PHIKL) = 8.3012e-02       Ratio = 9.5406
        Likelyhood(60_IKLQL) = 7.5661e-03       Ratio = 104.6748
        Likelyhood(84_AMKED) = 1.0668e-03    Ratio = 742.3855
        Likelyhood(99_DECFF) = 7.4711e-02      Ratio = 10.6005
        Likelyhood(100_ECFFF) = 6.8821e-02     Ratio = 11.5079
        Likelyhood(131_GQYKL) = 2.9742e-01   Ratio = 2.6628

  87_EDGR - segment mapping is not unique - Likelyhood = 4.4020e-01
        Likelyhood(45_PDGR) = 8.8520e-04       Ratio = 497.2905
        Likelyhood(49_VDGV) = 7.2126e-03      Ratio = 61.0327
...
This shows three segments that are not as uniquely typed as one would hope.  This does not mean they are misassigned; however, they do deserve a closer look.

The following is the visualization of the CMap file generated by typing_degeneracy.pl:

CMap Image
The Degeneracy Length Row shows the minimum degeneracy of overlapping sequence segments.  The parts in red shows spin system segments not long enough to break this degeneracy.  The Linkage Strength Row shows the number of resonance rungs (and/or NOE connectivity rungs) indicating that the neighboring spin systems are linked.



Manipulating BMRB (NMRStar) Files

Explanation:
NMR Star is the file format for depositing NMR assignments with the BioMagneticResBank.  AutoAssign produces assignments in NMR Star (BMRB) format.  However, a complete BMRB entry contains more than the assigned chemical shift save frame.  AutoPeak contains a collection of BMRB conversion and manipulation programs for comparing assignments, validating assignments, and creating a (more) complete BMRB entry.

There are also many conversion programs from BMRB to other formats for use inside AutoAssign and Sparky.

Programs:
bmrb2cmap.pl - converts bmrb format to cmap format.
bmrbACS2pks.pl - converts BMRB assigned chemical shifts frame to an AutoAssign peak list.
bmrbACS2SparkyPks.pl - converts bmrb assigned chemical shift save frame to Assigned Sparky Peak List format.
bmrb2AutoStructure.pl - converts bmrb format to AutoStructure Resonance List format.
bmrbSPL2pks.pl - converts BMRB spectral peak list frames to an AutoAssign peak lists.
bmrbSPL2SparkyPks.pl - converts BMRB spectral peak list frames to Sparky peak lists.
bmrb2SparkyRL.pl - converts bmrb format to Sparky Resonance List format.
bmrb_assign_spl.pl - assigns the spectral_peak_lists in a BMRB file.
bmrb_apply_shifting.pl - apply atom type shifting to the shifts of a bmrb file.
bmrb_calculate_shifting.pl - calculate difference in same shifts between two bmrb files.
bmrb_extract_shifts.pl - extract a list of shifts from a bmrb file.
cmap2bmrb.pl - converts a cmap file into a BMRB file.
compare_bmrb.pl   - compares two bmrb files and returns how well they match.
concat_bmrb_shifts.pl   - combine a set of bmrb files.
create_bmrb.pl   - converts a list of shift assignments in 3 column format into a BMRB file.
jval2bmrb.pl - converts AutoStructure Input J HNHA values into BMRB coupling constants save frame.
manage_bmrb.pl - manage save frames inside a BMRB file.
missing_shifts.pl - reports the missing AtomTypes in a given BMRB file.
pks2bmrb.pl - Converts AutoAssign peak list into BMRB spectral peak list save frame.
sec2bmrb.pl - converts AutoStructure output .sec file into BMRB secondary_structure save frame.
sparkyPks2bmrb.pl - converts a sparky peaklist into a BMRB assigned peak list save frame.
sparkyRL2bmrb.pl - converts Sparky resonance list into a BMRB file. 
Examples:
1) Compare two BMRB files to see how assignments from two different samples differ.
The following command compares two BMRB files:
% compare_bmrb.pl data1.bmrb data2.bmrb -master -verbose -Ct 0.5 -Nt 0.5 -Ht 0.05
This comparison makes the first BMRB the template or "master" chemical shift list to compare to.

This produces the following output:
(data2.bmrb)    F4     - N 116.4     !=  115.66,115.66    (data1.bmrb)
(data2.bmrb)    C14    - N 119.9     !=  117.66,117.66    (data1.bmrb)
(data2.bmrb)    C14    - H 8.66     !=  8.605,8.605,8.5941    (data1.bmrb)
(data2.bmrb)    C14    - CA 60.81     !=  60.22    (data1.bmrb)
(data2.bmrb)    K15    - HA 4.63     !=  4.578    (data1.bmrb)
(data2.bmrb)    I18    - N 125.6     !=  125.06,125.06    (data1.bmrb)
(data2.bmrb)    Y21    - N 115.1     !=  115.66,115.66    (data1.bmrb)
(data2.bmrb)    F22    - HA 5.49     !=  5.438    (data1.bmrb)
(data2.bmrb)    A27    - HA 4.41     !=  4.468    (data1.bmrb)
(data2.bmrb)    T32    - N 108.0     !=  108.66,108.66    (data1.bmrb)
(data2.bmrb)    T32    - HA 5.51     !=  5.458    (data1.bmrb)
(data2.bmrb)    K41    - HA 4.55     !=  4.618    (data1.bmrb)
(data2.bmrb)    N44    - HA 5.15     !=  5.068    (data1.bmrb)
(data2.bmrb)    K46    - CA 58.78     !=  58.22    (data1.bmrb)
(data2.bmrb)    E49    - N 117.4     !=  119.56,119.56    (data1.bmrb)
(data2.bmrb)    C51    - HA 1.76     !=  1.878    (data1.bmrb)
(data2.bmrb)    R53    - N 121.1     !=  120.26,120.26    (data1.bmrb)
(data2.bmrb)    R53    - HA 4.20     !=  4.148    (data1.bmrb)
(data2.bmrb)    C55    - HA 4.79     !=  4.608    (data1.bmrb)
(data2.bmrb)    G57    - HA 4.05     !=  4.158,3.968    (data1.bmrb)

Comparison of data1.bmrb and data2.bmrb has 20 errors.

Comparison of data1.bmrb and data2.bmrb has 176 comparable shifts.

Master list data1.bmrb has 190 unused shifts.
This gives a report of those chemical shifts in the second BMRB file that differ from chemical shifts present in the first by amounts larger than the given tolerances.

2) Extract certain save frames from a BMRB file.
The following command shows which save frames are in the BMRB file:
% manage_bmrb.pl bmr4995.str
This produces the following output:
List of save frames in bmr4995.str
----------------------------------
  1) entry_information - entry_information
  2) entry_citation - entry_citation
  3) system_GlyTM1bZip - molecular_system
  4) GlyTM1bZip - monomeric_polymer
  5) natural_source - natural_source
  6) experimental_source - experimental_source
  7) GlyTM1bZip_ - sample
  8) 15N-GlyTM1bZip - sample
  9) 15N - sample
 10) GlyTM1bZip_heterodimer - sample
 11) VNMR - software
 12) SPARKY - software
 13) AutoAssign - software
 14) AutoStructure - software
 15) Dyana - software
 16) NMR_spectrometer - NMR_spectrometer
 17) NMR_applied_experiment - NMR_applied_experiment
 18) conditions_1 - sample_conditions
 19) chemical_shift_reference - chemical_shift_reference
 20) chemical_shifts - assigned_chemical_shifts
 21) GlyTM1bZip - coupling_constants
The following command extracts save frames 1, 19, 20, 11, 12, 13, 14, and 15 into a new BMRB file in that order:
% manage_bmrb.pl bmr4995.str -extract 1,19,20,11,12,13,14,15 -output subset1.bmrb
The following command shows a list of save frames in the new BMRB file (subset1.bmrb):
%  manage_bmrb.pl subset1.bmrb
This produces the following output:
List of save frames in subset1.bmrb
----------------------------------
  1) entry_information - entry_information
  2) chemical_shift_reference - chemical_shift_reference
  3) chemical_shifts - assigned_chemical_shifts
  4) VNMR - software
  5) SPARKY - software
  6) AutoAssign - software
  7) AutoStructure - software
  8) Dyana - software