Воспользуемся онлайн-сервисом 2StrucCompare, чтобы получить аннотацию вторичной структуры конкретного белка при помощи алгоритмов DSSP и STRIDE, и сравним полученные выходы.
В этом задании предполагалось работать с тем же PDB ID, что и в практикуме 6, но у меня для него не работал DSSP, поэтому беру PDB3 из практикума 2: это 7BDE.
2Struc выдаёт аннотации в удобном для визуального анализа виде — в виде выравнивания. На рис. 1 приведена его выдача.
Разберём несколько примеров расхождений в выдаче. Так, в позициях 66–68 DSSP разметил $3_{10}$-спираль, в то время как у STRIDE это просто поворот. У DSSP имеется специальный тип аннотации bend, которого нет в STRIDE (например, в позиции 31, где у STRIDE обычный поворот). Также есть отличия в разметке точных границ альфа-спиралей, например, на 53 позиции DSSP ещё отмечает спираль, а STRIDE — уже нет. Посмотрим на эти места в структуре (рис. 2).
Для участка спирали $3_{10}$ я измерил углы $\varphi$. Видно, что по крайней мере один из них ($-42{,}7\,^\circ$) далёк от значений, характерных для спиральных участков. Весь паттерн из трёх остатков выглядит в связи с этим несколько уплощённо, я бы согласился с аннотацией STRIDE, что это поворот, а не спираль.
Во втором случае для начала вспомним, что такое bend. Так помечаются остатки, на которых остов делает крутой поворот — более $70\,^\circ$. Критерий формальный, со справедливостью определения не поспоришь, можно только думать об осмыслености выделения в данном случае. DSSP, скажем, не выделяет этот тип структуры, когда можно говорить о спиралях (даёт спиралям более высокий приоритет). В данном случае DSSP не выделил никакой структуры вокруг, в то время как STRIDE считает четыре подряд идущих остатка поворотом. Если внимательно посмотреть, то этот «поворот» стабилизируется только одной водородной связью между боковым радикалом T32 и кислородом остова D29. Длина связи в данной структуре пограничная, 3,5 Å, угол практически прямой. Мне кажется, о полноценном повороте здесь говорить не стоит — склоняюсь к аннотации DSSP. Скорее всего, вне кристалла эта конформация не очень устойчива. Наверное, в данном случае торсионные углы сложились так, что STRIDE допустил осмысленность этого поворота.
И последний случай, с предположительной альфа-спиралью. Здесь водородную связь с предыдущим витком спирали образует NH-группа и этого остатка, и даже следующего, но углы $\varphi$ и $\psi$ для остатка C53 не соответствуют альфа-спиральной конформации. Поэтому, я считаю, логичнее говорить, что 53-й остаток в спираль не входит.
Подводя итог задания, можно сказать, что и человеку может быть нелегко по разным критериям решить, какой тип структуры перед ним. Становится как никогда ясно, что во имя формализации алгоритмов разметки непременно придётся чем-то жертвовать. В данном случае при аннотации спиралей лучше справлялась программа STRIDE, так как она более явно учитывает торсионные углы. Но иногда, как в случае рассмотренного поворота, и это не помогает.
В этом задании мне дан набор белков в папке на сервере kodomo. Проведём в нём аннотацию вторичной структуры при помощи DSSP, находясь в рабочей папке практикума в домашней директории:
for file in $(ls /srv/www/htdocs/FBB/year_18/sbinf2021/2021.T8/russal2010 ); do
mkdssp -i /srv/www/htdocs/FBB/year_18/sbinf2021/2021.T8/russal2010/$file -o ./${file}.dssp
done
Обработаем полученные выходы при помощи сценария, предоставленного в задании, чтобы сгруппировать остатки по типам вторичной структуры — спиралям, листам и «петлям».
for file in *.dssp; do python3 parse_dssp.py $file out_$file; done
Выходы скрипта для 30 файлов сольём вместе.
cat out* > out.txt
Теперь просто загрузим получившийся файл и проанализируем средствами Python. Прочтём таблицу и рассчитаем, насколько склонны различные остатки в обработанных файлах к образованию трёх выделенных типов вторичной структуры.
Чтение данных:
import numpy as np, pandas as pd
data = pd.read_csv("out.txt", sep=" ", header=None)
data.head()
0 | 1 | 2 | |
---|---|---|---|
0 | 2140 | G | C |
1 | 2141 | Q | E |
2 | 2142 | C | E |
3 | 2143 | I | C |
4 | 2144 | N | C |
Подсчёт статистики участия в типах вторичной структуры:
structure_counts = data.groupby(1)[2].value_counts()
total_res_by_structure = data[2].value_counts()
total_res_by_kind = data[1].value_counts()
propensities = pd.DataFrame(columns=["H", "E", "C"], index=np.unique(data[1]), dtype=np.float64)
for structure in propensities.columns:
for res_kind in np.unique(data[1]):
propensities.loc[res_kind, structure] = (structure_counts[res_kind][structure] /
total_res_by_kind[res_kind]) / \
(total_res_by_structure[structure] / len(data))
Вот какие склонности получаются в итоге (см. таблицу в выдаче ячейки ниже).
propensities
H | E | C | |
---|---|---|---|
A | 1.492645 | 0.731418 | 0.798848 |
C | 0.298571 | 1.426297 | 1.267490 |
D | 0.998915 | 0.549396 | 1.194847 |
E | 1.358435 | 0.798878 | 0.856107 |
F | 0.925570 | 1.827443 | 0.691358 |
G | 0.370482 | 0.757910 | 1.509220 |
H | 0.910466 | 0.566324 | 1.244444 |
I | 0.988435 | 1.693280 | 0.708729 |
K | 1.242802 | 0.727077 | 0.961420 |
L | 1.166145 | 1.239706 | 0.789853 |
M | 1.116197 | 0.555433 | 1.116809 |
N | 0.650571 | 0.675615 | 1.364522 |
P | 0.474201 | 0.212371 | 1.677560 |
Q | 1.234941 | 0.614522 | 1.014972 |
R | 1.366342 | 0.843087 | 0.831973 |
S | 0.798608 | 0.674825 | 1.269643 |
T | 0.749900 | 1.175451 | 1.085271 |
V | 0.855751 | 2.018074 | 0.654131 |
W | 1.560275 | 1.242259 | 0.535245 |
Y | 0.891344 | 1.252359 | 0.961156 |
Опишем несколько характерных примеров. Например, глицин чаще встречается в неструктурированных участках. Это объясняется тем, что у остатков глицина слабые ограничения на торсионные углы, они более «гибкие». Аланин чаще встречается в составе спиралей, валин предпочитает бета-листы. Вообще многие малополярные остатки, как оказалось, имеют склонность к образованию листов. Возможно, их боковые радикалы им просто не мешают укладываться, образуя связи между атомами остова. В случае спиралей это, должно быть, влияет не так сильно, ведь там боковые цепи расходятся радиально в разные стороны, у них больше пространства. Почему аланин, хоть не обладает полярным радикалом, всё равно тяготеет к спиралям, мне объяснить сложно. Может быть, это как-то связано с тем, что его боковой радикал достаточно маленький (а значит, не образует большой площади гидрофобных контактов с соседями по листу).