Все привет! Для молекулярной биологии (биоинформатики) есть множество специализиванных программ, например есть такие мощные инструменты как Geneious Prime, CLC bio, DNASTAR и многие другие, пусть и с меньшим функционалом, предназначенные для работы с последовательностями - нуклеотидными или аминокислотными. Здесь, я хочу показать, как можно использовать программу Excel для работы с последовательностями, при этом эксель не только не уступает по мощности или user friendly интерфейсу упомянутым «гигантам», но и даже превосходит их. Отчасти это сравнение неправильное, так как эти программы конкурируют между собой и, по сути, выполняют одни и теже операции (работа с плазмидами, сборка NGS-данных, визуализация геномов и т.д.), в экселе же, можно выполнять те операции, которых в принципе нет в этих программах (работать с массивами, вытаскивание информации по единичным позициям, одновременное глобальное выравнивания множества групп последовательностей и т.д.), т.е. эксель не конкурирует с ними, а только дополняет их. На мой взгляд это как раз то, что не хватает мокрым биологам, которые абсолютно не то, что умеют программировать, а даже пользоваться многочисленными программами, лежащими на GitHub (кнопочек в них нет, да и устанавливаются они как правило на Linux).
В качестве примера, попробуем построить филогенетическое дерево (родословную) золотистого стафилококка (Staphylococcus aureus) сиквенс типа 8 (ST8). Схематично этапы расчетов будут выглядеть так:
1) Получаем все гены этих штаммов, переносим их в эксель, удаляем (сортируем) идентичные последовательности.
2) Транслируем (переводим ДНК в белок, т.е. группы по три символа заменяем одним символом) и создаем список уникальных аминокислотных последовательностей.
3) Кластеризация: среди всех генов (пан-геном) необходимо найти только те гены, которые есть в каждом штамме (коровый геном). Кластеризуем последовательности, гомология которых не менее 80%.
4) Выравнивание. В итоге получаем более 600 коровых генов (т.е. 600 кластеров генов), различные по сиквенсу последовательности которых нужно выровнять между собой
5) Возвращаем каждому геному свой выровненный белок.
6) Mask Alignment – аминокислоты, которые одинаковые в каждой позиции одного и того же кластера белков, ненужны для построения филогении, поэтому их можно и нужно удалить, тем самым сократив количество информации в более чем 10 раз.
7) Строим филогенетическое дерево или сеть и наслаждаемся полученным результатом.
Теперь немного подробнее каждый шаг:
1) Первый и последний шаг не относятся к экселю. В ГенБанке было скачано 1866 полных геномов золотистого стафилококка, определена принадлежность их к сиквенс-типам и выбрано 363 генома относящихся к ST8. Далее в эксель импортированы все гены каждого штамма (лист DataBase) (почти 973 тыс. генов).
Чтобы не хранить весь объем данных и уменьшить его, идентичные последовательности были удалены. Для этого была получена хеш-сумма каждой последовательности, массив сортирован и дубли удалены. Штатная функция «Удалить дубликаты» почему-то не работает на нуклеотидных и аминокислотных последовательностях, может они длинноваты?
2) Из нуклеотидов получаем белковые последовательности. Можно воспользоваться функцией из сообщения 9 от БМВ, за что его отдельная благодарность:
Аналогично нуклеотидам, чтобы не утяжелять файл, получаем хеш-сумму и удаляем дубли. Переносим уникальные сиквенсы на новый лист (хотя можно работать и на том же).
3) Кластеризация: среди всех генов (пан-геном) необходимо найти только те гены, которые есть в каждом штамме (коровый геном). Нужно кластеризовать (объединить в группу) последовательности, гомология которых не менее 80%. Самый сложный шаг. Пока пользуюсь онлайн программой:
Результаты так себе, но быстро и просто. Как реализовать в экселе не знаю. VBA коды всех так называемых «Меры схожести строк» нашел в интернете. Пожалуй, один из самых быстрых и выдающих хорошее значение, здесь:
Вероятно, наиболее близкий алгоритм здесь и кстати мера схожести строк тоже тут шустрая:
4) После кластеризации сиквенсов, оставляем только те кластеры, гены которых присутствуют в каждом геноме, т.е. не менее 363 раз (количество геномов). В итоге получаем более 600 коровых генов (т.е. 600 кластеров генов), различные по сиквенсу последовательности которых нужно выровнять между собой. Выравнивание лучше делать алгоритмом MAFF, код которой блестательно адоптировал doober, за что ему низкий поклон. Здесь ссылка на саму надстройку:
А эта ссылка на программу, которую нужно скачать и распаковать на диск С, чтобы путь был такой c:\mafft-win:
скачиваем файл mafft-7.520-win64-signed.zip (версия на 18.11.2023, но может быть и более новая версия).
При вызове макроса, нужно выделить два столбца: правый столбец - сиквенсы которые нужно выровнять между собой, левый столбец содержит идентификатор, по которому MAFF объединяет последовательности для выравнивания. При этом данные выгружаются в соседний правый столбец относительно этих двух.
5) ВПР или ПРОСМОТРХ возвращаем каждому геному свой выровненный белок.
6) Mask Alignment – аминокислоты, которые одинаковые в каждой позиции одного и того же кластера белков, ненужны для построения филогении, поэтому их нужно удалить, тем самым сократив количество информации в более чем 10 раз. В данном примере если этого не сделать, то все в текстовый файл может не влезть, да и программам, которым в дальнейшем его обрабатывать будет намного сложнее. Великолепный макрос для этого написал Евгений Смирнов:
7) Строим филогенетическое дерево или сеть и наслаждаемся полученным результатом. Возьмем например бесплатную великолепную программу PHYLOViZ, она очень простая и интуитивно понятная:
Все конечные файлы со всеми расчетами прикладываю.
Файл для программы PHYLOViZ. Архив нужно распаковать, получится папка, после открыть программу PHYLOViZ, File – Open project – папка будет в виде 4-х сцепленных шестеренок – правой кнопкой мыши Load dataset.
Исходные файлы для PHYLOViZ, полученные из Excel:
Данные в фаста формате:
Метаданные:
И самое главное – файл Excel:
Если кто-то проделает все это от начала до конца, тот настоящий биоинформатик, можете смело получать диплом!
Это лишь один из массы примеров, в котором показано что Excel способен решать задачи по биоинформатике. Придумать можно сколько угодно.
Надеюсь, никто не будет смеяться нам моими примитивными пассами над экселем. И вообще, гуру экселя, для нормальных людей написано десятки тысяч макросов, функций и формул, можно что угодны вытворять в нём, даже в игры играть, ну, когда же вы уже наконец обратите внимание на мокрых биологов? Это же, не справедливо