= Практикум 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)
}}}