Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 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*

2024/1/help_starts (последним исправлял пользователь is_rusinov 2024-10-28 12:04:28)