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

מפת עימוד רצפים (SAM) היא פורמט מבוסס טקסט במקור לאחסון רצפים ביולוגיים אשר עוברים עימוד לרצף ייחוס שפותח על ידי הנג לי ובוב הנדסאקר.<ref name=":0"></ref> הוא פותח כאשר מפתחי מיזם אלף הגנומים רצו להתרחק מפורמט ממפה MAQ והחליטו לעצב פורמט חדש. העיצוב הכולל המופרד ב-TAB של הפורמט הגיע מפורמט מוקדם יותר בהשראת ה-PSL של התוכנה BLAT. השם של SAM הגיע מ-גאבור מארס מאוניברסיטת יוטה, שבמקור היה לו פורמט תחת אותו שם אבל עם תחביר שונה, יותר דומה לפלט של BLAST.<ref></ref> הוא נמצא בשימוש נרחב לאחסון נתונים, כגון רצפי נוקלאוטידים, שנוצרו על ידי הדור הבא של טכנולוגיות הריצוף, והתקן הורחב כך שיכלול רצפים לא ממופים.<ref></ref> הפורמט תומך ברידים קצרים וארוכים (עד 128 מגה-בייט) המיוצרים על ידי פלטפורמות ריצוף שונות ומשמש לאחזקת נתונים ממופים בתוך [https://en.wikipedia.org/w/index.php?title=Genome_Analysis_Toolkit_(GATK)&action=edit&redlink=1 ערכת הכלים לניתוח הגנום (GATK)] וברחבי מכון Broad, מכון Wellcome Sanger, ולאורך פרויקט 1000 הגנומים.

== פורמט ==
פורמט SAM מורכב מכותרת ומקטע עימוד. המקבילה הבינארית של קובץ SAM היא קובץ (Binary Alignment Map) BAM, המאחסן את אותם נתונים בייצוג בינארי דחוס.<ref></ref> ניתן לנתח ולערוך קובצי SAM באמצעות התוכנה SAMtools.<ref name=":0" /> קטע הכותרת חייב להיות לפני קטע העימוד אם הוא קיים. כותרות מתחילות בסמל '@', שמבדיל אותן מקטע העימוד. לקטעי עימוד יש 11 שדות חובה, כמו גם מספר משתנה של שדות אופציונליים.<ref name=":0" />
{| class="wikitable"
!אל"ם
!שדה
!סוּג
!תיאור קצר
|-
|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
|}

== תיאור ==
==== מהמפרט:<ref name="spec"></ref> ====

# QNAME: תבנית שאילתה NAME. קריאות/קטעים בעלי QNAME זהה נחשבים מגיעים מאותה תבנית. QNAME '*' מציין שהמידע אינו זמין. בקובץ SAM, קריאה עשויה לתפוס מספר שורות יישור, כאשר היישור שלה הוא כימרי או כאשר ניתנים מיפויים מרובים.
# FLAG: שילוב של FLAGs bitwise <ref>[http://broadinstitute.github.io/picard/explain-flags.html Decoding SAM flags]</ref>
# RNAME: רצף התייחסות NAME של היישור. אם קיימות שורות כותרות @SQ, RNAME (אם לא '*') חייב להיות נוכח באחד מתגי SQ-SN. לקטע לא ממופה ללא קואורדינטה יש '*' בשדה זה. עם זאת, קטע לא ממופה עשוי להיות בעל קואורדינטה רגילה כך שניתן למקם אותו במיקום רצוי לאחר המיון. אם RNAME הוא '*', לא ניתן להניח הנחות לגבי POS ו-CIGAR.
# POS: מיקום מיפוי 1-מבוסס השמאלי ביותר של הבסיס התואם הראשון. לבסיס הראשון ברצף ייחוס יש קואורדינטה 1. POS מוגדר כ-0 עבור קריאה לא ממופה ללא קואורדינטה. אם POS הוא 0, לא ניתן להניח הנחות לגבי RNAME ו-CIGAR.
# MAPQ: איכות מיפוי. זה שווה ל-10 log10 Pr{מיקום המיפוי שגוי}, מעוגל למספר השלם הקרוב ביותר. ערך 255 מציין שאיכות המיפוי אינה זמינה.
# CIGAR: מחרוזת תמציתית Idiosyncratic Gapped Alignment Report (CIGAR).
# RNEXT: שם רצף הפניה של היישור הראשי של ה-NEXT שנקרא בתבנית. לקריאה האחרונה, הקריאה הבאה היא הקריאה הראשונה בתבנית. אם קיימות שורות כותרות @SQ, RNEXT (אם לא '*' או '=') חייב להיות נוכח באחד מתגי SQ-SN. שדה זה מוגדר כ-'*' כאשר המידע אינו זמין, ומוגדר כ-'=' אם RNEXT הוא RNAME זהה. אם לא '=' ולקריאה הבאה בתבנית יש מיפוי ראשי אחד (ראו גם סיביות 0x100 ב-FLAG), שדה זה זהה ל-RNAME בשורה הראשית של הקריאה הבאה. אם RNEXT הוא '*', לא ניתן להניח הנחות ב-PNEXT ובביט 0x20.
# PNEXT: מיקום היישור הראשי של ה-NEXT שנקרא בתבנית. הגדר כ-0 כאשר המידע אינו זמין. שדה זה שווה ל-POS בשורה הראשית של הקריאה הבאה. אם PNEXT הוא 0, לא ניתן להניח הנחות ב-RNEXT ובביט 0x20.
# TLEN: אורך תבנית נצפית חתום. אם כל הקטעים ממופים לאותה הפניה, אורך התבנית הנצפית ללא סימן שווה למספר הבסיסים מהבסיס הממוף השמאלי ביותר לבסיס המופה הימני ביותר. לקטע השמאלי ביותר יש סימן פלוס ולצד הימני ביותר יש סימן מינוס. הסימן של קטעים באמצע אינו מוגדר. הוא מוגדר כ-0 עבור תבנית מקטע בודד או כאשר המידע אינו זמין.
# SEQ: קטע SEQuence. שדה זה יכול להיות '*' כאשר הרצף אינו מאוחסן. אם לא '*', אורך הרצף חייב להיות שווה לסכום האורכים של פעולות M/I/S/=/X ב-CIGAR. '=' מציין שהבסיס זהה לבסיס הייחוס. לא ניתן להניח הנחות על מקרי המכתבים.
# QUAL: ASCII של QUALity בסיס פלוס 33 (זהה למחרוזת האיכות בפורמט Sanger FASTQ ). איכות בסיס היא ההסתברות לשגיאת בסיס בקנה מידה של phred השווה ל-10 log10 Pr{הבסיס שגוי}. שדה זה יכול להיות '*' כאשר האיכות אינה מאוחסנת. אם לא '*', SEQ לא חייב להיות '*' ואורך המחרוזת האיכותית צריך להיות שווה לאורך של SEQ.

== דגלים של Bitwise ==
השדה FLAG מוצג כמספר שלם בודד, אך הוא סכום דגלים בשיטת סיביות לציון תכונות מרובות של יישור קריאה. כל תכונה מציינת ביט אחד בייצוג הבינארי של המספר השלם.
{| class="wikitable"
|+דגלים של Bitwise
!מספר שלם
!בינארי
!תיאור (פירוש קריאה משולב)
|-
|1
|<code>000000000001</code>
|תבנית בעלת תבניות מרובות ברצף (קריאה מותאמת)
|-
|2
|<code>000000000010</code>
|כל קטע מיושר כראוי בהתאם ליישור (קרא ממופה בזוג מתאים)
|-
|4
|<code>000000000100</code>
|פלח לא ממופה (קרא1 לא ממופה)
|-
|8
|<code>000000001000</code>
|הפלח הבא בתבנית לא ממופה (קרא2 לא ממופה)
|-
|16
|<code>000000010000</code>
|SEQ בהשלמה הפוכה (read1 בהשלמה הפוכה)
|-
|32
|<code>000000100000</code>
|SEQ של הקטע הבא בתבנית בהשלמה הפוכה (read2 בהשלמה הפוכה)
|-
|64
|<code>000001000000</code>
|הקטע הראשון בתבנית (הוא read1)
|-
|128
|<code>000010000000</code>
|הקטע האחרון בתבנית (הוא read2)
|-
|256
|<code>000100000000</code>
|לא יישור ראשוני
|-
|512
|<code>001000000000</code>
|יישור נכשל בבדיקות איכות
|-
|1024
|<code>010000000000</code>
|PCR או שכפול אופטי
|-
|2048
|<code>100000000000</code>
|יישור משלים (למשל יישור ספציפי, יכול להיות חלק מקריאה מפוצלת או אזור קשור)
|}
תכונות FLAG נסכמות כדי לקבל את הערך הסופי, למשל שורת SAM הנובעת מרשומת FASTQ מצמדת של Illumina בעלת ערך FLAG 2145 תציין:
{| class="wikitable"
!ערך הדגל
!מַשְׁמָעוּת
!סכום דגל
|-
|1
|קריאה משויכת
|1
|-
|32
|read2 הושלם הפוך
|33
|-
|64
|לקרוא 1
|97
|-
|2048
|יישור משלים
|2145
|}

== שדות אופציונליים ==
מהמפרט:

הסוג יכול להיות אחד מ- A (תו), B (מערך כללי), f (מספר אמיתי), H (מערך הקסדצימלי), i (מספר שלם) או Z (מחרוזת).
{| class="wikitable sortable mw-collapsible"
!תיוג
!סוג
!הסבר
|-
|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?
|?
|שמור למשתמשי קצה
|}

==ראו גם==
* פורמט FASTA, המשמש לייצוג רצפי גנום
* פורמט FASTQ, המשמש לייצוג קריאת רצף DNA יחד עם ציוני איכות
* פורמט GVF (Genome Variation Format), הרחבה המבוססת על פורמט GFF3

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

קטגוריה:פורמטי קבצים