Практикум 13
Задание 1
У Escherichia coli str. K-12 substr. MG1655 встречаются такие старт-кодоны: ATG, ATT, CTG, GTG, TTC, TTG
У Candidatus Gracilibacteria bacterium 28_42_T64 встречаются такие старт-кодоны: ACA, ATG, GTG, TCA, TCT, TTG
У Mycoplasma pneumoniae M29 встречаются такие старт-кодоны: AAA, ACA, ACT, ATA, ATC, ATG, ATT, CAA, CAC, CTA, CTC, CTG, GAA, GTG, GTT, TCC, TCT, TGA, TTA, TTC, TTG
1 gil = input()
2 d = {}
3 i = 0
4 with open("out.txt", mode = "w") as oo:
5 with open (gil, mode = "r") as fasta:
6 for l in fasta:
7 if l.startswith(">"):
8 _ = l
9 i = 0
10 else:
11 if i != 1:
12 l = l.strip()
13 chaa = d.setdefault(l[0:3], 0)
14 chaa = chaa + 1
15 d[l[0:3]] = chaa
16 i = i + 1
17 s_d = dict(sorted(d.items()))
18 for i in s_d:
19 print(i, s_d[i], file = oo)
Задание 2
Похоже, что эти кодоны кодируют какую-то аминокислоту вместо стоп-кодона, так как там встречается описание: "transl_except:...". Эти аминокислоты входят в состав белков "formate dehydrogenase". E.coli использует формиат в качестве основного донора электронов во время анаэробного дыхания, когда нитрат используется в качестве акцептора электронов. Селеноцистеин. А у одной из последовательностей есть характеристика "pseudo=true", то есть он является псевдо-геном.
Похоже, что этой аминокислотой является селеноцистеин, который кодируется стоп-кодоном TGA, но транслируется в аминокислоту из-за особых последовательностей (Donovan, J., & Copeland, P. R. (2010).)
1 gil = input()
2 ireum = ""
3 seq = ""
4 i = 0
5 siheom = 0
6 with open("out.txt", mode = "w") as oo:
7 with open(gil) as fasta:
8 l = fasta.readline()
9 l = l[1:len(l)]
10 l = l.strip()
11 ireum = l
12 for l in fasta:
13 if l.startswith(">"):
14 while i < len(seq):
15 if seq[i:i+3] == "TGA" or seq[i:i+3] == "TAA" or seq[i: i+3] == "TAG":
16 siheom = siheom + 1
17 i = i + 3
18 if siheom > 1:
19 print(ireum, file = oo)
20 siheom = 0
21 l = l[1:len(l)]
22 l = l.strip()
23 ireum = l
24 siheom = 0
25 else:
26 l = l.strip()
27 seq = seq + l
28 while i < len(seq):
29 if seq[i:i+3] == "TGA" or seq[i:i+3] == "TAA" or seq[i: i+3] == "TAG":
30 siheom = siheom + 1
31 i = i + 3
32 if siheom > 1:
33 print(ireum, file = oo)
Задание 3
Для первой бактерии |
TGA: 1246 |
TAA: 2761 |
TAG: 306 |
Для второй бактерии |
TGA: 1 |
TAA: 1000 |
TAG: 188 |
Для третьей бактерии |
TGA: 0 |
TAA: 526 |
TAG: 220 |
У второй бактерии - TGA является не стоп-кодоном, а кодирующим кодоном, так как у этой бактерии альтернативный генетический код (https://www.ncbi.nlm.nih.gov/Taxonomy/taxonomyhome.html/index.cgi?chapter=cgencodes#SG25)
У третьей бактерии тоже альтернативный генетический код (https://www.ncbi.nlm.nih.gov/Taxonomy/taxonomyhome.html/index.cgi?chapter=cgencodes#SG4)
1 gil = input()
2 seq = ""
3 tga = 0
4 taa = 0
5 tag = 0
6 with open("out.txt", mode = "w") as oo:
7 with open(gil) as fasta:
8 for l in fasta:
9 if l.startswith(">"):
10 if seq[len(seq)-3:len(seq)] == "TGA":
11 tga = tga + 1
12 elif seq[len(seq)-3:len(seq)] == "TAA":
13 taa = taa + 1
14 elif seq[len(seq)-3:len(seq)] == "TAG":
15 tag = tag + 1
16 _ = l
17 else:
18 l = l.strip()
19 seq = seq + l
20 if seq[len(seq)-3:len(seq)] == "TGA":
21 tga = tga + 1
22 elif seq[len(seq)-3:len(seq)] == "TAA":
23 taa = taa + 1
24 elif seq[len(seq)-3:len(seq)] == "TAG":
25 tag = tag + 1
26 print("TGA ", tga, file = oo)
27 print("TAA ", taa, file = oo)
28 print("TAG ", tag, file = oo)
Задание 4
Для первой бактерии |
TTA 18505 |
TTG 18301 |
CTT 14728 |
CTC 14952 |
CTA 5203 |
CTG 71305 |
Для второй бактерии |
TTA 15107 |
TTG 8051 |
CTT 8034 |
CTC 4491 |
CTA 4878 |
CTG 4148 |
Для третьей бактерии |
TTA 9204(+1) |
TTG 6554 |
CTT 4613 |
CTC 2193 |
CTA 3484 |
CTG 3055 |
Различная частота встречаемости кодонов возможно связана с различной степенью экспрессии тРНК, которые содержат соответствующий антикодон. Среди бактерий частота различается из-за того, что у них различный размер генома, и просто сам геном сильно отличается.
1 gil = input()
2 d = {}
3 seq = ""
4 i = 0
5 with open("out.txt", mode = "w") as oo:
6 with open (gil, mode = "r") as fasta:
7 for l in fasta:
8 if l.startswith(">"):
9 _ = l
10 seq = seq[0:len(seq)-3]
11 else:
12 l = l.strip()
13 seq = seq + l
14 while i < len(seq)-3:
15 chaa = d.setdefault(seq[i:i+3], 0)
16 chaa = chaa + 1
17 d[seq[i:i+3]] = chaa
18 i = i + 3
19 i = 0
20 seq = "AAAAACAAGAATACAACCACGACTAGAAGCAGGAGTATAATCATGATTCAACACCAGCATCCACCCCCGCCTCGACGCCGGCGTCTACTCCTGCTTGAAGACGAGGATGCAGCCGCGGCTGGAGGCGGGGGTGTAGTCGTGGTTTAATACTAGTATTCATCCTCGTCTTGATGCTGGTGTTTATTCTTGTTT"
21 while i < len(seq)-2:
22 d.setdefault(seq[i:i+3], 0)
23 i = i + 1
24 s_d = dict(sorted(d.items()))
25 for i in s_d:
26 print(i, s_d[i], file = oo)
Задание 5
Ссылка на график. Собственно график находится на втором листе, на первом листе - необходимые данные для постройки графика
https://docs.google.com/spreadsheets/d/1uO49xDTQHQcHtvONnhbIWiI0j9s7cLm2y7hVhDyRv7g/edit?usp=sharing
координаты минимума: 3870000. Это ориджин
координаты максимума: 1513000. Это место конца репликации
1 gil = input()
2 chang = int(input())
3 dan = int(input())
4 d = 0
5 seq = ""
6 cgcs = 0
7 n = 3
8 template = '{:.' + str(n) + 'f}'
9 with open("out.txt", mode = "w") as oo:
10 with open(gil) as fasta:
11 _ = fasta.readline()
12 for l in fasta:
13 l = l.strip()
14 seq = seq + l
15 while d <= len(seq)-chang:
16 ida = seq[d:d+chang]
17 if (ida.count("G")+ida.count("C")) == 0:
18 gcs = 0
19 else:
20 gcs = (ida.count("G")-ida.count("C"))/(ida.count("G")+ida.count("C"))
21 cgcs = cgcs + gcs
22 print(d, template.format(gcs), template.format(cgcs), sep="\t", file = oo)
23 gcs = 0
24 d = d + dan
Задание 6
Последовательность Шайна-Дальгарно для E.Coli: AGGAGG, полученные шестимеры похожи на него
Часто встречающиеся 6-меры:
'AAGGAG', 184
'TAAGGA', 157
'AAAGGA', 133
'AGGAGA', 133
'ATTCAT', 125
'CAGGAG', 119
'AGGAGT', 109
1 gil1 = input()
2 gil2 = input()
3 seq = ''
4 with open("yeo.txt", mode = "w") as yeo:
5 with open(gil1) as genbank:
6 with open(gil2) as genome:
7 _ = genome.readline()
8 for i in genome:
9 i = i.strip()
10 seq = seq + i
11 for l in genbank:
12 l = l.strip()
13 kh = l.split()
14 if len(kh)>2:
15 if "gene" == kh[2]:
16 gh = int(kh[0])
17 print(seq[gh-20:gh], file = yeo)