= Практикум 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 {{{#!highlight python gil = input() d = {} i = 0 with open("out.txt", mode = "w") as oo: with open (gil, mode = "r") as fasta: for l in fasta: if l.startswith(">"): _ = l i = 0 else: if i != 1: l = l.strip() chaa = d.setdefault(l[0:3], 0) chaa = chaa + 1 d[l[0:3]] = chaa i = i + 1 s_d = dict(sorted(d.items())) for i in s_d: print(i, s_d[i], file = oo) }}} == Задание 2 == Похоже, что эти кодоны кодируют какую-то аминокислоту вместо стоп-кодона, так как там встречается описание: "transl_except:...". Эти аминокислоты входят в состав белков "formate dehydrogenase". E.coli использует формиат в качестве основного донора электронов во время анаэробного дыхания, когда нитрат используется в качестве акцептора электронов. Селеноцистеин. А у одной из последовательностей есть характеристика "pseudo=true", то есть он является псевдо-геном. Похоже, что этой аминокислотой является селеноцистеин, который кодируется стоп-кодоном TGA, но транслируется в аминокислоту из-за особых последовательностей (Donovan, J., & Copeland, P. R. (2010).) {{{#!highlight python gil = input() ireum = "" seq = "" i = 0 siheom = 0 with open("out.txt", mode = "w") as oo: with open(gil) as fasta: l = fasta.readline() l = l[1:len(l)] l = l.strip() ireum = l for l in fasta: if l.startswith(">"): while i < len(seq): if seq[i:i+3] == "TGA" or seq[i:i+3] == "TAA" or seq[i: i+3] == "TAG": siheom = siheom + 1 i = i + 3 if siheom > 1: print(ireum, file = oo) siheom = 0 l = l[1:len(l)] l = l.strip() ireum = l siheom = 0 else: l = l.strip() seq = seq + l while i < len(seq): if seq[i:i+3] == "TGA" or seq[i:i+3] == "TAA" or seq[i: i+3] == "TAG": siheom = siheom + 1 i = i + 3 if siheom > 1: 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) {{{#!highlight python gil = input() seq = "" tga = 0 taa = 0 tag = 0 with open("out.txt", mode = "w") as oo: with open(gil) as fasta: for l in fasta: if l.startswith(">"): if seq[len(seq)-3:len(seq)] == "TGA": tga = tga + 1 elif seq[len(seq)-3:len(seq)] == "TAA": taa = taa + 1 elif seq[len(seq)-3:len(seq)] == "TAG": tag = tag + 1 _ = l else: l = l.strip() seq = seq + l if seq[len(seq)-3:len(seq)] == "TGA": tga = tga + 1 elif seq[len(seq)-3:len(seq)] == "TAA": taa = taa + 1 elif seq[len(seq)-3:len(seq)] == "TAG": tag = tag + 1 print("TGA ", tga, file = oo) print("TAA ", taa, file = oo) 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 || Различная частота встречаемости кодонов возможно связана с различной степенью экспрессии тРНК, которые содержат соответствующий антикодон. Среди бактерий частота различается из-за того, что у них различный размер генома, и просто сам геном сильно отличается. {{{#!highlight python gil = input() d = {} seq = "" i = 0 with open("out.txt", mode = "w") as oo: with open (gil, mode = "r") as fasta: for l in fasta: if l.startswith(">"): _ = l seq = seq[0:len(seq)-3] else: l = l.strip() seq = seq + l while i < len(seq)-3: chaa = d.setdefault(seq[i:i+3], 0) chaa = chaa + 1 d[seq[i:i+3]] = chaa i = i + 3 i = 0 seq = "AAAAACAAGAATACAACCACGACTAGAAGCAGGAGTATAATCATGATTCAACACCAGCATCCACCCCCGCCTCGACGCCGGCGTCTACTCCTGCTTGAAGACGAGGATGCAGCCGCGGCTGGAGGCGGGGGTGTAGTCGTGGTTTAATACTAGTATTCATCCTCGTCTTGATGCTGGTGTTTATTCTTGTTT" while i < len(seq)-2: d.setdefault(seq[i:i+3], 0) i = i + 1 s_d = dict(sorted(d.items())) for i in s_d: print(i, s_d[i], file = oo) }}} == Задание 5 == Ссылка на график. Собственно график находится на втором листе, на первом листе - необходимые данные для постройки графика https://docs.google.com/spreadsheets/d/1uO49xDTQHQcHtvONnhbIWiI0j9s7cLm2y7hVhDyRv7g/edit?usp=sharing координаты минимума: 3870000. Это ориджин координаты максимума: 1513000. Это место конца репликации {{{#!highlight python gil = input() chang = int(input()) dan = int(input()) d = 0 seq = "" cgcs = 0 n = 3 template = '{:.' + str(n) + 'f}' with open("out.txt", mode = "w") as oo: with open(gil) as fasta: _ = fasta.readline() for l in fasta: l = l.strip() seq = seq + l while d <= len(seq)-chang: ida = seq[d:d+chang] if (ida.count("G")+ida.count("C")) == 0: gcs = 0 else: gcs = (ida.count("G")-ida.count("C"))/(ida.count("G")+ida.count("C")) cgcs = cgcs + gcs print(d, template.format(gcs), template.format(cgcs), sep="\t", file = oo) gcs = 0 d = d + dan }}} == Задание 6 == Последовательность Шайна-Дальгарно для E.Coli: AGGAGG, полученные шестимеры похожи на него Часто встречающиеся 6-меры: 'AAGGAG', 184 'TAAGGA', 157 'AAAGGA', 133 'AGGAGA', 133 'ATTCAT', 125 'CAGGAG', 119 'AGGAGT', 109 {{{#!highlight python gil1 = input() gil2 = input() seq = '' with open("yeo.txt", mode = "w") as yeo: with open(gil1) as genbank: with open(gil2) as genome: _ = genome.readline() for i in genome: i = i.strip() seq = seq + i for l in genbank: l = l.strip() kh = l.split() if len(kh)>2: if "gene" == kh[2]: gh = int(kh[0]) print(seq[gh-20:gh], file = yeo) }}} {{{#!highlight python d = {} chaa = 0 with open("yeo.txt") as yeo: for l in yeo: l = l.strip() i = 0 while i<16: chaa = d.setdefault(l[i:i+6], 0) chaa = chaa + 1 d[l[i:i+6]] = chaa i = i + 1 for h in d.items(): if h[1] > 30: print(h) }}}