Для данного задания был выбран домен NACHT_sigma (PF17106). Его параметры соответствуют ориентировочным:
Всего для данного домена есть 36 архитектур, была выбрана архитектура, содержащая 2 домена: SesA и NACHT_sigma (66 последовательностей) именно в таком порядке. Оба этих домена обнаруживаются в NACHT-NTPазах, функция неизвестна. Последовательности выборки full можно найти здесь.
Последовательности с рассматриваемой доменной архитектурой лежат здесь. Выравнивание для них было построено с помощью алгоритма MUSCLE в Jalview. Далее оно было отредактировано: убраны последовательности, схожие более чем на 90%, удалены участки, являющиеся внешними границами для двух доменов в соответствии с их координатами (25-141, 176-217) и LOGO в Pfam. Также я удалила плохо выровненную относительно остальных последовательность. Итоговое выравнивание можно скачать здесь.
С помощью следующих команд из пакета HMMER был создан и откалиброван HMM-профиль. Также с помощью него был проведен поиск по всем последовательностям.
hmm2build -g hmm_res.txt corrected.fa
hmm2calibrate hmm_res.txt
hmm2search --cpu=1 hmm_res.txt Pepeliaeva-full-180.fasta > hmm_detected.txt
С выдачей, а именно, с самим профилем и находками можно ознакомиться здесь и здесь, соответственно. Для определения порога на вес был построен график его распределения.
Если взглянуть на отсортированные веса, заметим большую разницу как раз в районе 200 (206.5), что соответствует падению параметра F1 на соответствующем графике.
Наблюдаем минимум в распределении весов, что можно интерпретировать как их разбиение на 2 категории, где категория с большим весом соответствует последовательностям, в которых была найдена архитектура, заданная HMM-профилем. Видно, что нужный вес нужно искать как минимум в положительном направлении, а точнее, в районе 200. Он будет соответствовать оптимальному соотношению специфичности и чувствительности на графике ROC (согласно ему, чувствительность 98.5%, специфичность = 97.1%.
ROC-кривая получилась хорошая, с большим AUC -- значит, модель достаточно точно распознает заданную архитектуру. Для определения более точного значения порога посчитаем параметр F1.
Таким образом, установим порог веса как 200. Таблицу, полученную в ходе выполнения этого практикума, можно скачать здесь.
P.S. Для данного задания у меня нет скрипта, но есть ноутбук -- все было выполнено с использованием библиотек для анализа данных в Python.
I don't know how to make footer properly. You may as well pretend you haven't seen this phrase!