SAM (פורמט קובץ)

מפת עימוד רצפים (SAM) היא פורמט מבוסס טקסט במקור לאחסון רצפים ביולוגיים אשר עוברים עימוד לרצף ייחוס שפותח על ידי הנג לי ובוב הנדסאקר.[1] הוא פותח כאשר מפתחי מיזם אלף הגנומים רצו להתרחק מפורמט ממפה MAQ והחליטו לעצב פורמט חדש. העיצוב הכולל המופרד ב-TAB של הפורמט הגיע מפורמט מוקדם יותר בהשראת ה-PSL של התוכנה BLAT. השם של SAM הגיע מ-גאבור מארס מאוניברסיטת יוטה, שבמקור היה לו פורמט תחת אותו שם אבל עם תחביר שונה, יותר דומה לפלט של BLAST.[2] הוא נמצא בשימוש נרחב לאחסון נתונים, כגון רצפי נוקלאוטידים, שנוצרו על ידי הדור הבא של טכנולוגיות הריצוף, והתקן הורחב כך שיכלול רצפים לא ממופים.[3] הפורמט תומך ברידים קצרים וארוכים (עד 128 מגה-בייט) המיוצרים על ידי פלטפורמות ריצוף שונות ומשמש לאחזקת נתונים ממופים בתוך ערכת הכלים לניתוח הגנום (GATK) וברחבי מכון Broad, מכון Wellcome Sanger, ולאורך פרויקט 1000 הגנומים.

פורמט SAM מורכב מכותרת ומקטע עימוד. המקבילה הבינארית של קובץ SAM היא קובץ (Binary Alignment Map) BAM, המאחסן את אותם נתונים בייצוג בינארי דחוס.[4] ניתן לנתח ולערוך קובצי SAM באמצעות התוכנה SAMtools.[1] קטע הכותרת חייב להיות לפני קטע העימוד אם הוא קיים. כותרות מתחילות בסמל '@', שמבדיל אותן מקטע העימוד. לקטעי עימוד יש 11 שדות חובה, כמו גם מספר משתנה של שדות אופציונליים.[1]

אל"ם שדה סוּג תיאור קצר
1 QNAME חוּט תבנית שאילתה NAME
2 FLAG Int FLAG חלקית
3 RNAME חוּט רצף הפניות NAME
4 POS Int מיפוי POSition מבוסס 1 השמאלי ביותר
5 MAPQ Int איכות מיפוי
6 CIGAR חוּט CIGAR string
7 RNEXT חוּט רפ. שם בן/בת הזוג/הקריאה הבאה
8 PNEXT Int מיקום בן הזוג/הקריאה הבאה
9 TLEN Int אורך התבנית שנצפה
10 SEQ חוּט קטע רצף
11 QUAL חוּט ASCII של בסיס בקנה מידה Phred QUALity+33
  1. QNAME: תבנית שאילתה NAME. קריאות/קטעים בעלי QNAME זהה נחשבים מגיעים מאותה תבנית. QNAME '*' מציין שהמידע אינו זמין. בקובץ SAM, קריאה עשויה לתפוס מספר שורות יישור, כאשר היישור שלה הוא כימרי או כאשר ניתנים מיפויים מרובים.
  2. FLAG: שילוב של FLAGs bitwise [6]
  3. RNAME: רצף התייחסות NAME של היישור. אם קיימות שורות כותרות @SQ, RNAME (אם לא '*') חייב להיות נוכח באחד מתגי SQ-SN. לקטע לא ממופה ללא קואורדינטה יש '*' בשדה זה. עם זאת, קטע לא ממופה עשוי להיות בעל קואורדינטה רגילה כך שניתן למקם אותו במיקום רצוי לאחר המיון. אם RNAME הוא '*', לא ניתן להניח הנחות לגבי POS ו-CIGAR.
  4. POS: מיקום מיפוי 1-מבוסס השמאלי ביותר של הבסיס התואם הראשון. לבסיס הראשון ברצף ייחוס יש קואורדינטה 1. POS מוגדר כ-0 עבור קריאה לא ממופה ללא קואורדינטה. אם POS הוא 0, לא ניתן להניח הנחות לגבי RNAME ו-CIGAR.
  5. MAPQ: איכות מיפוי. זה שווה ל-10 log10 Pr{מיקום המיפוי שגוי}, מעוגל למספר השלם הקרוב ביותר. ערך 255 מציין שאיכות המיפוי אינה זמינה.
  6. CIGAR: מחרוזת תמציתית Idiosyncratic Gapped Alignment Report (CIGAR).
  7. RNEXT: שם רצף הפניה של היישור הראשי של ה-NEXT שנקרא בתבנית. לקריאה האחרונה, הקריאה הבאה היא הקריאה הראשונה בתבנית. אם קיימות שורות כותרות @SQ, RNEXT (אם לא '*' או '=') חייב להיות נוכח באחד מתגי SQ-SN. שדה זה מוגדר כ-'*' כאשר המידע אינו זמין, ומוגדר כ-'=' אם RNEXT הוא RNAME זהה. אם לא '=' ולקריאה הבאה בתבנית יש מיפוי ראשי אחד (ראו גם סיביות 0x100 ב-FLAG), שדה זה זהה ל-RNAME בשורה הראשית של הקריאה הבאה. אם RNEXT הוא '*', לא ניתן להניח הנחות ב-PNEXT ובביט 0x20.
  8. PNEXT: מיקום היישור הראשי של ה-NEXT שנקרא בתבנית. הגדר כ-0 כאשר המידע אינו זמין. שדה זה שווה ל-POS בשורה הראשית של הקריאה הבאה. אם PNEXT הוא 0, לא ניתן להניח הנחות ב-RNEXT ובביט 0x20.
  9. TLEN: אורך תבנית נצפית חתום. אם כל הקטעים ממופים לאותה הפניה, אורך התבנית הנצפית ללא סימן שווה למספר הבסיסים מהבסיס הממוף השמאלי ביותר לבסיס המופה הימני ביותר. לקטע השמאלי ביותר יש סימן פלוס ולצד הימני ביותר יש סימן מינוס. הסימן של קטעים באמצע אינו מוגדר. הוא מוגדר כ-0 עבור תבנית מקטע בודד או כאשר המידע אינו זמין.
  10. SEQ: קטע SEQuence. שדה זה יכול להיות '*' כאשר הרצף אינו מאוחסן. אם לא '*', אורך הרצף חייב להיות שווה לסכום האורכים של פעולות M/I/S/=/X ב-CIGAR. '=' מציין שהבסיס זהה לבסיס הייחוס. לא ניתן להניח הנחות על מקרי המכתבים.
  11. QUAL: ASCII של QUALity בסיס פלוס 33 (זהה למחרוזת האיכות בפורמט Sanger FASTQ ). איכות בסיס היא ההסתברות לשגיאת בסיס בקנה מידה של phred השווה ל-10 log10 Pr{הבסיס שגוי}. שדה זה יכול להיות '*' כאשר האיכות אינה מאוחסנת. אם לא '*', SEQ לא חייב להיות '*' ואורך המחרוזת האיכותית צריך להיות שווה לאורך של SEQ.

דגלים של Bitwise

[עריכת קוד מקור | עריכה]

השדה FLAG מוצג כמספר שלם בודד, אך הוא סכום דגלים בשיטת סיביות לציון תכונות מרובות של יישור קריאה.[5] כל תכונה מציינת ביט אחד בייצוג הבינארי של המספר השלם.

דגלים של Bitwise
מספר שלם בינארי תיאור (פירוש קריאה משולב)
1 000000000001 תבנית בעלת תבניות מרובות ברצף (קריאה מותאמת)
2 000000000010 כל קטע מיושר כראוי בהתאם ליישור (קרא ממופה בזוג מתאים)
4 000000000100 פלח לא ממופה (קרא1 לא ממופה)
8 000000001000 הפלח הבא בתבנית לא ממופה (קרא2 לא ממופה)
16 000000010000 SEQ בהשלמה הפוכה (read1 בהשלמה הפוכה)
32 000000100000 SEQ של הקטע הבא בתבנית בהשלמה הפוכה (read2 בהשלמה הפוכה)
64 000001000000 הקטע הראשון בתבנית (הוא read1)
128 000010000000 הקטע האחרון בתבנית (הוא read2)
256 000100000000 לא יישור ראשוני
512 001000000000 יישור נכשל בבדיקות איכות
1024 010000000000 PCR או שכפול אופטי
2048 100000000000 יישור משלים (למשל יישור ספציפי, יכול להיות חלק מקריאה מפוצלת או אזור קשור)

תכונות FLAG נסכמות כדי לקבל את הערך הסופי, למשל שורת SAM הנובעת מרשומת FASTQ מצמדת של Illumina בעלת ערך FLAG 2145 תציין:

ערך הדגל מַשְׁמָעוּת סכום דגל
1 קריאה משויכת 1
32 read2 הושלם הפוך 33
64 לקרוא 1 97
2048 יישור משלים 2145

שדות אופציונליים

[עריכת קוד מקור | עריכה]

מהמפרט:[5]

הסוג יכול להיות אחד מ- A (תו), B (מערך כללי), f (מספר אמיתי), H (מערך הקסדצימלי), i (מספר שלם) או Z (מחרוזת).

תיוג סוג הסבר
AM i איכות המיפוי הקטנה ביותר בתבנית ללא תלות בתבנית
AS i ציון יישור שנוצר על ידי מיישר
BC Z רצף ברקוד המזהה את המדגם
BQ Z היסט לאיכות היישור הבסיסית (BAQ)
BZ Z איכות Phred של בסיסי הברקוד המולקולריים הייחודיים בתגית OX
CB Z מזהה תא
CC Z שם סימוכין של הפגיעה הבאה
CG B,I BAM only: CIGAR in BAM's binary encoding if (and only if) it consists of >65535 operators
CM i ערוך מרחק בין רצף הצבעים להפניית הצבע (ראו גם NM)
CO Z הערות בטקסט חופשי
CP i הקואורדינטה השמאלית ביותר של הפגיעה הבאה
CQ Z קריאת צבע איכויות בסיס
CR Z בסיסי רצף ברקוד סלולרי (לא מתוקן)
CS Z רצף קריאת צבע
CT Z תג הערה קריאה מלאה, משמש לתכונות דמה של הערת קונצנזוס
CY Z איכות Phred של רצף הברקוד הסלולרי בתג CR
E2 Z שיחות הבסיס השניות בסבירות גבוהה
FI i אינדקס הפלח בתבנית
FS Z סיומת פלחים
FZ B,S עוצמות אות זרימה
GC ? שמור מטעמי תאימות לאחור
GQ ? שמור מטעמי תאימות לאחור
GS ? שמור מטעמי תאימות לאחור
H0 i מספר פגיעות מושלמות
H1 i מספר כניסות של 1 הפרש (ראו גם NM)
H2 i מספר כניסות של 2 הבדלים
HI i שאילתה לאינדקס הפגיעה
IH i המספר הכולל של כניסת שאילתה
LB Z ספריה
MC Z מחרוזת CIGAR לחבר/הקטע הבא
MD Z מחרוזת לאי התאמה של עמדות
MF ? שמור מטעמי תאימות לאחור
MI Z מזהה מולקולרי; מחרוזת המזהה באופן ייחודי את המולקולה שממנה נגזר הרשומה
MQ i איכות מיפוי של בן הזוג/הקטע הבא
NH i מספר היישורים המדווחים המכילים את השאילתה ברשומה הנוכחית
NM i ערוך מרחק להפניה
OA Z יישור מקורי
OC Z סיגר מקורי (הוצא משימוש; השתמש ב-OA במקום זאת)
OP i מיקום מיפוי מקורי (הוצא משימוש; השתמש ב-OA במקום זאת)
OQ Z איכות בסיס מקורית
OX Z בסיסי ברקוד מולקולרי ייחודי מקורי
PG Z תוכנית
PQ i סבירות Phred של התבנית
PT Z קרא הערות עבור חלקים מרצף הקריאה המרופד
PU Z יחידת פלטפורמה
Q2 Z איכות Phred של רצף הזוג/הקטע הבא בתג R2
QT Z איכות Phred של רצף הברקוד לדוגמה בתג BC
QX Z ציון איכות של המזהה המולקולרי הייחודי בתג RX
R2 Z רצף בן הזוג/הקטע הבא בתבנית
RG Z קבוצת רידים
RT ? שמור מטעמי תאימות לאחור
RX Z בסיסי רצף של המזהה המולקולרי הייחודי (אולי מתוקן).
S2 ? שמור מטעמי תאימות לאחור
SA Z יישורים קנוניים אחרים ביישור כימרי
SM i איכות מיפוי בלתי תלויה בתבנית
SQ ? שמור מטעמי תאימות לאחור
TC i מספר הקטעים בתבנית

הסתברות Phred

U2 Z שהקריאה השנייה תהיה שגויה מותנית בכך שהטוב ביותר יהיה שגוי
UQ i סבירות Phred של הקטע, מותנה בכך שהמיפוי יהיה נכון
X? ? שמור למשתמשי קצה
Y? ? שמור למשתמשי קצה
Z? ? שמור למשתמשי קצה

הערות שוליים

[עריכת קוד מקור | עריכה]
  1. ^ 1 2 3 Li, H.; Handsaker, B.; Wysoker, A.; Fennell, T.; Ruan, J.; Homer, N.; Marth, G.; Abecasis, G.; Durbin, R. (2009)., "The Sequence Alignment/Map format and SAMtools" (PDF). (ארכיון)
  2. ^ Graham J. Etherington, Ricardo H. Ramirez-Gonzalez, Dan MacLean, bio-samtools 2: a package for analysis and visualization of sequence and alignment data with SAMtools in Ruby: Fig. 1., Bioinformatics 31, 2015-03-29, עמ' 2565–2567 doi: 10.1093/bioinformatics/btv178
  3. ^ https://samtools.github.io/hts-specs/SAMv1.pdf
  4. ^ "SAM/BAM Format Specification" (PDF). samtools.github.io.
  5. ^ 1 2 3 "SAM/BAM Format Specification" (PDF). samtools.github.io.
  6. ^ Decoding SAM flags