Упр.1. Предсказание вторичной структуры тРНК путем поиска инвертированных повторов Программа einverted из пакета EMBOSS позволяет найти инвертированные участки в нуклеотидных последовательностях. Найдите возможные комплементарные участки в последовательности исследуемой тРНК. Сравните с их описанием, полученным ранее с помощью find_pair. Результаты сравнения занесите в таблицу, приведенную ниже. Постарайтесь подобрать параметры для получения предсказания, наиболее близкого к реальной структуре.
Упр.2. Предсказание вторичной структуры тРНК по алгоритму Зукера с помощью ViennaRNA.
%set_env PATH=/srv/conda/miniconda/bin:/srv/conda/miniconda/condabin:/usr/local/bin:/usr/bin:/home/preps/golovin/progs/x3dna-v2.4/bin
env: PATH=/srv/conda/miniconda/bin:/srv/conda/miniconda/condabin:/usr/local/bin:/usr/bin:/home/preps/golovin/progs/x3dna-v2.4/bin
! echo "GCUUUGC" > rna.seq
! einverted -sequence rna.seq -gap 12 -threshold 10 -match 3 -mismatch -3 -outfile outfile -outseq seqout
Find inverted repeats in nucleotide sequences Warning: No sequences written to output file 'seqout'
import RNA
seq = "AUUUCCACUAGAGAAGGUCUAGAGUGUUUGUCGUUUGUCAGAAGUCCCUAUUCCAGGUACGAACACGGUGGAUAUGUUCGACGACAGGAUCGGCGCACUA"
# create fold_compound data structure (required for all subsequently applied algorithms)
fc = RNA.fold_compound(seq)
# compute MFE and MFE structure
(mfe_struct, mfe) = fc.mfe()
# rescale Boltzmann factors for partition function computation
fc.exp_params_rescale(mfe)
# compute partition function
(pp, pf) = fc.pf()
# compute MEA structure
(MEA_struct, MEA) = fc.MEA()
# compute free energy of MEA structure
MEA_en = fc.eval_structure(MEA_struct)
# print everything like RNAfold -p --MEA
print("%s\n%s (%6.2f)" % (seq, mfe_struct, mfe))
print("%s [%6.2f]" % (pp, pf))
print("%s {%6.2f MEA=%.2f}" % (MEA_struct, MEA_en, MEA))
print(" frequency of mfe structure in ensemble %g; ensemble diversity %-6.2f" % (fc.pr_structure(mfe_struct), fc.mean_bp_distance()))
AUUUCCACUAGAGAAGGUCUAGAGUGUUUGUCGUUUGUCAGAAGUCCCUAUUCCAGGUACGAACACGGUGGAUAUGUUCGACGACAGGAUCGGCGCACUA .......(((((.....)))))(((((..((((((((((.......(((.....)))..((((((.........))))))..))))))..))))))))). (-22.20) .......(((((.....)))))(((((..(((({(((((.,..{,,{{{..,{.|,|,.{{{{{{,...,},,.})})))}})))))}..))))))))). [-24.66] .......(((((.....)))))(((((..((((.(((((.......(.........)..((((((.........))))))..)))))...))))))))). {-16.60 MEA=75.49} frequency of mfe structure in ensemble 0.0183287; ensemble diversity 22.18
RNA.svg_rna_plot(seq, MEA_struct, ssfile='ggg.svg' )
1
from IPython.display import SVG
SVG('ggg.svg')
Вспомнить, как с помощью команды define JMol задавать множества атомов.
Будем считать полярными атомы кислорода и азота, а неполярными атомы углерода, фосфора и серы.
Назовем полярным контактом ситуацию, в которой расстояние между полярным атомом белка и полярным атомом ДНК меньше 3.5Å. Аналогично, неполярным контактом будем считать пару неполярных атомов на расстоянии меньше 4.5Å.
См. также подсказки..
Будем считать полярными атомы кислорода и азота, а неполярными атомы углерода, фосфора и серы.
'''Контакты атомов белка с''' | '''Полярные''' | '''Неполярные''' | '''Всего''' |
---|---|---|---|
остатками 2'-дезоксирибозы | |||
остатками фосфорной кислоты | |||
остатками азотистых оснований со стороны большой бороздки | |||
остатками азотистых оснований со стороны малой бороздки |
Сравните количество контактов разного типа, напишите краткое резюме в отчете.
Получить популярную схему ДНК-белковых контактов с помощью программы nucplot [[../help3| См. подсказки.]].
На полученной схеме выбрать
аминокислотный остаток, по-вашему мнению, наиболее важный для распознавания последовательности ДНК.
В отчете привести обоснование выбора, а также 2 картинки, полученные с помощью JMol. Картинки должны иллюстрировать контакты выбранных аминокислотных остатков с ДНК. Под картинками приведите подписи, поясняющие изображение.
import forgi
import matplotlib.pyplot as plt
import forgi.visual.mplotlib as fvm
import forgi
cg = forgi.load_rna("1tra.pdb", allow_many=False)
fvm.plot_rna(cg, text_kwargs={"fontweight":"black"}, lighten=0.7,
backbone_kwargs={"linewidth":3})
plt.show()
forgi.graph.bulge_graph.BulgeGraph(seq)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) /tmp/ipykernel_3890/1280185471.py in <module> ----> 1 forgi.graph.bulge_graph.BulgeGraph(seq) TypeError: __init__() missing 1 required positional argument: 'seq_obj'
import py3Dmol as p3d
v = p3d.view(query='pdb:1tra')
v.setStyle({'background':{'color':'black'}})
v.setStyle({'cartoon':{'color':'spectrum'}})
You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension:
jupyter labextension install jupyterlab_3dmol
<py3Dmol.view at 0x7f3b6db09790>