💻 Б9: Мутација на секвенца

Опис на барање

Одберете еден од кодните региони и направете мутација со поместување на рамката за 2 нуклеотиди. Анализирајте ги новите протеински секвенции. Внимавајте, сега има нови старт и стоп кодони.

Бидејќи во претходните две барања работев со кодниот регион “pim”, ќе продложам и тука со мутација за поместување на рамката. Мутација е со поместување за 2 нуклеотида десно:

Модифицирање на рамката на “pim”
4342:4780 → 4344:4782

from Bio import SeqIO
from Bio.Data import CodonTable

gene_record = SeqIO.read("yersinia-pestis-fasta/NC_005816.gb", "genbank")
mito_table = CodonTable.unambiguous_rna_by_id[11]
sub_record2 = gene_record[4344:4782]
sub_rna2 = sub_record2.seq.transcribe()
print(f"Мутирана 'pim' секвенца:\n{sub_rna2}\n")
print(f"Должина на секвенца: {len(sub_rna2)}")
Мутирана 'pim' секвенца:
GGGAGGGGGAAUGAUCUCAAAGUUAUUUUGCUUGGCUCUCAUAUUUUUAUCAUCAAGUGGCCUUGCAGAAAAAAACACAUAUACAGCAAAAGACAUCUUGCAAAACCUAGAAUUAAAUACCUUUGGCAAUUCAUUGUCUCAUGGCAUCUAUGGGAAACAGACAACCUUCAAGCAAACCGAGUUUACAAAUAUUAAAAGCAACACCAAAAAACACAUUGCACUUAUCAAUAAAGACAACUCAUGGAUGAUAUCAUUAAAAAUACUAGGAAUUAAGAGAGAUGAGUAUACUGUCUGUUUUGAAGAUUUCUCUCUAAUAAGACCGCCAACAUAUGUAGCCAUACAUCCUCUACUUAUAAAAAAAGUAAAAUCUGGAAACUUUAUAGUAGUGAAAGAAAUAAAGAAAUCUAUCCCUGGUUGCACUGUAUAUUAUCAUUAAUA

Должина на секвенца: 438

За најдобро да ја согледаме мутацијата нужно е да ја преведеме оваа РНА, т.е.да ги најдеме соодветните старт и стоп региони кои очекуваме да се разликуваат од првобитната верзија на “pim” РНА и нив да ги преведеме во соодветните амино киселини.

# Листи за позиции на старт и стоп кодони
start_codon_positions2 = []
stop_codon_positions2 = []
# Листи за имињата на најдените кодони
start_found2 = []
stop_found2 = []
# Конверзија во стринг, за полесна работа
rna_string2 = str(sub_rna2)

"""
Идеја на пребарување: 
- Започни од 0 и движи се до целата секвенца -2
- Земи го моменталниот триплет 
- Провери дали е во старт кодоните -> Ако е зачувај торка (позиција, триплет)
- Ако не, провери дали е во стоп кодоните -> Ако е зачувај торка (позиција, триплет)
- Зголеми го бројачот 
"""

k = 0
while k < len(rna_string2)-2:
    # extract a three-nucleotide subsequence
    current_codon = rna_string2[k:k+3]
    if current_codon in mito_table.start_codons:
        start_found2.append((k, current_codon))
    elif current_codon in mito_table.stop_codons:
        stop_found2.append((k, current_codon))
    k += 1

print(f"Вкупна должина на CBS: {len(sub_rna2)}")
print(sub_rna2)
print()
print(f'Вкупен број на старт кодони: {len(start_found2)}')
print(f'Најден старт кодон со позиција: {start_found2}')
print()
print(f'Вкупен број на стоп кодони: {len(stop_found2)}')
print(f'Најден стоп кодон со позиција: {stop_found2}')
Вкупна должина на CBS: 438
GGGAGGGGGAAUGAUCUCAAAGUUAUUUUGCUUGGCUCUCAUAUUUUUAUCAUCAAGUGGCCUUGCAGAAAAAAACACAUAUACAGCAAAAGACAUCUUGCAAAACCUAGAAUUAAAUACCUUUGGCAAUUCAUUGUCUCAUGGCAUCUAUGGGAAACAGACAACCUUCAAGCAAACCGAGUUUACAAAUAUUAAAAGCAACACCAAAAAACACAUUGCACUUAUCAAUAAAGACAACUCAUGGAUGAUAUCAUUAAAAAUACUAGGAAUUAAGAGAGAUGAGUAUACUGUCUGUUUUGAAGAUUUCUCUCUAAUAAGACCGCCAACAUAUGUAGCCAUACAUCCUCUACUUAUAAAAAAAGUAAAAUCUGGAAACUUUAUAGUAGUGAAAGAAAUAAAGAAAUCUAUCCCUGGUUGCACUGUAUAUUAUCAUUAAUA

Вкупен број на старт кодони: 64
Најден старт кодон со позиција: [(10, 'AUG'), (13, 'AUC'), (24, 'AUU'), (27, 'UUG'), (31, 'UUG'), (40, 'AUA'), (42, 'AUU'), (48, 'AUC'), (51, 'AUC'), (56, 'GUG'), (62, 'UUG'), (78, 'AUA'), (80, 'AUA'), (94, 'AUC'), (97, 'UUG'), (111, 'AUU'), (116, 'AUA'), (122, 'UUG'), (128, 'AUU'), (132, 'AUU'), (133, 'UUG'), (140, 'AUG'), (145, 'AUC'), (149, 'AUG'), (188, 'AUA'), (190, 'AUU'), (214, 'AUU'), (215, 'UUG'), (223, 'AUC'), (227, 'AUA'), (240, 'AUG'), (244, 'AUG'), (247, 'AUA'), (249, 'AUC'), (252, 'AUU'), (259, 'AUA'), (268, 'AUU'), (278, 'AUG'), (284, 'AUA'), (287, 'CUG'), (291, 'CUG'), (296, 'UUG'), (302, 'AUU'), (313, 'AUA'), (327, 'AUA'), (329, 'AUG'), (337, 'AUA'), (341, 'AUC'), (352, 'AUA'), (366, 'AUC'), (368, 'CUG'), (379, 'AUA'), (385, 'GUG'), (394, 'AUA'), (402, 'AUC'), (406, 'AUC'), (410, 'CUG'), (414, 'UUG'), (419, 'CUG'), (423, 'AUA'), (425, 'AUU'), (428, 'AUC'), (431, 'AUU'), (435, 'AUA')]

Вкупен број на стоп кодони: 21
Најден стоп кодон со позиција: [(11, 'UGA'), (107, 'UAG'), (113, 'UAA'), (192, 'UAA'), (228, 'UAA'), (245, 'UGA'), (254, 'UAA'), (263, 'UAG'), (270, 'UAA'), (279, 'UGA'), (297, 'UGA'), (311, 'UAA'), (314, 'UAA'), (332, 'UAG'), (353, 'UAA'), (362, 'UAA'), (380, 'UAG'), (383, 'UAG'), (386, 'UGA'), (395, 'UAA'), (433, 'UAA')]