Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2017

Python для структур и не только

[ Туториал ProDy ]

NB: я привык импортировать prody как pd. Если для вас pd значит pandas, спокойно используйте любое другое удобное для вас сокращение, это вообще не принципиально.

Задание 1. Prody и B-факторы часть 1

1 балл

Возьмите ваш PDB ID из Практикума 2.. С помощью Prody найдите остаток, средний B-фактор атомов которого максимален. Чему он равен? Что это за остаток, где он находится? Насколько велик разброс значений B-факторов его атомов? Есть ли тут какие-то закономерности?

Также найдите остаток, средний B-фактор атомов которого минимален. Чему он равен? Что это за остаток, где он находится?

Покажите эти два остатка на одном изображении в контексте всей структуры белка (например, белок можно показать в виде cartoon, и только эти два остатка в виде sticks. Полупрозрачность cartoon и использование Sidechain Helper сделают картинку еще чище). Как связан их B-фактор и их расположение, их окружение?

Задание 2. Prody и B-факторы часть 2

1 балл

Для каждого остатка вашего белка вычислите средний B-фактор по его атомам и его центр масс. Вычислите центр масс всего белка. Найдите для каждого остатка расстояние от его центра масс до центра масс белка. Постройте scatter plot зависимости B-фактора от расстояния до центра белка. Обсудите, какие закономерности вы видите на этом графике.

+0.5 баллов: опишите распределение какой-то осмысленной моделью, приведите показатели качества описания. Внимание: для оценки этого задания возможен призыв Пензара!

Задание 3. Как работает восстановление функции электронной плотности по экспериментальным данным

2 балла

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

Задание включает следующие этапы.

  1. Создание модельной функции ЭП в одномерной элементарной ячейке
  2. Расчет параметров сигнала, моделирующих экспериментальные данные: амплитуды и фазы
  3. Восстановление функции ЭП по модельным ("экспериментальным") данным
  4. Оценка качества восстановления функции ЭП

Cкрипты для выполнения задания

  1. Скрипты проверены для python 2.7. Под python 3.0 не проверял.
  2. Для запуска дома необходимы библиотеки numpy и matplotlib. Скачайте и установите.
  3. Скопировать к себе обязательно надо файл fourier.py. Все скрипты используют этот модуль.
  4. Запуск без параметров python <имя скрипта> выдает информацию о том, что делает скрипт.

  5. Запуск с параметром -h сообщает какие есть параметры и как их задавать.

Описание задания

Также см. пояснение

Введение

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

Цель практикума попытаться воспроизвести ход кристаллографического эксперимента на умозрительном и крайне упрощенном примере. Мы сами сгенерируем электронную плотность, разложим ее в ряд Фурье, а затем будем восстанавливать исходную функцию, имитируя ту или иную степень потери данных в ходе эксперимента.

Упрощения, которые вводятся в этом практикуме:

Нужно задать расположение 2 или 3 молекул состоящих из двух или трех атомов (желательно в сумме иметь не больше семи атомов). Раскидать по отрезку в 30 ангстрем 5-7 точек.

Задание функции

Прежде чем моделировать проведение рентгеноструктурного эксперимента сгенерируем функцию электронной плотности.

Функция задается на интервале [0,30]. Моделируется в 1D график электронной плотности молекулы. 30 следует понимать как 30 ангстрем. Функция имеет вид суммы нескольких гауссовых кривых с центром в разных точках. Иногда - на расстоянии 1-1.5 ангстрем - модель ковалентно связанных атомов; иногда 3-5 ангстрем (расстояние между молекулами).

Формат файла с функцией, примененной ко всем значениям интервала:

#X Y [строка с # в первой колонке игнорируется]

0.00 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.

Lambda задает высоту гауссиана, через которую мы имитируем число электронов у атома.

Beta задает ширину гауссиана, значение 3 соответствует релевантной нам ширине колокола плотности около 1 ангстрем, что похоже на реальную ситуацию.

Gamma задает положение центра атома.

Пример задания параметров скрипта: -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 соответственно; третий - низкий - пик моделирует атом водорода.

Вам нужно придумать свою "молекулярную систему", подобрав эти параметры! Не берите их значения из примера.

Расчет амплитуд и фаз сигналов, моделирующих экспериментальные данные

Теперь у нас есть электронная плотность, смоделируем получение экспериментальных данных. Амплитуды и фазы рассчитываются однозначно по входной функции ЭП (в реальности, не зная исходной электронной плотности, мы бы из эксперимента получили только амплитуды, а фазы восстанавливали бы из других экспериментов).

При моделировании экспериментальных данных учитывается, что в эксперименте, во-первых, определяются амплитуды не для всех сигналов; во-вторых, интенсивности сигналов (следовательно, и амплитуды) определяются с ошибкой; в-третьих, фазы определяется для всех измененных сигналов, но тоже с ошибкой.

Коэффициенты Фурье рассчитываются с помощью скрипта func2fourier.py Входной файл – функция, полученная как выходной файл скрипта compile-func.py. Выходной файл имеет формат: <номер гармоники> <амплитуда> <фаза>

Добавление гауссового шума к амплитудам (параметр -F <число>) и фазам (-P <число>) искажает все вычисленные амплитуды и фазы. Пример: -F 20 (шум 20%) приводит к тому, что к каждой амплитуде прибавляется случайное число, распределенное нормально с параметрами: среднее = 0, среднее квадратичное отклонение (сигма)=0.2*F. Аналогично действует параметр -P <число>

Отбор гармоник можно сделать одним из способов:

Таким образом мы получаем наборы смоделированных экспериментальных данных, по которым можем начать восстанавливать нашу исходную электронную плотность, с целью сравнить ее с исходной (идеально), и определить как именно неполнота данных из эксперимента влияет на качество восстановления электронной плотности.

Восстановление функции ЭП по амплитудам и фазам части сигналов

Восстановление функции по отобранным гармоникам (вспомните, что такое гармоника) выполняется скриптом fourier2func.py. Кроме графика, выдается также файл с исходной и восстановленной функцией. Для отключения графика исходной функции служит параметр `-s' (если захотите экспериментировать с коллегой). Используйте возможности графического окна для выделения нужной части графика и его сохранения.

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

Можете привлечь коллегу: покажите график восстановленной функции, не показывая графика исходной, и попросите определить положение атомов.

При приведении значения разрешения неполного набора гармоник, указывайте, пожалуйста, номер гармоники, чье разрешение вы взяли за общее.