A picture of DNA should be here

Восстановление функции электронной плотности

 

В данной работе исследовалось качество восстановления одномерной функции ЭП в зависимости от количества гармоник ряда Фурье, использованных для ее построения, а также от наличия шума в моделируемом эксперименте.

Задание функции ЭП для модели

Была создана модель компьютерного эксперимента: 2 линейных трехатомных молекулы O-C-N и Cl-Ca-Cl. Для этой модели была задана функция на интервале [0Å, 30Å], описывающая ЭП с помощью скрипта compile-func.py:

python compile-func.py -g 32,3,8+24,3,9.5+28,3,11+71,2.00,16+80,2.0,17.5+71,2.00,19

Функция имеет вид нескольких гауссовых кривых с центром в разных точках.

gauss = lambda*exp(-(beta²)*(X-gamma)²)

 

lambda - высота гауссовской кривой, соответствующая максимуму электронной плотности в центре атома. Пропорционально числу электронов в атоме:

beta - ширина колокола, которая примерно соответствует диаметру атома. Для простоты были приняты значения только 1 и 2

gamma - координата максимума гауссовой кривой. Расстояние между молекулами - 5.5 Å, длина всех связей - 1.5 Å.

График электронной плотности модели атомов представлен на рисунке 1. Выходной файл скрипта доступен по ссылке.

Рис. 1. График электронной плотности модели атомов

Коэффициенты Фурье рассчитываются с помощью скрипта func2fourier.py следующей командой:

python func2fourier.py -i func.txt

Выходной файл скрипта – файл func_ft.txt.

 

  

Отбор гармоник

Набор гармоник ряда Фурье называется полным, если известны все гармоники с номерами 0, 1, 2, ..., n. Разрешением полного набора гармоник называется период гармоники с номером n, то есть с наибольшим номером. Период гармоники равен расстоянию между соседними максимумами синусоиды. Его также называют длиной волны этой гармоники. 

По полному набору гармоник был построен график восстановленной функции электронной плотности модели с помощью скрипта fourier2func.py командой:

python fourier2func.py -f func.txt -i func_ft.txt -s -o harm_full.txt

Графики первоначальной и восстановленной функции представлены на рис.2. Из рис. 2 видно, что при количестве  гармоник, равном 499 (в файле func_ft.txt именно такое количество гармоник - от 0 до 498), удается восстановить исходную функцию без каких-либо потерь информации. То есть восстановление отличное.

Рис. 2 Графики первоначальной (слева) и восстановленной функции (справа)

 

Как сравнить восстановленную функцию с исходной?

Восстановим теперь функцию по меньшему полному набору гармоник. На рис. 3 (а-г) представлены графики функций, восстановленных по неполному набору гармоник, а именно 5, 10, 20, 40. Изображения были получены с помощью:
python fourier-filter.py -r 0-n -i func_ft.txt -o hf_n.txt
python fourier2func.py -f func.txt -i hf_n.txt -o hf_n_f2f.txt

где n - наибольший номер гармоники

Рис.3 Графики восстановленных функций 
Графики исходной функции представлен сплошной линией, а восстановленных функций - пунктиром. Номера гармоник: A. - 0-5; Б. - 0-10; В. - 0-20; Г. - 0-22.

Исходя из графиков на рис.3, видно, что гармоник 22 - это минимальное число гармоникпри котором функция сохраняет отличное восстановление.

Добавим шум к амплитудам и фазам при восстановлении по полному набору гармоник. Стоит отметить, что  шум в фазах вносит гораздо больший вклад в изменения, чем шум в амплитудах.

Добавление шума к амплитуде (F) и к фазе (P)
python func2fourier.py -F 10 -P 0 -i func.txt -o noise_f10p0.txt 
python fourier-filter.py -r 0-22 -i noise_f10p0.txt -o noise_f10p0_22.txt 
python fourier2func.py -i noise_f10p0_22.txt -o func_noise_f10p0_22.txt

Рис.4 Графики восстановленных функций 
Графики изначальной функции электронной плотности (слошная линия) и восстановленной (пунктирная линия) для 22 гармоник A. - с шумом 25% к амплитуде; Б. - 25% к фазе; В - 15% к амплитуде и 5% к фазе. Г - 5% к амплитуде и 15% к фазе


Неполные наборы гармоник

Сделаем неполные наборы гармоник для набора n0: удалим несколько первых гармоник, удалим 9% серединных гармоники, добавим гармонику с номером n0+10 (32).

Первую гармонику я удалять не стала, так как очевидно график никак не ухудшится, а только сдвинется на константу по оси y, так как эта гармоника есть константа, длины волны у нее нет. Если же удалить первые три, то вычитается синусоида с периодом T/3.

Рис.5 Неполные наборы гармоник 
Графики функций, восстановленных по неполному набору гармоник изображены пунктиром, исходная функция - сплошной линией; А - Удаление первых трех гармоник; Б - Удаление 9% гармоник из середины набора; В - Добавление гармоники с номером n0+10. 

Удаление первых трех гармоник почти не повлияло на общую картину, что немаловажно для РСА, так как они могут потеряться.  Вследствие удаления 10% гармоник в середине набора качество восстановления сильно ухудшилось, максимумы от атомов стали почти не отличимы от шума. Добавление гармоники с номером 32 никак не изменило график, т.к. высокочастотные гармоники имеют низкую амплитуду и не могут сильно изменить график.

 

Итоги

Для полного набора гармоник разрешение - это период гармоники с наибольшим порядковым номером. В нашем случае, если в наборе 499 гармоник, то разрешение будет d=T/n: 30 / 499 = 0,06.

Для неполного набора данных нет строгого определения разрешения. Кроме разрешения d необходимо учитывать полноту данных (процент гармоник с длиной волны большей d от полного набора гармоник с количеством гармоник, равным наибольшей гармонике в данном неполном наборе). Для сравнения структур можно выбрать порог по полноте данных. Тогда значения разрешения будет равно d из предыдущего параграфа, но не меньше d'=T/n', где n' - наибольшая гармоника рассматриваемого набора, при условии, что берутся в расчет не меньше первых k% гармоник (k% - порог на полноту данных).

Набор гармоник

Разрешение (Å)

Полнота данных (%)

Шум амплитуды (% от F)

Шум фазы (% от phi)

Качество восстановления

Полный набор гармоник

0-498

0.06

100

0

0

отличное

0-5

6

100

0

0

плохое

0-10

3

100

0

0

среднее

0-20

1.5

100

0

0

хорошее

0-22

1.36

100

0

0

отличное

0-22

1.36

100

25

0

хорошее

0-22

1.36

100

0

25

среднее

0-22

1.36

100

15

5

хорошее

0-22

1.36

100

5

15

хорошее

Неполный набор гармоник

3-22

1.36

0.86

0

0

отличное

0-10, 12-22

1.36

0.91

0

0

хорошее

0-22, 32

1.36(0.94)

100(0.69)

0

0

отличное