Każda zasada azotowa tworząca nukleotyd (A, C, G, U) składa się z jednego lub dwóch pierścieni
Atomy tworzące te zasady azotowe leżą w jednej płaszczyźnie
Płaszczyznę możemy wyznaczyć na podstawie dwóch niewspółliniowych wektorów
W przypadku zasad azotowych, możemy wybrać atomy C2
, C4
i C6
(czyli wektory C2-C4
i C2-C6
), ponieważ:
Kąt między płaszczyznami jest równy kątowi między wektorami normalnymi płaszczyzn
Wektor normalny płaszczyzny wyznaczamy z iloczynu wektorowego
Cosinus kąta między wektorami jest równy iloczynowi skalarnemu
Podsumowując, kąt między płaszczyzną zasady azotowej nukleotydu Y
oraz R
wyznaczamy następująco:
\begin{aligned}
v_{11} & = \mathrm{C4_Y} - \mathrm{C2_Y} \\
v_{12} & = \mathrm{C6_Y} - \mathrm{C2_Y} \\
v_{21} & = \mathrm{C4_R} - \mathrm{C2_R} \\
v_{22} & = \mathrm{C6_R} - \mathrm{C2_R} \\
nY & = v_{11} \times v_{12} \\
nR & = v_{21} \times v_{22} \\
∠_{YR} & = \arccos\left(\frac{nY \cdot nR}{|nY| |nR|}\right)
\end{aligned}
Gdzie:
Napisz program, który odczyta z podanego pliku PDB strukturę 2D RNA i wypisze ją w formacie BPSEQ
Wykorzystaj poniższe tabele do sprawdzenia odległości między atomami:
Atom 1 | Atom 2 | Min | Max |
---|---|---|---|
G:N1 | C:N3 | 2.56 | 3.27 |
G:N2 | C:O2 | 2.35 | 3.26 |
G:O6 | C:N4 | 2.41 | 3.46 |
Atom 1 | Atom 2 | Min | Max |
---|---|---|---|
A:N1 | U:N3 | 2.47 | 3.27 |
A:N6 | U:O4 | 2.40 | 3.56 |
Atom 1 | Atom 2 | Min | Max |
---|---|---|---|
G:N1 | U:O2 | 2.31 | 3.40 |
G:O6 | U:N3 | 2.34 | 3.42 |
Wartość kąta między płaszczyznami zasad azotowych dla wszystkich typów par powyżej musi być mniejsza niż 30°
Zadanie realizowane przez GitHub Classroom: https://classroom.github.com/a/tHzLa8WT (deadline 13 maj, 8:00)