עימוד רצפים

בביואינפורמטיקה, עימוד רצפים היא שיטה לסידור המידע על אודות רצפי DNA ,RNA או חלבונים, בצורה כזו שיהיה ניתן לזהות אזורים דומים, אשר ייתכן כי הם תוצאה של קשרים פונקציונלים, מבניים או אבולוציוניים.

עימוד רצפי של נוקלאוטידים או שיירי חומצות אמינו מיוצגים לרוב על ידי שורות במטריצה. רווחים מוכנסים בין הרצפים כך שרצפים דומים מעומדים בעמודות.
ההשוואה בין הרצפים המעומדים מקבלת ציון הומולוגיה אשר עשוי להעיד על פעילות ביולוגית דומה של הרצפים. לרישום הרצפים פותח פורמט FASTA.

עימוד רצפים שנוצר על ידי [[ClustalW של שני חלבוני zinc finger אשר פוענחו.
<br>
מפתח: אותיות בודדות: חומצות אמינו. אדום: קטנות, הידרופוביות, ארומטיות, לא Y. כחול: חומציות. סגול: בסיסיות. ירוק: הידרוקסיל, אמין, אמיד, בסיסיות. אפור: אחרות.
<br>
"*" : זהות .":": שינויים שמורים (אותה קבוצת צבעים). ".": שינויים שמורים-למחצה (מבנה דומה).
]]

דוגמה לתוצאות של [[Multiple sequence alignment]]

אלגוריתמים נפוצים לעימוד רצפים המבוססים על תכנון דינמי הם אלגוריתם נידלמן וונש (Needleman-Wunsch), המיועד לעימוד רצפים גלובלי, ואלגוריתם סמית-ווטרמן (Smith-Waterman) המיועד לעימוד רצפים לוקלי (מציאת אזורים דומים במחרוזות של דנ"א או חומצות אמינו).

==עימוד רצפים באמצעות תכנון דינמי==
===עימוד רצפים גלובלי===
כאשר נתונה מטריצת החלפות (כדוגמת BLOSUM62 או PAM250), המגדירה את ציון לכל החלפה של אותיות וכאשר ניתן ציון חוסר באות, הציון לעימוד של שני רצפים מוגדר כסכום הציונים לכל העמדות. בעיית עימוד רצפים גלובלי היא בעיה שבה מתאימים בין כל אות ברצף אחד לאות ברצף השני כאשר שני הרצפים דומים, במטרה למצוא את העימוד הטוב ביותר, במובן שציון העימוד יהיה מקסימלי.

לדוגמה כאשר הציון של אות חסרה הוא -5 ונעשה שימוש במטריצת החלפות הבאה:
{| style="font-family: monospace;font-size:150%;direction:ltr;" class="wikitable" cellpadding="2"
! scope="col" |
! scope="col" | A
! scope="col" | G
! scope="col" | C
! scope="col" | T
|- style="text-align: right;"
! scope="row" | A
| 10 || -1 || -3 || -4
|- style="text-align: right;"
! scope="row" | G
| -1 || 7 || -5 || -3
|- style="text-align: right;"
! scope="row" | C
| -3 || -5 || 9 || 0
|- style="text-align: right;"
! scope="row" | T
| -4 || -3 || 0 || 8
|}
ניתן לחשב ציון עבור עימוד של שני רצפים:
{| border="1" class="wikitable"
!רצף א'
| A || G || A || C || T || A || G || T || T || A || C
|-
! רצף ב'
| C || G || A || - || - || - || G || A || C || G || T
|- style="direction:ltr;"
! ציון
| -3 || 7 || 10 || -5 || -5 || -5 || 7 || -4 || 0 || -1 || 0
|}
הציון הכולל המתקבל מסכימת הציונים על כל העמדות בדוגמה לעיל 1.

אלגוריתם נידלמן-וונש
אלגוריתם נידלמן וונש (Needleman-Wunsch) מיועד לפתור בעיה זו ביעילות (סיבוכיות זמן ומקום של <math> \ O(n^2) </math> - עבור רצפים באורך n) תוך שימוש בתכנון דינמי, באמצעות מילוי מטריצת <math>F_{ij}</math>, המגדירה את ציון העימוד המיטבי עבור תת-המחרוזת מ-A המתחילה מהאות האפס (מחרוזת ריקה) ונגמרת באות ה-<math>i=0,\dotsc,n</math> ותת המחרוזת ב-B המתחילה באפס ונגמרת באות ה-<math>j=0,\dotsc,m</math>. הטבלה מוגדרת על פי הבסיס (שורה אפס ועמודה אפס):
:<math>F_{0j} = d*j</math>
:<math>F_{i0} = d*i</math>
והרקורסיה (יתר המטריצה) מאותחלת על פי ערך העימוד המיטבי:
:<math>F_{ij} = \max \begin{Bmatrix}
F_{i-1,j-1}+ \ w(A_i,B_j) & \text{Match/Mismatch} \\
F_{i-1,j} + \ d & \text{Deletion} \\
F_{i,j-1} + \ d & \text{Insertion}
\end{Bmatrix}
,\; 1\le i\le n, 1\le j\le m
</math>

כאשר: <math>w(a,b),\; a, b\in\Sigma</math> מגדיר את הציון להחלפה ו-d מציין ציון לרווח.

ציון העימוד המיטבי עבור הרצף A והרצף B מוגדר על פי <math>F_{nm}</math>, כאשר את העימוד המתאים לציון זה (העימוד המיטבי) ניתן למצוא באמצעות מילוי טבלה נוספת המגדירה מצביעים בהתאם לבחירה ובסיום לפעול בעקיבה לאחור (Backtracking) החל מהתא המתאים -<math>F_{nm}</math>.

===עימוד רצפים מקומי===
בבעיית עימוד רצפים מקומי המטרה היא למצוא אזור (תת רצף) המתאים ביותר בין שני רצפים (אך לא נדרש עימוד לרצף המלא). אלגוריתם סמית-וטרמן (Smith-Waterman) פותר בעיה זו בסיבוכיות זמן ומקום של <math> \ O(n^2) </math> (עבור רצפים באורך n). באלגוריתם זה ממלאים טבלה <math>F_{ij}</math> המגדירה את העימוד המיטבי לסיפא של הרצף A מ-0 (מחרוזת ריקה) ועד האות i, ולסיפא של הרצף B מ-0 ועד האות j. הטבלה מוגדרת על פי הבסיס:

<math>
F_i0 = 0,\; 0\le i\le m
</math>

<math>
F_0j = 0,\; 0\le j\le n
</math>

<math>
\text{ if } a_i = b_j
</math> then
<math>
w(a_i, b_j) = w\text{(match)}
</math>
<math>
\text{ or if } a_i \neq b_j
</math> then
<math>
w(a_i, b_j) = w\text{(mismatch)}
</math>

<math>F_{ij} = \max \begin{Bmatrix}
0 \\
F_{i-1,j-1}+ \ w(a_i,b_j) & \text{Match/Mismatch} \\
F_{i-1,j} + \ w(a_i,-) & \text{Deletion} \\
F_{i,j-1} + \ w(-,b_j) & \text{Insertion}
\end{Bmatrix}
,\; 1\le i\le m, 1\le j\le n
</math>

כאשר:
* <math>m = \text{length}(a)</math>
* <math>n = \text{length}(b)</math>
* <math>w(c,d),\; c, d\in\Sigma\cup\{'-'\}</math> - ציון להחלפה, כאשר '–' הוא מציין רווח

אלגוריתם זה דומה לאלגוריתם נידלמן וונש, אך ציון שלילי מוחלף ב-0 (כלומר מוטב להתחיל עימוד חדש מהמקום מאשר להמשיך את העימוד הקודם), והעימוד הטוב ביותר נבחר כמקסימום במטריצת הציונים (ולא המיקום האחרון).

== ראו גם ==
* Multiple sequence alignment
* אנליזת ריצוף - Bowtie

==לקריאה נוספת==
<div class="mw-content-ltr">
*Richard Durbin, Sean R. Eddy, Anders Krogh, Graeme Mitchison (1999). Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. Cambridge University Press. .
</div>
==קישורים חיצוניים==

==הערות שוליים==

קטגוריה:ביואינפורמטיקה
קטגוריה:מחרוזת (מדעי המחשב)