Практимум 13
Задание 1: частоты старт-кодонов
Код к заданию
dee = {} filename = input() searchfor = input() with open(filename, 'r') as fasta: lst = fasta.readlines() for line in lst: line = line.strip() if line.startswith('>'): name = line dee[name] = '' else: dee[name] += line for key in dee.keys(): if dee[key].startswith(searchfor): print(key)
Что необходимо для инициации трансляции и транскрипции
Для инициации транскрипции у прокариот промотр должен обладать следующими свойствами:
- наличие Прибнов-бокса(-10) и -35-последовательности
- точка начала транскhипции - пурин
- различные upstream-элементы, способные дополнительными взаимодействиями "усилять" промотор
На инициацию прокариотической трансляции влияют
- последовательность Шайна-Дальгарно (SD)
- старт-кодон
- расстояние между SD и start
- вовлечённость SD и start во вторичные структуры
E. coli
ATG |
3890 |
основной старт-кодон |
ATT |
4 |
A - тоже пурин |
CTG |
2 |
C - не пурин, но отличие от ATG всё равно всего на 1 нуклеотид |
GTG |
338 |
G - тоже пурин |
TTC |
1 |
белок профага |
TTG |
80 |
T - не пурин, но отличие от ATG всё равно всего на 1 нуклеотид |
G. bacterium
ACA |
1 |
Пвсевдоген |
ATG |
1129 |
основной старт-кодон |
GTG |
41 |
Самый популярный из альтернативных, также начинается с пурина |
TCA |
1 |
Серин - треониновая киназа (псевдоген) |
TCT |
1 |
С-субъединица ATФ-синтазы (псевдоген) |
TTG |
23 |
Начинается не с пурина, но отличие всего на 1 нуклеотид |
M. pneumoniae
AAA |
1 |
Рестриктаза, начало тоже с пурина |
ACA |
1 |
Адгезин P1 (псевдоген) |
ACT |
1 |
|
ATA |
3 |
|
CAA |
1 |
|
CAC |
1 |
|
CTC |
3 |
|
TCC |
2 |
|
TCT |
1 |
|
TGA |
1 |
|
ATC |
1 |
гипотетический белок |
ATG |
627 |
основной старт-кодон |
ATT |
7 |
гипотетические белки |
CTA |
1 |
белок cytahedrence (псевдоген) |
GTT |
1 |
|
CTG |
2 |
Tранспортный белок |
GAA |
1 |
Начинается с пурина |
GTG |
60 |
Второй по распространённости, начинается с пурина |
TTA |
1 |
Рестриктаза |
TTC |
1 |
Псевдоген белка с DUF-16-доменом |
TTG |
49 |
Начало не с пурина, но отличие от ATG только на один нуклеотид |
Из табличных данных мы видим, что значительную часть разнообразия "альтернативных" старт-кодонов составляют триплеты, уже не выполняющие таковую функцию - это накопившие мутации старт-кодоны псевдогенов.
У всех трёх бактерий триплеты GTG и TTG являются двумя наиболее частыми альтернативными старт-кодонами. Исходя из рассуждений, приведённых выше, вероятно, что в инициации транскрипции соответствующих им генов принимают участие дополнительные upstream-элементы ("сильный контекст"), аналогичное объяснение возможно и для инициации трансляции.
Кроме того, очень минорные старт-кодоны вновь встретились у последовательностей, кодирующих эндонуклеазы рестрикции, что, возможно, обусловлено особенностями их регуляции.
Задание 2. Стоп-кодоны посреди последовательности
Код к заданию
def stopfinder(): for i in range(0, len(seq) - 3, 3): if seq[i:i + 3] in stopl: print(name) print([i:i + 3]) flag = False break stopl = ['TAA', 'TAG', 'TGA'] seq = '' flname = input() with open(flname, 'r') as fasta: with open('out.txt', 'w') as out: for line in fasta: line = line.strip() if line.startswith('>'): stopfinder() name = ' '.join(line[1:].split(' ')) seq = '' else: seq += line else: stopfinder()
Среди CDS E. Coli нашлось 4, имеющих стоп-кодон не в конце. Фрагмент регуляторного белка IS911A имеет стоп-кодон в середине, поскольку является псевдогеном. 3 оставшихся белка - это альфа-субъединица формиат-дегидрогеназы N, альфа-субъединица формиат-дегидрогеназы O и формиат-дегидрогеназа H. В описании их последовательностей указано, что их трансляция идёт на протяжении всей мРНК, исключая находящийся посреди последовательности стоп-кодон TGA, одинаковый для всех трёх белков. Возможно выдвинуть предположение о том, что этот триплет не узнаётся благодаря особой вторичной структуре мРНК вокруг него. И в самом деле (Watson, J. D., Baker, T. A., Gann, A., Bell, S. P., Levine, M., & Losick, R. M. (2004). Molecular biology of the gene), эта вторичная структура существует и является селеноцистеиновой шпилькой - при её образовании происходит не терминация трансляции, а приходит специальная мРНК с антикодоном, комплементарным стоп-кодону, несущая селеноцистеин, который в этом "раунде" трансляции включается в пептид (после чего всё продолжается в "штатном") режиме.
Задание 3. Пропавшие стоп-кодоны
Код к заданию:
def biad(): if seq in codbi: codbi[seq] += 1 else: codbi[seq] = 1 flname = input() codbi = {} with open(flname, 'r') as fasta: fasta.readline() seq = '' for line in fasta: line = line.strip() if line.startswith('>'): biad() seq = '' else: seq = (seq+line)[-3::] else: biad() for i in codbi.keys(): print(i, codbi[i])
Стоп-кодоны E. Coli
ATA |
1 |
GAA |
1 |
TAA |
2761 |
TAG |
306 |
TGA |
1246 |
G. bacterium
AAA |
1 |
ACA |
1 |
CTT |
1 |
GAA |
1 |
TAA |
1000 |
TAG |
188 |
TCT |
2 |
TGA |
1 |
TTA |
1 |
Мы видим, что в качестве стоп-кодона TGA встретился только один раз! Поэтому возможно выдвинуть предположение, что, на самом деле, у G. Bacterium он кодирует какую-либо аминокислоту. Эта догадка подтверждается исследованием, в котором было показано, что у данного вида TGA кодирует глицин.
M. pneumoniae
AAA |
1 |
AAT |
1 |
ACT |
1 |
ATA |
1 |
CCC |
1 |
CGG |
1 |
CTA |
1 |
GAT |
1 |
GGC |
1 |
GGG |
5 |
GGT |
3 |
TAA |
526 |
TAC |
1 |
TAG |
220 |
TAT |
1 |
TTA |
1 |
В случае M. pneumoniae TGA не встречается в качестве стоп-кодона ни разу. Рассуждение, аналогичное предыдущему, вновь оказывается верным: TGA у этой бактерии кодирует триптофан, прямо как в митохондриях.
Задание 4. Кодоны лейцина
Код к заданию:
atgc = list('ACGT') list_of_lists = [atgc] for l in range(1, 3): list_of_lists.append(str(l)) for i in range(1, 3): list_of_lists[i] = [] for mer in list_of_lists[i-1]: for elem in atgc: list_of_lists[i].append(mer+elem) list_of_lists[2].sort() trilst = {} for liter in list_of_lists[2]: #Can we do it faster using numpy? trilst[liter] = 0 seq = '' flname = input() with open(flname, 'r') as fasta: for line in fasta: line = line.strip() if line.startswith('>'): continue else: seq += line for i in range(0, len(seq), 3): trilst[seq[i:i+3]] += 1 trilst['TAA'] = trilst['TAG'] = trilst['TGA'] = 0 for key in trilst.keys(): if key == 'TTA' or key == 'TTG' or key == 'CTT' or key == 'CTA' or key == 'CTG' or key == 'CTC': print(key, trilst[key])
Codon |
E. Coli |
G. Bacterium |
M. pneumoniae |
CTA |
0.0364 |
0.1088 |
0.1201 |
CTC |
0.1046 |
0.1005 |
0.0752 |
CTG |
0.4987 |
0.0928 |
0.1047 |
CTT |
0.1030 |
0.1802 |
0.1585 |
TTA |
0.1294 |
0.3375 |
0.3169 |
TTG |
0.1280 |
0.1801 |
0.2246 |
В приведённой таблице описаны относительные частоты лейциновых кодонов (число кодонов с заданной последовательностью/число всех кодонов). Различия между частотами кодонов одной бактерии, вероятно, наиболее сильно связаны с регуляцией экспрессии генов. Например, на предпочтительность того или иного кодона может влиять формирование вторичной и третичной структур РНК и роль этих структур в процессе трансляции, относительное количество тРНК для одной аминокислоты с разными антикодонами, способность тРНК к вобблингу. Однако вклад в эти частоты могут вносить и биохимические возможности организма по синтезу/поглощению пуринов и пиримидинов, температура окружающей среды и проч.
Различия между частотами кодонов между разными бактериями можно объяснить разным GC-составом геномов этих бактерий (видно из таблицы).
Задание 5
Код - в Colab
GC-skew достигает максимума в 47,69 в районе 1500300 позиции на хромосоме, минимума в -28,75 около координаты 3870000. Эти точки - ter (точка терминации репликации) и её ori (ориджин) соответственно.
Задание 6
Код - в Colab
Прогон алгоритма на плазмидах и хромосоме Rhodococcus fascians показал, что в 20 нуклеотидах от start-кодона наиболее частыми шестимерами являются те, что состоят из A и G, взятых примерно в равных пропорциях (приведём 5 наиболее популярных для хромосомы):
Шестимер |
Сколько раз встретился |
GAGGAG |
386 |
CGAGGA |
332 |
AGGAGC |
304 |
AGAGGA |
304 |
GAGGAC |
298 |
Ввиду того, что данная последовательность располагается недалеко от старт-кодона, она может являться частью сайта посадки рибосомы на мРНК (RBS, ribosome-binding site). Как мы знаем (Watson, J. D., Baker, T. A., Gann, A., Bell, S. P., Levine, M., & Losick, R. M. (2004). Molecular biology of the gene), важной частью RBS является последовательность Шайна-Дальгарно(SD), консенсус которой очень похож на наш результат.
Поскольку анти-SD-последовательность располагается на 16S-рРНК, было интересно найти встречаемость шестимеров в её последовательностях (вновь топ-5):
Шестимер |
Сколько раз встретился |
GACTGT |
4 |
ACTGTT |
4 |
CTGTTG |
4 |
CAGGTC |
3 |
AGGTCT |
3 |
(цифры небольшие, т. к. у родококка всего 10 генов 16S-рРНК, не очень большая выборка:)) Мы видим, что почти для всех нуклеоидов 16S-рРНКовых шестимеров, при расположении шестимера в направлении 3'-5', возможно образование канонических/неканонических пар с шестимерами наших мРНК.