Гены, белки и 20 аминокислот

Ген — это участок ДНК с инструкцией для одного белка. Белок — строка из 20 «букв»-аминокислот.

Ген — участок ДНК, кодирующий функциональный продукт (чаще всего белок). Белок — цепочка из аминокислот, выполняющая работу в клетке.

До сих пор мы работали с одним алфавитом из четырёх букв. Теперь появляется второй — алфавит белков из 20 аминокислот. Понимание перехода между ними (4 буквы → 20 букв) — ключ ко всему разделу про генетический код.

Что такое ген

Геном — это весь текст ДНК. Гены — осмысленные «абзацы» в нём, между которыми много некодирующих участков. У человека около 20 тысяч белок-кодирующих генов, но они занимают лишь ~2% генома. Остальное — регуляторные области, повторы, и то, что раньше называли «мусорной ДНК» (часть её на деле функциональна).

Найти ген в геноме — отдельная задача (поиск открытых рамок считывания, мы дойдём до неё). Пока важно: ген — это подстрока генома с определённой структурой.

Белки — строки в алфавите из 20 букв

Белок собирается из 20 стандартных аминокислот. У каждой есть однобуквенное обозначение — и это снова строка, только алфавит шире.

amino_acids = {
    "A": "Аланин", "R": "Аргинин", "N": "Аспарагин", "D": "Аспартат",
    "C": "Цистеин", "E": "Глутамат", "Q": "Глутамин", "G": "Глицин",
    "H": "Гистидин", "I": "Изолейцин", "L": "Лейцин", "K": "Лизин",
    "M": "Метионин", "F": "Фенилаланин", "P": "Пролин", "S": "Серин",
    "T": "Треонин", "W": "Триптофан", "Y": "Тирозин", "V": "Валин",
}
print("Всего аминокислот:", len(amino_acids))
protein = "MFGAS"
for aa in protein:
    print(aa, "->", amino_acids[aa])

Вывод:

Всего аминокислот: 20
M -> Метионин
F -> Фенилаланин
G -> Глицин
A -> Аланин
S -> Серин

Почему 20 букв, а не 4

Четырёх нуклеотидов мало, чтобы напрямую закодировать 20 аминокислот. Природа решила это, читая ДНК тройками: тройка (кодон) даёт 4³ = 64 комбинации — с запасом на 20 аминокислот плюс стоп-сигналы. Так 4-буквенный код превращается в 20-буквенный. Подробно — в следующем разделе.

ДНК (4 буквы)  ->  кодоны по 3  ->  белок (20 букв)
A T G T T C       ATG  TTC          M    F

Зачем биологам считать белки

Функция белка определяется его последовательностью (а через неё — формой). Сравнивая последовательности белков, можно понять: похожи ли два белка, эволюционно ли они родственны, что сломает мутация. Посчитаем простую характеристику — состав аминокислот, который влияет на свойства белка.

from collections import Counter
protein = "MFGASMFKLGGAS"
counts = Counter(protein)
for aa, n in counts.most_common():
    print(f"{aa}: {n}")

Вывод:

G: 3
M: 2
F: 2
A: 2
S: 2
K: 1
L: 1

Как работает под капотом: от последовательности к функции

Цепочка аминокислот сворачивается в трёхмерную структуру, и именно форма определяет работу белка (фермент, рецептор, антитело). Предсказание этой формы — одна из великих задач биоинформатики (вспомните AlphaFold). Но даже не зная формы, по сходству последовательностей мы делаем выводы о функции: если новый белок похож на известный фермент, скорее всего, он тоже фермент.

У аминокислот есть и физико-химические свойства, которые объясняют, почему одни мутации безобидны, а другие катастрофичны. Аминокислоты делят на группы: гидрофобные (боятся воды, прячутся внутрь белка), гидрофильные и заряженные (любят воду, торчат наружу), особые случаи вроде глицина (очень гибкий) и пролина (наоборот, делает излом). Замена одной гидрофобной аминокислоты на другую гидрофобную обычно проходит незаметно — белок сохраняет форму. А замена заряженной на гидрофобную в ключевом месте может разрушить структуру и вызвать болезнь. Именно поэтому матрицы замен (BLOSUM, PAM), о которых пойдёт речь в разделе про выравнивание, дают разным заменам разный «штраф»: они кодируют, насколько биохимически похожи аминокислоты. Это превращает простое сравнение строк в биологически осмысленное.

Частые ошибки

  • Путать алфавиты. ДНК — 4 буквы, белок — 20; буква «A» в ДНК (аденин) и «A» в белке (аланин) — разные вещи.
  • Считать, что весь геном — гены. Кодирующая часть мала; большая часть генома некодирующая.
  • Думать, что один ген = один белок жёстко. Альтернативный сплайсинг даёт из одного гена несколько белков.

Итог

  • Ген — кодирующий участок ДНК; геном в основном некодирующий.
  • Белок — строка из 20 аминокислот, у каждой есть однобуквенный код.
  • 4-буквенный код ДНК превращается в 20-буквенный белок через чтение тройками (кодонами).
  • Сходство последовательностей белков намекает на сходство функции — основа сравнительного анализа.
Проверьте себя
1. Сколько стандартных аминокислот образуют белки?
A4
B16
C20
D64
2. Почему ДНК читается тройками (кодонами)?
AТак быстрее
BЧетырёх букв по одной мало для 20 аминокислот; тройки дают 64 комбинации
CЭто случайность
DЧтобы экономить место
3. Что верно про геном человека?
AВесь геном состоит из генов
BГены занимают лишь малую часть (около 2%), остальное некодирующее
CВ геноме нет некодирующих участков
DКаждый ген кодирует ровно один белок без исключений