# Launch PyMOL with the "-R" option (pymol -R),
# open a Python 3 notebook, then execute
# remote control of PyMOL (RPC) with XML-RPC:
# https://pymolwiki.org/index.php/Jupyter
# https://pymolwiki.org/index.php/RPC
import xmlrpc.client as xmlrpclib
cmd = xmlrpclib.ServerProxy('http://localhost:9123')
from IPython import display
import prody as pd
import matplotlib.pyplot as plt
import numpy as np
In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The text.latex.preview rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The mathtext.fallback_to_cm rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: Support for setting the 'mathtext.fallback_to_cm' rcParam is deprecated since 3.3 and will be removed two minor releases later; use 'mathtext.fallback : 'cm' instead. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The validate_bool_maybe_none function was deprecated in Matplotlib 3.3 and will be removed two minor releases later. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The savefig.jpeg_quality rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The keymap.all_axes rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The animation.avconv_path rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later. In /home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: The animation.avconv_args rcparam was deprecated in Matplotlib 3.3 and will be removed two minor releases later.
# PDB: 6AF7
# Question: B
cmd.fetch('6af7')
'6af7'
prot = pd.parsePDB('6af7')
@> PDB file is found in working directory (6af7.pdb.gz). @> 1670 atoms and 1 coordinate set(s) were parsed in 0.04s.
prot
<AtomGroup: 6af7 (1670 atoms)>
prot.select('protein')
<Selection: 'protein' from 6af7 (1375 atoms)>
prot.select('water')
<Selection: 'water' from 6af7 (278 atoms)>
mean_betas = [[residue, np.mean(residue.getBetas())] for residue in prot.iterResidues() if not residue.getResname() == 'HOH']
mean_min = sorted(mean_betas, key=lambda x:x[1])[0]
mean_max = sorted(mean_betas, key=lambda x:x[1], reverse=True)[0]
print('{} = > остаток с наименьшим средним B-фактором - {} {} {}'.format(mean_min, mean_min[0].getResname(), mean_min[0].getResnum(), mean_min[0].getChain()))
print('{} = > остаток с наибольшим средним B-фактором - {} {} {}'.format(mean_max, mean_max[0].getResname(), mean_max[0].getResnum(), mean_max[0].getChain()))
[<Residue: ASP 24 from Chain A from 6af7 (8 atoms)>, 8.6325] = > остаток с наименьшим средним B-фактором - ASP 24 Chain A [<Residue: LYS 188 from Chain A from 6af7 (9 atoms)>, 46.94777777777778] = > остаток с наибольшим средним B-фактором - LYS 188 Chain A
cmd.hide('everything')
cmd.bg_color('white')
cmd.remove('solvent')
cmd.show('cartoon', 'all')
cmd.color('white', '(chain B)')
cmd.color('gray80', '(elem C)')
cmd.select('mean_min', 'chain A and resn ASP and resi 24')
cmd.show('sticks', 'mean_min')
cmd.select('mean_max', 'chain A and resn LYS and resi 188')
cmd.show('sticks', 'mean_max')
cmd.color('brightorange', 'mean_min and elem C')
cmd.color('br6', 'mean_max and elem C')
cmd.do('''
label mean_min and name CA, "%s-%s" %(resn, resi)
label mean_max and name CA, "%s-%s" %(resn, resi)
set label_position, [1.25, 0.0, 4.0]
set label_size, 15
set_view (\
-0.418397278, -0.112094231, -0.901318073,\
-0.021426508, 0.993292212, -0.113584653,\
0.908009350, -0.028210996, -0.417994142,\
0.000038746, 0.000239812, -127.727256775,\
25.390388489, -28.355455399, -13.491750717,\
-442.048858643, 697.502502441, -20.000000000 )
set cartoon_side_chain_helper, 1
set cartoon_transparency, 0.5
set ray_trace_mode, 1
''')
#cmd.ray
#cmd.save('save 6af7_b_factor_min_max.png')
cmd.select('site_mean_min', 'byres all within 5 of mean_min')
cmd.show('sticks', 'site_mean_min')
cmd.do('''
label resi 28 and name CA, "%s-%s" %(resn, resi)
distance hb, /6af7/A/A/ASP`24/OD1, /6af7/A/A/ARG`28/NE
distance el, /6af7/A/A/ASP`24/CG, /6af7/A/A/ARG`28/CZ
set label_position, [1.25, 0.7, 4.0]
set_view (\
-0.187568501, -0.311651707, -0.931493521,\
-0.923475862, 0.379054368, 0.059135117,\
0.334658891, 0.871309340, -0.358902991,\
-0.000283993, 0.000334561, -42.029586792,\
24.909597397, -34.431182861, -14.393379211,\
-527.726074219, 611.825256348, -20.000000000 )
color paleyellow, hb
color lightblue, el
''')
#cmd.ray
#cmd.save('save asp24-arg28.png')
asp24 = prot.select('resname ASP and chain A and resnum 24')
lys188 = prot.select('resname LYS and chain A and resnum 188')
asp24_betas = []
lys188_betas = []
print(' ASP 24 Chain A')
for atom in asp24.iterAtoms():
beta = np.mean(atom.getBeta())
asp24_betas.append(beta)
print(atom, beta)
print('\n LYS 188 Chain A')
for atom in lys188.iterAtoms():
beta = np.mean(atom.getBeta())
lys188_betas.append(beta)
print(atom, beta)
asp24_beta_diff = np.max(asp24_betas) - np.min(asp24_betas)
lys188_beta_diff = np.max(lys188_betas) - np.min(lys188_betas)
print('\nРазброс значений B-факторов атомов ASP 24 цепи A: {}'.format(asp24_beta_diff))
print('Разброс значений B-факторов атомов LYS 188 цепи A: {}'.format(lys188_beta_diff))
ASP 24 Chain A Atom N (index 161) 7.91 Atom CA (index 162) 8.22 Atom C (index 163) 8.33 Atom O (index 164) 9.15 Atom CB (index 165) 8.27 Atom CG (index 166) 8.64 Atom OD1 (index 167) 9.38 Atom OD2 (index 168) 9.16 LYS 188 Chain A Atom N (index 1366) 21.12 Atom CA (index 1367) 28.51 Atom C (index 1368) 41.03 Atom O (index 1369) 53.24 Atom CB (index 1370) 31.67 Atom CG (index 1371) 40.79 Atom CD (index 1372) 54.86 Atom CE (index 1373) 64.77 Atom NZ (index 1374) 86.54 Разброс значений B-факторов атомов ASP 24 цепи A: 1.4700000000000006 Разброс значений B-факторов атомов LYS 188 цепи A: 65.42
Остаток с наименьшим средним B-фактором (8.63) - ASP 24 цепи A. Остаток с наибольшим средним B-фактором (46.95) - LYS 188 цепи A. Разброс значений B-факторов атомов LYS 188 значительно больше разброса атомов ASP 24 (65.42 и 1.47 соответственно)
Лизин 188 является C-терминальным, полностью окружен раствором, а аспартат 24 является остатком альфа-спирали (рисунок 1). ASP 24 образует водородную связь и солевой мостик с ARG 28 (рисунок 2). Таким образом, аспартат 24 находится в сильно структурированном участке белка, подвижность когорого ограничена из-за стабильной вторичной структуры, а также сам остаток дополнительно стабилизирован двумя взаимодействиями, что сильно затружняет подвижность этого остатка и делает его B-фактор минимальным. В случае лизина 188 нет ни стабилизирующих элементов вторичной структуры, ни дополнительных контактов, поэтому его подвижность ничто не сдерживает и B-фактор у него максимальный.
display.Image('/home/eva/pymol/6af7_b_factor_min_max.png')
Рисунок 1. Структура 6AF7 в виде cartoon. Остатки с наименьшим (оранжевый) и наибольшим (фиолетовый) средним B-фактором выделены с помощью sticks.
display.Image('/home/eva/pymol/asp24-arg28.png')
Рисунок 2. Остаток с наименьшим средним B-фактором (8.63) - ASP 24 цепи A. ASP 24 образует водородную связь (желтая пунктирная линия) и солевой мостик (голубая пунктирная линия) с ARG 28 (рисунок 2)
def calc_bd(prot):
no_sol = prot.select('protein')
prot_mass_center = pd.calcCenter(no_sol, weights=no_sol.getMasses())
distances = []
betas = []
for residue in prot.iterResidues():
if 'CA' in residue.getNames():
beta = np.mean(residue.getBetas())
betas.append(beta)
mass_center = pd.calcCenter(residue, weights=residue.getMasses())
distance = pd.calcDistance(prot_mass_center, mass_center)
distances.append(distance)
return distances, betas
distances, betas = calc_bd(prot)
На рисунке 3 представлен scatter plot зависимости B-фактора от расстояния до центра белка 6AF7. Видно, что при уведичении растояния от центра масс B-фактор увеличивается. Возможно, это связано с тем, что при удалении от центра масс белка увеличивается также и подвижность остатков.
fig, axes = plt.subplots(figsize=(8,6))
axes.scatter(distances, betas, s=7)
axes.set_xlabel('Distance between mass centeres, Å')
axes.set_ylabel('B-factor')
fig.show()
/home/eva/miniconda/envs/py3.6/lib/python3.6/site-packages/ipykernel_launcher.py:5: UserWarning: Matplotlib is currently using module://ipykernel.pylab.backend_inline, which is a non-GUI backend, so cannot show the figure. """
Рисунок 3. Scatter plot зависимости B-фактора от расстояния до центра белка 6AF7.
Цель практикума попытаться воспроизвести ход кристаллографического эксперимента на умозрительном и крайне упрощенном примере. Мы сами сгенерируем электронную плотность, разложим ее в ряд Фурье, а затем будем восстанавливать исходную функцию, имитируя ту или иную степень потери данных в ходе эксперимента.
Упрощения, которые вводятся в этом практикуме:
Нужно задать расположение 2 или 3 молекул состоящих из двух или трех атомов (желательно в сумме иметь не больше семи атомов). Раскидать по отрезку в 30 ангстрем 5-7 точек.
Функция задается на интервале [0,30]. Моделируется в 1D график электронной плотности молекулы. Функция имеет вид суммы нескольких гауссовых кривых с центром в разных точках. Иногда - на расстоянии 1-1.5 ангстрем - модель ковалентно связанных атомов; иногда 3-5 ангстрем (расстояние между молекулами).
Гауссова функция определяется числами lambda, beta, gamma по формуле:
gauss = lambda*exp(-(beta^2)*(X-gamma)^2) Здесь a^2=a*a.
Изображение модели функции электронной плотности представлено на рисунке 4.
При моделировании экспериментальных данных учитывается, что в эксперименте, во-первых, определяются амплитуды не для всех сигналов; во-вторых, интенсивности сигналов (следовательно, и амплитуды) определяются с ошибкой; в-третьих, фазы определяется для всех измененных сигналов, но тоже с ошибкой.
Добавление гауссового шума к амплитудам (параметр -F <число>) и фазам (-P <число>) искажает все вычисленные амплитуды и фазы. Пример: -F 20 (шум 20%) приводит к тому, что к каждой амплитуде прибавляется случайное число, распределенное нормально с параметрами: среднее = 0, среднее квадратичное отклонение (сигма)=0.2*F. Аналогично действует параметр -P <число>
Таким образом мы получаем наборы смоделированных экспериментальных данных, по которым можем начать восстанавливать нашу исходную электронную плотность, с целью сравнить ее с исходной (идеально), и определить как именно неполнота данных из эксперимента влияет на качество восстановления электронной плотности.
На рисунках 5-9 показаны восстановленные без зашумления (F = 0, P = 0) по различным начальным интервалам (5 интервалов: 0-5, 0-10, 0-20, 0-35, 0-50) гармоник функции электронной плотности. Качество восстановление увеличивается с длиной интервала: на интервале 0-5 качество восстановления плохое (нельзя определить количество молекул, сходство с исходной функцией отсутствует), на 0-10 - среднее (можно определить количество молекул, нельзя - количество атомов в молекулах, низкое сходство с исходной функцией), на 0-20 - хорошее (можно примерно определить количество атомов в молекулах, удовлетворительное сходство с исходной функцией), на интервалах 0-35, 0-50 - отличное (количество атомов в молекула определяется точно, высокое сходство с исходной функцией).
На рисунках 10-13 представлены восстановленные без зашумления (F = 0, P = 0) по различным по неполным наборам гармоник: 12-15, 17-30 (53%), 0-10, 15, 17-30 (80%), 0-10, 12-15, 17-30 (87%) и 0-15, 17-30 (93%). Чем меньше полнота гармоники, тем хуже качество восстановления (51% - плохое качество восстановления, 74%, 83% - хорошее, 86% - отличное). Возможно, имеет значение, какие именно гармоники удаляляются: гармоники, отвечающие низкому разрешению (начальные гармоники), играют не так сильно важны в различении деталей, как гармоники более высокого разрешения.
Востановленные с зашумлением амплитуд (F = 20%, 50%, 70%) или фаз (P = 20%, 50%, 70%) функции электронной плотности изображены на рисунках 14-19. При добавлении шума к амплитудам возможность определения количества атомов не теряется, но с увеличением процента шума (20% -> 50% -> 70%) качество восстановления падает (отличное -> хорошее -> среднее соответственно). При добавлении шума к фазам качество восстановления падает аналогично, но сильнее и при 70% вазового шума различить количество атомов в молекулах невозможно (хорошее -> среднее -> плохое соответственно). При зашумлении и фаз, и амплитуд (F = 20%, P = 70%; F = 70%, P = 20%, F = 20%, P = 20% и F = 70%, P = 70% на рисунках 20-23) в случае комбинации 70% шума к амплитудам и 20% шума к фазам определить количество атомов возможно, в отличии от комбинации 20% шума к амплитудам и 70% шума к фазам. В свзяи с этим можно предположить, что высокий процент шума в фазах сильнее влияет на качество восстановления (делает его хуже) исходной функции, чем высокий процент шума в амплитудах. При одинаково высоком уровне шума и в амплитудах, и в фазах (F = 70%, P = 70%) качество восстановления плохое.
python2 compile-func.py -g 30,3,3+40,3,4.3+2,3.5,6.5+30,3,7.5 -o f.txt
python2 func2fourier.py -i f.txt -o f_ft.txt
python2 fourier-filter.py -i f_ft.txt -r 0-5 -o f_ft_0-5.txt
python2 fourier2func.py -f f.txt -i f_ft_0-5.txt -o f_f_0-5.txt
python2 fourier-filter.py -i f_ft.txt -r 0-10 -o f_ft_0-10.txt
python2 fourier2func.py -f f.txt -i f_ft_0-10.txt -o f_f_0-10.txt
python2 fourier-filter.py -i f_ft.txt -r 0-20 -o f_ft_0-20.txt
python2 fourier2func.py -f f.txt -i f_ft_0-20.txt -o f_f_0-20.txt
python2 fourier-filter.py -i f_ft.txt -r 0-35 -o f_ft_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_0-35.txt -o f_f_0-35.txt
python2 fourier-filter.py -i f_ft.txt -r 0-50 -o f_ft_0-50.txt
python2 fourier2func.py -f f.txt -i f_ft_0-50.txt -o f_f_0-50.txt
python2 fourier-filter.py -i f_ft.txt -r 0-15,17-30 -o f_ft_0-15_17-30.txt
python2 fourier2func.py -f f.txt -i f_ft_0-15_17-30.txt -o f_f_0-15_17-30.txt
python2 fourier-filter.py -i f_ft.txt -r 0-10,12-15,17-30 -o f_ft_0-10_12-15_17-30.txt
python2 fourier2func.py -f f.txt -i f_ft_0-10_12-15_17-30.txt -o f_f_0-10_12-15_17-30.txt
python2 fourier-filter.py -i f_ft.txt -r 0-10,15,17-30 -o f_ft_0-10_15_17-30.txt
python2 fourier2func.py -f f.txt -i f_ft_0-10_15_17-30.txt -o f_f_0-10_15_17-30.txt
python2 fourier-filter.py -i f_ft.txt -r 12-15,17-30 -o f_ft_12-15_17-30.txt
python2 fourier2func.py -f f.txt -i f_ft_12-15_17-30.txt -o f_f_12-15_17-30.txt
python2 func2fourier.py -i f.txt -o f_ft_F20.txt -F 20
python2 fourier-filter.py -i f_ft_F20.txt -r 0-35 -o f_ft_F20_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F20_0-35.txt -o f_f_F20_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_F50.txt -F 50
python2 fourier-filter.py -i f_ft_F50.txt -r 0-35 -o f_ft_F50_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F50_0-35.txt -o f_f_F50_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_F70.txt -F 70
python2 fourier-filter.py -i f_ft_F70.txt -r 0-35 -o f_ft_F70_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F70_0-35.txt -o f_f_F70_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_P20.txt -P 20
python2 fourier-filter.py -i f_ft_P20.txt -r 0-35 -o f_ft_P20_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_P20_0-35.txt -o f_f_P20_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_P50.txt -P 50
python2 fourier-filter.py -i f_ft_P50.txt -r 0-35 -o f_ft_P50_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_P50_0-35.txt -o f_f_P50_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_P70.txt -P 70
python2 fourier-filter.py -i f_ft_P70.txt -r 0-35 -o f_ft_P70_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_P70_0-35.txt -o f_f_P70_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_F20_P70.txt -F 20 -P 70
python2 fourier-filter.py -i f_ft_F20_P70.txt -r 0-35 -o f_ft_F20_P70_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F20_P70_0-35.txt -o f_f_F20_P70_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_F70_P20.txt -F 70 -P 20
python2 fourier-filter.py -i f_ft_F70_P20.txt -r 0-35 -o f_ft_F70_P20_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F70_P20_0-35.txt -o f_f_F70_P20_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_F20_P20.txt -F 20 -P 20
python2 fourier-filter.py -i f_ft_F20_P20.txt -r 0-35 -o f_ft_F20_P20_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F20_P20_0-35.txt -o f_f_F20_P20_0-35.txt
python2 func2fourier.py -i f.txt -o f_ft_F70_P70.txt -F 70 -P 70
python2 fourier-filter.py -i f_ft_F70_P70.txt -r 0-35 -o f_ft_F70_P70_0-35.txt
python2 fourier2func.py -f f.txt -i f_ft_F70_P70_0-35.txt -o f_f_F70_P70_0-35.txt
display.Image('f1.png')
Рисунок 4. Функция электронной плотности, заданная compile-func.py -g 30,3,3+40,3,4.3+2,3.5,6.5+30,3,7.5. Это сумма четырех гауссовых функций: их максимумы в точках 3, 4.3, 6.5, 7.5, высота 30, 40, 2, 30 соответственно; третий - низкий - пик моделирует атом водорода.
display.Image('f_f_0-5.png')
Рисунок 5. Восстановленные без зашумления амплитуд (P) и фаз (F) по первым 5 гармоникам функции электронной плотности.
display.Image('f_f_0-10.png')
Рисунок 6. Восстановленные без зашумления амплитуд (P) и фаз (F) по первым 10 гармоникам функции электронной плотности.
display.Image('f_f_0-20.png')
Рисунок 7. Восстановленные без зашумления амплитуд (P) и фаз (F) по первым 20 гармоникам функции электронной плотности.
display.Image('f_f_0-35.png')
Рисунок 8. Восстановленные без зашумления амплитуд (P) и фаз (F) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_0-50.png')
Рисунок 9. Восстановленные без зашумления амплитуд (P) и фаз (F) по первым 50 гармоникам функции электронной плотности.
display.Image('f_f_0-15_17-30.png')
Рисунок 10. Восстановленные без зашумления амплитуд (P) и фаз (F) по 93% гармоник функции электронной плотности.
display.Image('f_f_0-10_12-15_17-30.png')
Рисунок 11. Восстановленные без зашумления амплитуд (P) и фаз (F) по 87% гармоник функции электронной плотности.
display.Image('f_f_0-10_15_17-30.png')
Рисунок 12. Восстановленные без зашумления амплитуд (P) и фаз (F) по 80% гармоник функции электронной плотности.
display.Image('f_f_12-15_17-30.png')
Рисунок 13. Восстановленные без зашумления амплитуд (P) и фаз (F) по 53% гармоник функции электронной плотности.
display.Image('f_f_F20_0-35.png')
Рисунок 14. Восстановленные с зашумления фаз (F=20%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_F50_0-35.png')
Рисунок 15. Восстановленные с зашумлением фаз (F=50%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_F70_0-35.png')
Рисунок 16. Восстановленные с зашумлениум фаз (F=70%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_P20_0-35.png')
Рисунок 17. Восстановленные с зашумлением амплитуд (P=20%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_P50_0-35.png')
Рисунок 18. Восстановленные с зашумлением амплитуд (P=50%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_P70_0-35.png')
Рисунок 19. Восстановленные с зашумлением амплитуд (P=70%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_F20_P70_0-35.png')
Рисунок 20. Восстановленные с зашумлением амплитуд (F=20%) и фаз (P=70%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_F70_P20_0-35.png')
Рисунок 21. Восстановленные с зашумлением амплитуд (F=70%) и фаз (P=20%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_F20_P20_0-35.png')
Рисунок 22. Восстановленные с зашумлением амплитуд (F=20%) и фаз (P=20%) по первым 35 гармоникам функции электронной плотности.
display.Image('f_f_F70_P70_0-35.png')
Рисунок 23. Восстановленные с зашумлением амплитуд (F=70%) и фаз (P=70%) по первым 35 гармоникам функции электронной плотности.
Таблица 1. Восстановление функции по коэффициентам ряда Фурье.
Набор гармоник | Разрешение(Å) | Полнота данных(%) | Шум амплитуды (% от величины F) | Шум фазы (% от величины phi) | Качество восстановления(отличное, хорошее, среднее, плохое) | |
---|---|---|---|---|---|---|
Полный | набор | гармоник | ||||
0–5 | 6 | 100 | 0 | 0 | Плохое | |
0–10 | 3 | 100 | 0 | 0 | Среднее | |
0–20 | 1,50 | 100 | 0 | 0 | Хорошее | |
0–35 | 0,86 | 100 | 0 | 0 | Отличное | |
0–50 | 0,86 | 100 | 0 | 0 | Отличное | |
0–35 | 0,86 | 100 | 20 | 0 | Отличное | |
0–35 | 0,86 | 100 | 50 | 0 | Хорошее | |
0–35 | 0,86 | 100 | 70 | 0 | Среднее | |
0–35 | 0,86 | 100 | 0 | 20 | Хорошее | |
0–35 | 0,86 | 100 | 0 | 50 | Среднее | |
0–35 | 0,86 | 100 | 0 | 70 | Плохое | |
0–35 | 0,86 | 100 | 20 | 70 | Плохое | |
0–35 | 0,86 | 100 | 70 | 20 | Отличное | |
0–35 | 0,86 | 100 | 20 | 20 | Хорошее | |
0–35 | 0,86 | 100 | 70 | 70 | Плохое | |
Неполный | набор | гармоник | ||||
12-15, 17-30 | 1,86 | 53 | 0 | 0 | Плохое | |
0-10, 15, 17-30 | 1,25 | 80 | 0 | 0 | Среднее | |
0-10, 12-15, 17-30 | 1.15 | 87 | 0 | 0 | Хорошее | |
0-15, 17-30 | 1.07 | 93 | 0 | 0 | Отличное | |