Учебная страница курса биоинформатики,
год поступления 2019
Практикум 6. Секвенирование по Сэнгеру
1. Получить последовательность ДНК на основании данных, полученных из капиллярного секвенатора. Составить отчёт о проблемах при чтении хроматограмм
Глобальная задача, которую вы будете выполнять в ходе практикума, — это качественная расшифровка результатов секвенирования по Сэнгеру. Для этого надо будет обработать две хроматограммы (с прямой и обратной цепочек), исправить в них неправильно определённые секвенатором буквы, выравнять эти хроматограммы (чтобы разрешить оставшиеся неопределённости) и в итоге определить консенсусную последовательность, которую мы и будем считать результатом нашей работы.
Пояснения.
На выходе из капиллярного секвенатора получается бинарный файл в формате .ab1 (.abi, .ab, .scf), в котором есть информация о флуоресценции каждой из четырёх нуклеотидных меток по ходу продвижения электрофореза, автоматически определённая последовательность, а также качество определения каждого отдельного нуклеотида. Автоматическая аннотация нуклеотидов, основанная на данных флуоресценции, называется base calling; в ходе этого процесса могут происходить ошибки, — именно поэтому перед экспортом итоговой последовательности хроматограмму необходимо проанализировать самому.
Вам дано два файла в формате .ab1, соответствующие прочтению прямой и обратной цепочки секвенируемой ДНК. См. список данных, файлы лежат на диске P в соответствующей директории: P:\y19\term3\block2\ab1_files\good.
Для работы с хроматограммами вы можете использовать любые доступные вам методы (не забудьте описать в отчёте, что и при помощи чего вы делали). Мы предлагаем использовать веб-платформу Pearl, однако помимо неё есть куча как бесплатных (UGENE, Chromas (Lite)), так и платных (Geneious, CodonCode Aligner) программ.
Отчет должен быть представлен на странице вашего сайта.
Термины
Проблемный нуклеотид — такой нуклеотид, по которому вы приняли решение, отличное от предложенного программой, или вы согласились с программой, но необходимо было проанализировать хроматограммы и принять решение. Проблемные нуклеотиды в последовательности выделяйте строчными буквами.
Полиморфизм — это нуклеотид, про который вы решили, что в секвенируемой ДНК встречаются два (или более) варианта. Полиморфизмы обозначайте кодами вырожденных нуклеотидов (ambiguity codes), см. https://droog.gs.washington.edu/parc/images/iupac.html или таблицу 1 из оригинальной статьи.
Что должно быть в отчёте:
Ссылка на файл с результатом — консенсусной последовательностью в формате fasta.
Выравнивание прямой и обратной последовательностей в формате fasta. Выравнивание можно сделать любым удобным для вас способом (например, в JalView), в том числе и просто экспортировать его из программы для анализа хроматограмм.
- Обоснование ваших решений для четырех-пяти проблемных нуклеотидов или полиморфизмов. Обоснование должно включать:
картинку с выравненными хроматограммами окрестности проблемного нуклеотида, достаточную для оценки ситуации (по три – четыре нуклеотида с каждой стороны);
- ваше решение и обоснование.
- Характеристику хроматограммы в целом:
- длины начального и конечного трудно читаемых участков для прямого и обратного прочтений;
оценку (на глаз) отношения сигнала и шума в среднем (можно сделать это и точно — например, попытайтесь экспортировать из бинарного файла качество прочтения каждой буквы и рассчитать среднее качество по последовательности);
- неравномерность силы сигнала и шума вдоль последовательности (на глаз, но также можно попробовать сделать это точно);
- другие особенности (что придумаете).
- Ссылки на исходные файлы в .ab1 формате (для удобства проверяющего).
Примерный порядок действий:
- Запустите программу для анализа хроматограмм, загрузите в неё прямую и обратную последовательности.
- Настройте удобный масштаб хроматограмм.
Выравняйте две хроматограммы. Не все программы умеют это делать сами — в случае, если ваша программа не справляется с этой задачей, сделайте это руками.
- Определите и запишите в протоколе границы нечитаемых 5'- и 3'-участков в каждой последовательности; координаты определяйте по позиции в выравнивании.
- Удалите нечитаемые 5'- и 3'- концы. Программы обычно умеют это делать автоматически. Опишите, совпала ли ваша оценка нечитаемых концов с оценкой программы
Охарактеризуйте на глаз качество каждой хроматограммы (можно не на глаз — подумайте, как это лучше сделать автоматически и опишите размышления в отчёте).
- Просмотрите всю прямую последовательность и отредактируйте ее:
- типичные сложные места:
- шум выше среднего уровня шума и почти как сигнал;
- пик на нетипичном расстоянии от соседей: вклинился лишний или, наоборот, соседние пики нетипично удалены;
вместо двух или более пиков — один широкий.
- Проверяйте сложные места по второй цепочке (если она имеется в данном месте);
- типичные сложные места:
- Редактирование может состоять в:
- замене буквы;
- удалении лишней буквы;
вставке буквы между предложенными софтом секвенатора.
Все исправления должны быть маленькими буквами!
- Проделайте то же со второй последовательностью.
- Сохраните итоговое выравнивание в формате fasta.
Предостережения.
- Помните, что после того, как вы делаете одну из последовательностей обратно комплементарной, конец прочтения окажется в начале перевернутой хроматограммы. Это существенно для понимания размера начальных некачественных участков.
2. Приведите пример нечитаемого фрагмента хроматограммы
Фрагмент можно взять из любого файла. Совсем плохие хроматограммы см. в директории bad там же на диске P.
Постарайтесь выбрать фрагмент, про который можно что-то написать.
В отчете — картинка и объяснение.
3*. Скрипт для автоматической обработки двух хроматограмм
На любом языке программирования (в т.ч. bash) и с использованием любых пакетов напишите скрипт, который на вход получает две хроматограммы, а на выход даёт консенсусную последовательность (то есть по сути делает то, что вы делали руками в задании 1). В отчёте дайте ссылку на файл со скриптом, опишите все зависимости (какие пакеты или сторонние программы используются в ходе работы скрипта?) и приведите пример нескольких тестов работы программы (используйте хроматограммы из директории, прописанной в задании 1). Также опишите примерную логику работы вашего скрипта (что именно он делает и как?).
Некоторые подсказки:
- Сначала необходимо вытащить из бинарного файла формата .ab1 информацию с аннотированной последовательностью и качеством определения букв. Для этого можно попытаться конвертировать файл в формат fastq (just google "ab1 to fastq") и работать с ним. Также пакет Biopython для Python умеет напрямую читать ab1 и извлекать из него необходимые данные.
- После этого попытайтесь придумать метрику для того, чтобы почистить нечитаемые концы (например, почитайте статьи от умных людей про то, как это реализовано в других программах, или придумайте что-то своё).
- Сделайте из одной из последовательностей обратно комплементарную, выравняйте две последовательности. Придумайте, как разрешить неопределённости, полученные в результате выравнивания последовательностей (например, несовпадения букв или прочее).