Учебная страница курса биоинформатики,
год поступления 2011
Порядок действий для расчета коэффициентов ряда Фурье и восстановления функции
Функция задается на интервале [0,30]. Моделируется в 1D график электронной плотности молекулы. 30 следует понимать как 30 ангстрем. Функция имеет вид нескольких гауссовых кривых с центром в разных точках. Иногда - на расстоянии 1-1.5 ангстрем - модель ковалентно связанных атомов; иногда 3-5 ангстрем.
- Формат файла с функцией:
#X Y [строка с # в первой строке игнорируется]
0.0 1.01
0.01 1.07
... ....
29.97 1.00
Функцию можно создать с помощью скрипта compile-func.py. Гауссова функция определяется числами lambda,beta,gamma по формуле: gauss = lambda*exp(-(beta^2)*(X-gamma)^2). Здесь a^2=a*a. Пример задания параметров скрипта:
-g 30,3,3+40,3,4.3+2,3.5,6.5+30,3,7.5 (сумма четырех гауссовых функций: их max в точках 3,4.3,6.5,7.5, высота 30,40,2,30 соответственно; ширина "колокола" порядка 1; третий - низкий - пик моделирует атом водорода);
- ширина колокола должна примерно соответствовать диаметру атома - порядка 1 с небольшим ангстрема (электронная плотность резко спадает на таком расстоянии от центра);
- высота зависит от числа электронов в атоме, поэтому может различаться.
Коэффициенты Фурье рассчитываются с помощью скрипта func2fourier.py
Входной файл – функция, полученная как выходной файл скрипта compile-func.py .
- Выходной файл имеет формат:
<номер гармоники> <амплитуда> <фаза>
Добавление гауссового шума к амплитудам (параметр -F <число>) и фазам (-P <число>) искажает все вычисленные амплитуды и фазы. Пример: -F 20 (шум 20%) приводит к тому, что к каждой амплитуде прибавляется случайное число, распределенное нормально с параметрами: среднее = 0, среднее квадратичное отклонение (сигма)=0.2*F. Аналогично действует параметр -P <число>
Отбор гармоник можно сделать одним из способов:
- Скопировать файл с коэффициентами Фурье и убрать лишние строки.
- Пометить лишние строки знаком "#" в первой позиции строки (такие строки при чтении игнорируются).
Запустить скрипт fourier-filter.py , который отфильтрует нужные строки (разбирайтесь сами - help'ы есть).
Восстановление функции по отобранным гармоникам выполняется скриптом fourier2func.py. Кроме графика, выдается также файл с исходной и восстановленной функцией. Для отключения графика исходной функции служит параметр `-s' (если захотите экспериментировать с коллегой).
Используйте возможности графического окна для выделения нужной части графика и его сохранения.
Замечания о скриптах
Cкрипты лежат также на P: в директории y11/Term_7/Fourier
- Они проверены для python 2.7. Под python 3.0 не проверял.
- Для запуска дома необходимы библиотеки numpy и matplotlib. Скачайте и установите.
Скопировать к себе обязательно надо файл fourier.py. Все скрипты используют этот модуль.
Запуск без параметров python <имя скрипта> выдает информацию о том, что делает скрипт.
Запуск с параметром -h сообщает какие есть параметры и как их задавать.
Мне они очень нравятся! (Извините за нескромность ) ААл