Учебная страница курса биоинформатики,
год поступления 2010
Порядок действий для расчета коэффициентов ряда Фурье и восстановления функции
Функция задается на интервале [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: в директории y10/scripts/fourier
- Они проверены для python 2.7. Под python 3.0 не проверял.
- Для запуска дома необходимы библиотеки numpy и matplotlib. Скачайте и установите.
Скопировать к себе обязательно надо файл fourier.py. Все скрипты используют этот модуль.
Запуск без параметров python <имя скрипта> выдает информацию о том, что делает скрипт.
Запуск с параметром -h сообщает какие есть параметры и как их задавать.
Мне они очень нравятся! (Извините за нескромность ) ААл