Учебная страница курса биоинформатики,
год поступления 2024
Как создать таблицу стартовых кодонов по файлу с CDS
Файл с CDS выглядит примерно так:
>lcl|NZ_AP024251.1_cds_WP_202378480.1_1 [gene=dnaA] и ещё много чего TTGACCGATGACCCCGGTTCAGGCTTCACGACAGTGTGGAATGCGGTCGTTTCCGAGCTCAACGGTGACCCGACCGCGGA CGGCGTAGCCGCCAACCGCACCACCCTGGTCACTCCCCTCACCCCGCAGCAACGGGCGTGGCTGAATTTGGTCCGGCCGC ...
Это — формат fasta. Строки файла, относящиеся к одной кодирующей последовательности ДНК (Coding DNA Sequence, CDS), начинаются со строки, в начале которой стоит знак '>', потом (до первого пробела) — имя последовательности (здесь довольно длинное), затем — описание (здесь из "полей", каждое из которых в квадратных скобках). Следующие строки (до следующего описания или до конца файла) — сама последовательность.
Таким образом, команда grep '^>' filename выведет на stdout только строки с именами и описаниями. Нам нужны начала последовательностей, и можно воспользоваться опцией -A 1 команды grep, которая указывает, что после каждой найденной строки надо вывести ещё и одну последующую.
Чтобы получить именно числа стартовых кодонов, можно воспользоваться конвейером, в котором, кроме grep, задействовать cut, sort и uniq.
Предуведомление. Далее описывается конвейер вида:
a | b | c | ... | z > startcodons.txt
где a,b,..., z — команды. Настоятельно рекомендуется писать его пошагово, контролируя промежуточные результаты, для чего перенаправлять их в less, то есть:
a | less a | b | less ... a | b | ... | z | less
и только когда вас всё будет устраивать, вместо ... | less написать ... > startcodons.txt.
Не забывайте, что нажатие стрелки вверх ↑ позволяет редактировать предыдущую команду.
Первая команда
grep -A 1 '^>' *cds*
В результате, помимо нужных нам первых строк последовательностей, будут присутствовать строки с названиями и разделители '--'. Поэтому:
Вторая команда
grep -v '^>'
Третья команда
grep -v '^-'
Опция -v оставляет строки, не присутствующие в выражении. Кстати, можно эти две команды объединить в одну, либо grep -v '^[>-]', либо grep -v -e '^>' -e '^-'.
А еще можно сразу попросить grep -A не вставлять разделители, у него для этого опция есть.
— ИР
Четвёртая команда
cut -c1-3
Пятая команда
sort
Шестая команда
uniq -c
Псевдогены
Псевдогены — это участки генома, похожие на гены, но не кодирующие белки. Обычно это гены белков, которые почему-нибудь стали не нужны организму, поэтому в них начали накапливаться мутации. В результате длина псевдогена может быть не кратна 3 (из-за вставок и делеций), он может начинаться с кодона, не являющегося функциональным старт-кодоном данного организма, заканчиваться не стоп-кодоном и содержать стоп-кодоны в середине.
В описаниях CDS в файле *_cds_from_genomic.fna псевдогены помечены подстрокой "[pseudo=true]", а в таблице особенностей *_feature_table.txt — словом "without_protein" во второй колонке.
Чтобы получить числа начальных троек нуклеотидов только для псевдогенов, нужно воспроизвести тот же конвейер, но самую первую команду заменить на такую:
grep -A 1 'pseudo=true' *cds*