זהו הפקודה axe-demux שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
גרזן - גרזן תיעוד
Axe הוא דה-ריבוי לקריאה, שימושי במצבים שבהם קריאות רצף מכילות את
ברקודים המבדילים באופן ייחודי בין דוגמאות. Axe משתמש באלגוריתם מהיר ומדויק מבוסס
ב-hamming חוסר התאמה מנסה להתאים באופן תחרותי את הקידומת של קריאה ברצף מול a
סט ברקודים. Axe תומך בסכימות ברקוד קומבינטוריות.
תוכן:
AX נוהג
הערה:
מסיבות סתמיות, השם של גרזן בינארי השתנה ל גרזן-דמוקס עם גרסה 0.3.0.
מתנצל על אי הנוחות, זה נדרש לעשות גרזן ניתן להתקנה בדביאן
ונגזרותיו. השימוש בשורת הפקודה לא השתנה.
ל-Axe יש מספר מצבי שימוש. ההבחנה העיקרית היא בין השניים לסירוגין
סכימות ברקוד, ברקוד בודד וקומבינטורי. נעשה שימוש בהתאמת ברקוד בודד
כאשר רק הקריאה הראשונה מכילה רצפי ברקוד. נעשה שימוש בברקוד קומבינטורי כאשר
שתי הקריאות בזוג קריאה מכילות רצפי ברקוד עצמאיים (בדרך כלל שונים).
לעיון תמציתי, השימוש בשורת הפקודה של גרזן-דמוקס מובא להלן:
נוֹהָג:
axe-demux [-mzc2pt] -b (-f [-r] | -i) (-F [-R] | -I)
axe-demux -h
axe-demux -v
אפשרויות:
-m, --mismatch אי התאמה מקסימלית של מרחק הפטיש. [int, ברירת מחדל 1]
-z, --ziplevel רמת דחיסה של Gzip, או 0 עבור טקסט רגיל [int, ברירת מחדל 0]
-c, --combinatorial השתמש בהתאמת ברקוד קומבינטורית. [דגל, ברירת מחדל כבוי]
-p, --permissive אל תטעה בחוסר התאמה של ברקוד, התאמה בלבד
בדיוק ליצירת ברקודים. [דגל, ברירת מחדל כבוי]
-2, --trim-r2 חתוך ברקוד מ-R2 לקרוא כמו גם R1. [דגל, ברירת מחדל כבוי]
-b, --barcodes קובץ ברקוד. ראה --help למשל. [קוֹבֶץ]
-f, --fwd-in קלט קדימה לקרוא. [קוֹבֶץ]
-F, --fwd-out פלט קדימה קריאה קידומת. [קוֹבֶץ]
-r, --rev-in קלט הפוך לקרוא. [קוֹבֶץ]
-R, --rev-out פלט קידומת קריאה הפוכה. [קוֹבֶץ]
-i, --ilfq-in קריאה זווגת קלט שזירה. [קוֹבֶץ]
-I, --ilfq-out Output interleaved זוווג קורא קידומת. [קוֹבֶץ]
-t, --table-file פלט טבלת סיכום של נתונים סטטיסטיים דה-מולטיפלקסים לקובץ. [קוֹבֶץ]
-h, --help הדפס שימוש זה בתוספת עזרה נוספת.
-V, --version מחרוזת גרסת הדפסה.
-v, --verbose היה יותר מילולי. תוסף, -vv הוא יותר vebose מאשר -v.
-q, --שקט היה שקט מאוד.
תשומות ו יציאות
ללא קשר למצב קריאה, שלוש ערכות קלט ופלט נתמכות: קריאה בקצה יחיד,
קריאות מוצמדות (קבצי R1 ו-R2 נפרדים) וקריאות מוצמדות (קובץ אחד, עם R1
ו-R2 ככתובות עוקבות). אם מוזנות קריאות קצה בודדות, עליהן להיות פלט כ
קצה יחיד קורא. אם נקראות קריאות מזווגות או משולבות, הן יכולות להיקרא
פלט כקריאה מזווגת או כקריאה משולבת. זה חל על שניהם
ביטול ריבוי קריאות בהצלחה וקריאות שלא ניתן היה לבצע ביטול ריבוי.
השמיים -z ניתן להשתמש בדגל כדי לציין שיש לדחוס פלטים באמצעות gzip
דְחִיסָה. ה -z flag לוקח ארגומנט מספר שלם בין 0 (ברירת המחדל) ל-9, כאשר 0
מציין פלט טקסט רגיל (gzopen מצב "wT"), ו-1-9 מציינים שהמתאים
יש להשתמש ברמת הדחיסה, כאשר 1 הוא המהיר ביותר ו-9 הוא הקומפקטי ביותר.
דגלי הפלט צריכים להיות קידומות המשמשות ליצירת שם קובץ הפלט מבוסס
על המזהה של הברקוד (או זוג הברקוד). השמות נוצרים כך: קידומת + _ + ברקוד
ID + _ + לקרוא מספר + .סיומת. קובץ הפלט עבור קריאות שלא יכול להיות
demultiplexed הוא קידומת + _ + לא ידוע + _ + לקרוא מספר + .סיומת. המספר שנקרא הוא
מושמט אלא אם נעשה שימוש בסכימת קובץ הקריאה המזווג, והוא "il" עבור פלט משולב.
ההרחבה היא "fastq"; ".gz" מצורף לסיומת אם -z נעשה שימוש בדגל.
השמיים מקביל CLI דגלים הם:
· -f ו -F: קלט ופלט של קובץ R1 עם קצה בודד או מזווג בהתאמה.
· -r ו -R: קלט ופלט של קובץ R2 מזווגים.
· -i ו -I: קלט ופלט משולב משולב.
השמיים ברקוד פילה
קובץ הברקוד הוא קובץ מופרד בטאבים עם כותרת אופציונלית. זה חובה, והוא
מסופק תמיד באמצעות -b דגל שורת הפקודה. הפורמט המדויק תלוי בברקוד
מצב, ומתואר עוד בסעיפים שלהלן. אם קיימת כותרת, הכותרת
הקו חייב להתחיל עם אחד מהם ברקוד or ברקוד, או שהוא יתפרש כברקוד
קו, מה שמוביל לשגיאת ניתוח. כל שורה שמתחילה ב-';' או '#' מתעלם, מה שמאפשר
יש להוסיף הערות בהתאם לברקודים. אנא ודא שהתוכנה משמשת
הפקת הברקוד משתמשת בקידוד ASCII, ואינה מכניסה סימן סדר-בתים (BoM) בתור
עורכי טקסט רבים יכולים להשתמש בשקט בסכימות קידוד מבוססות Unicode. אני ממליץ להשתמש ב
LibreOffice Calc (חלק מחבילת קוד פתוח בחינם) ליצירת טבלאות ברקוד;
ניתן להשתמש גם ב-Microsoft Excel.
חוסר התאמה רָמָה מבחר
ללא תלות במצב ברקוד, ה -m הדגל משמש לבחירת ה-hamming המקסימלי המותר
המרחק בין קידומת קריאה לברקוד שייחשב כהתאמה. בתור "מוטציה"
ברקודים חייבים להיות ייחודיים, מרחק הפטיש של אחד הוא ברירת המחדל כמו ברקודים בדרך כלל
מתוכננים להבדיל על ידי מרחק חבטות של לפחות שניים. לחלופין, (באמצעות ה -p
flag), ax יאפשר רמות אי התאמה סלקטיביות, כאשר, אם נצפו התנגשויות, ה
ברקוד יהיה מותאם בדיוק. זה מאפשר לעבד מערכי נתונים עם ברקודים
שאין ביניהם מרחק מספיק גבוה.
יחיד ברקוד מצב
מצב ברקוד יחיד הוא מצב הפעולה המוגדר כברירת מחדל. ברקודים מותאמים לקריאה
אחד (להלן הקריאה קדימה), והברקוד נחתך מהקריאה קדימה בלבד,
אלא אם כן ה -2 ניתן דגל שורת הפקודה, ובמקרה זה קידומת באורך זהה ל-
ברקוד תואם נחתך גם מהקריאה השנייה או הפוכה. שימו לב לרצף של
קריאה שנייה זו אינה נבדקת לפני חיתוך.
במצב ברקוד יחיד, לקובץ הברקוד יש שתי עמודות: ברקוד ו ID.
קומבינטורי ברקוד מצב
מצב ברקוד קומבינטורי מופעל על ידי מתן ה- -c דגל בשורת הפקודה. קָדִימָה
ברקודים לקריאה מותאמים לקריאה קדימה, וברקודים לקריאה לאחור מותאמים
כנגד הקריאה ההפוכה. הברקודים האופטימליים נבחרים באופן עצמאי, והברקוד
זוג נבחר משני הברקודים הללו. הברקודים המתאימים נחתכים משניהם
קורא; ה -2 לדגל שורת הפקודה אין השפעה במצב ברקוד קומבינטורי.
במצב ברקוד קומבינטורי, לקובץ הברקוד יש שלוש עמודות: 1, 2 ו
ID. ברקודים בודדים יכולים להופיע פעמים רבות בתוך הברקוד קדימה ואחורה, אבל
צמדי ברקוד חייבים להיות שילובים ייחודיים.
השמיים Demultipexing סטָטִיסטִיקָה שלח
השמיים -t האפשרות מאפשרת פלט של ספירות קריאה לכל דגימה לקובץ מופרד בטאבים. ה
לקובץ תהיה כותרת המתארת את הפורמט שלו, וכוללת שורה לקריאה ללא ברקוד.
של AXE תוֹאֵם אַלגוֹרִיתְם
Axe משתמש באלגוריתם המבוסס על התאמת הקידומת הארוכה ביותר בניסיון כדי להתאים אורך משתנה
מתחילת כל קריאה מול קבוצה של ברקודים 'מוטטים'.
המינג מרחק תואם
בעוד שלרוב היישומים ברצף תפוקה גבוהה, מרחקי הפטיש הם א
מדד מטומטם, אופייני לקריאת ברקודים של HTS מתוכננים כדי לסבול א
רמה מסוימת של חוסר התאמה של האמינג. בהתחשב ברצפים אלה קצרים ומתרחשים בדרך כלל
בסוף 5' של קריאות, לעתים נדירות צריך לשקול הוספות ומחיקות, וה-
שיעור מוגבר של הקצאת קריאות עם שגיאות רבות מקוזז על ידי הסיכון של שווא
הקצאת ברקודים לדוגמא שגויה. בכל מקרה, קורא עם יותר מ-1-2
שגיאות רצף במספר הבסיסים הראשונים שלהם צפויות להיות באיכות ירודה, ויהיו
פשוט לסנן במהלך בקרת האיכות במורד הזרם.
המינג חוסר התאמה מנסה
בדרך כלל, קריאות מותאמות לקבוצה של ברקודים על ידי חישוב מרחק הפטיש
בין הברקוד, לבסיסי l הראשון של קריאה עבור ברקוד באורך l. ה
לאחר מכן נבחר ברקוד "נכון" על-ידי הקלטת הברקוד עם ה-hamming הנמוך ביותר
מרחק לקריאה (התאמה תחרותית) או פשוט על ידי קבלת הברקוד הראשון עם
מרחק חבטות מתחת לסף מסוים. גישות אלה הן מאוד
יקר מבחינה חישובית, ויכול להיות בעל דיוק נמוך יותר מהאלגוריתם שאני מציע.
בנוסף, יישומים של שיטות אלה כמעט ולא מטפלים בברקודים באורך שונה
וברקוד קומבינטורי טוב, אם בכלל.
מרכזי באלגוריתם של Axe הוא הרעיון של ניסיונות האמינג-אי-התאמה. ניסיון הוא N-ary
עץ עבור אלפבית N אותיות. במקרה של קריאות רצף בתפוקה גבוהה, יש לנו
אלף - בית AGCT, המקביל לארבעת הנוקלאוטידים של ה-DNA, פלוס N, משמש לייצג
שיחות בסיס מעורפלות. במקום להתאים כל ברקוד לכל קריאה, אנו מחשבים מראש את הכל
רצפים מותרים בכל רמת אי התאמה, ואחסנו אותם בניסיונות ברמה. ל
לדוגמה, כדי להתאים למרחק הפטיש של 2, אנו יוצרים שלושה ניסיונות: אחד המכיל הכל
ברקודים, מילולית, ושני ניסיונות שבהם כל רצף במרחק הפטיש של 1 ו
2 מכל ברקוד בהתאמה. להלן, ניסיונות אלה מכונים 0, 1 ו
ניסיונות של 2 מ"מ, למרחק חבטות (אי התאמה) של 0, 1 ו-2. לאחר מכן, נמצא את הארוך ביותר
קידומת בכל רצף הנקראת בניסיון של 0 מ"מ. אם קידומת זו אינה דף חוקי ב-
0mm trie, אנו מוצאים את הקידומת הארוכה ביותר ב-1mm trie, וכן הלאה עבור כל הניסיונות בעלייה
להזמין. אם שום קידומת של הקריאה אינה רצף שלם בניסיון כלשהו, הקריאה תוקצה
לקובץ פלט "ללא ברקוד".
אלגוריתם זה מבטיח התאמת ברקוד אופטימלית במובנים רבים, אך הוא גם מהיר במיוחד.
במצבים עם ברקודים באורך שונה, אנו מבטיחים כי הארוך ביותר קביל
נבחר ברקוד במרחק נגיעה נתון; בהנחה שהרצף אקראי אחרי ה-
ברקוד, ההסתברות להקצאות שגויות בשיטה זו נמוכה. אנחנו גם מבטיחים
שהתאמות מושלמות קצרות עדיפות על פני התאמות לא מדויקות ארוכות יותר, כפי שאנו קודם כל בלבד
שקול ברקודים ללא שגיאה, לאחר מכן שגיאה אחת, וכן הלאה. זה מבטיח שקורא עם
ברקודים שאחריהם מופיע רצף אקראי שבמקרה תואם באופן לא מדויק לזמן ארוך יותר
ברקוד בסט אינם מוקצים בטעות לברקוד הארוך יותר הזה.
המהירות של אלגוריתם זה נובעת במידה רבה מהתאמת הזמן הקבוע עם האלגוריתם
יחס למספר הברקודים שיתאימו. הזמן שנדרש כדי להתאים לכל קריאה הוא
פרופורציונלי במקום לאורכם של הברקודים, באשר לברקוד באורך l, לכל היותר
נדרשות ירידות ברמת 1+XNUMX כדי למצוא ערך בניסיון. כמו אורך זה
פחות או יותר קבוע וקטן, המורכבות הכוללת של האלגוריתם של הציר היא O(n) עבור n
קריאת, בניגוד ל-O(nm) עבור n קריאות ו-m ברקודים כפי שאופייני למסורתיים
אלגוריתמים מתאימים
· Genindex
השתמש ב-axe-demux באינטרנט באמצעות שירותי onworks.net