Divide...
На основании анализа дерева я решил разделить выравнивание так: домен из архитектуры (PYRIN, CARD) — в одну группу, а остальные — однодоменный CARD и (CARD, Peptidase_C14) — во вторую. (В дальнейшем архитектуры буду обозначать PYR, C, CP.) Это было связано с тем, что, во-первых, архитектура PYR явно обособлена от других и по консервативности, и по последовательности домена CARD, во-вторых, она уверенно выделяется в отдельную ветвь дерева, т. е. появилась задолго до разделения таксонов и эволюционировала независимо (в определенной степени), в-третьих, архитектуры C и CP иногда переходят одна в другую, скорее всего, только по пути CP > C. (См. выводы к практикуму № 9–10.)
Файлы выравниваний (обработанные в плане колонок и символа переноса строки): ccp.msf, pyr.msf. Все последовательности вместе: all.fasta
...et impera
Файлы: ccp.msf > ccp_w.msf > ccp.prf > ccp.txt > ccp_.txt / pyr.msf > pyr_w.msf > pyr.prf > pyr.txt > pyr_.txt.
После построения таблицы в Excel обнаружилось, что некоторые белки были в выдаче не по одному разу — профиль совпадал в каких-то других местах, хотя и с очень маленькими значениями совпадения. Для отсеивания дублей (с оставлением только самого хорошего совпадения, разумеется) был написан простейший скрипт на питоне. Отфильтрованные файлы — последние в цепочке, со знаком подчеркивания в конце имени. Всего было 75 белков; для CCP осталось из 105 строк 73 (видимо, два каких-то белка слишком уж сильно не совпали); для PYR — из 193 строк 75.
Результаты (profile.xls) таковы: профиль, нацеленный на CCP, разграничивает последовательности без смешивания, однако скачок веса не столь большой. Профиль, отталкивающийся от PYR, имеет пару несрабатываний (я подозреваю, что белки какие-нибудь необычные, но еще и это проверять глубоко не буду), зато скачок веса на границе раздела поражает: 27.95 / 5.21. Так что оба профиля можно считать пригодными к работе (тем более что архитектур, содержащих CARD, еще очень и очень много), и для них обоих я построил ROC-кривые (в той же таблице):
Для фильтра по CCP идеальное значение порога равно 3.95, а ROC-кривая имеет самый идеальный вид из возможных :-) Для фильтра по PYR кривая тоже с резким изломом; значением порога я бы принял что-нибудь около 10, чтобы заведомо отсеять всё лишнее.
Результаты в виде таблиц 2×2:
Фильтр по CCP (3.95) | Фильтр по PYR (10.00) | |||
Да | Нет | Да | Нет | |
+ | 1.00 | 0.00 | 0.91 | 0.09 |
– | 0.00 | 1.00 | 0.00 | 1.00 |
В общем и целом — очень неплохие, кажется, получились профили.