Once all the peak intensity data has been loaded a few calculations are required prior to optimisation. Firstly the peak intensities for individual spins needs to be averaged across replicated spectra. The peak intensity errors also have to be calculated using the standard deviation formula. These two operations are executed by the user functions:
[firstnumber=119] # Peak intensity error analysis. spectrum.error_analysis(subset=['500_reference.in', '500_66.667.in', '500_133.33.in', '500_133.33.in.bis', '500_200.in', '500_266.67.in', '500_333.33.in', '500_400.in', '500_466.67.in', '500_533.33.in', '500_533.33.in.bis', '500_600.in', '500_666.67.in', '500_733.33.in', '500_800.in', '500_866.67.in', '500_933.33.in', '500_933.33.in.bis', '500_1000.in']) spectrum.error_analysis(subset=['800_reference.in', '800_66.667.in', '800_133.33.in', '800_133.33.in.bis', '800_200.in', '800_266.67.in', '800_333.33.in', '800_400.in', '800_466.67.in', '800_533.33.in', '800_533.33.in.bis', '800_600.in', '800_666.67.in', '800_733.33.in', '800_800.in', '800_866.67.in', '800_933.33.in', '800_933.33.in.bis', '800_1000.in'])
Here the 500 MHz and 800 MHz peak intensity errors have been calculated separately as they should not be the same.
Any spins which cannot be resolved due to peak overlap were included in a file called unresolved. This file can consist of optional columns of the molecule name, the residue name and number, and the spin name and number. The matching spins are excluded from the analysis by the user functions:
[firstnumber=123] # Deselect unresolved spins. deselect.read(file='unresolved', dir='500_MHz', res_num_col=1) deselect.read(file='unresolved', dir='800_MHz', res_num_col=1)