מבוא: מדוע מיון העניינים בניתוח נתונים Genomic

ההתקדמות המהירה של טכנולוגיות ריצוף הובילה להתפוצצות בנפח של נתונים גנומיים שנוצרים.ניסוי חד-מיני אנושי יחיד המסדיר מייצר מעל 200 GB של נתונים גולמיים, ופרויקטים בקנה מידה גדול כמו פרויקט 100,000 גנומים או כל תוכנית המחקר של Us לנהל מחסנים של רצפים. בתוך אלגוריתמים אלה של מידע, מיון אינו רק נוחות ארגונית - הוא אמצעי חישובי יעיל המאפשר כמעט מדויק לסימון של דחיסה, כלומר, להפחתה של כל אלגוריתמים של אלגוריתמים, תוך כדי צמצום של אלגוריתמים של אלגוריתמים של אלגוריתמים.

ללא גישות יעילות, bioinformatics צינורות להיות מכוונן.חשב המשימה של יישר מיליוני קריאה קצרה לגנום ההתייחסות: אלגוריתמים היישור מניחים כי קריאה מסומנת על ידי מיקום genomic.אם קריאה מגיעה ללא תשלום, תהליך ההיערכות יכול לגוון genoative של O(n2), להפוך את הניתוח לא מדויק.

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

התפקיד הבסיסי של מיון ב-Genomics

מיון מופיע כמעט בכל שלב של זרימת עבודה ביו-אינופורמטיקה טיפוסית. להלן הם המקרים הנפוצים ביותר:

  • (FLT:0) היערכות לקריאה: ⁇ FLT:1 ; רוב היישרים (BWA, Bowtie2, STAR) דורשים את הקלט להיות מוקרן על ידי כרומוזום ומיקום כדי לתמוך אלגוריתמים יעילים של זרע ו-extend.
  • (ב) ⁇ :0) ,4 (בתרגום חופשי: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ויקרא: ויקרא: ויקרא: ויקרא י"א: ויקרא י"א: ויקרא י"א: ויקרא י"ד: ויקרא י"ד:
  • (ב) ,0) דיכוי: 1FLT (בקיצור: קובצי SAM/BAM דחוסים טוב יותר בגלל ששימוש בקונדורדינטות זהות ניתן לקודד ביעילות.
  • בניין (FLT:0) Index Building: FLT:1 Indexing (למשל, BAI, CSI) עובד רק על קבצים מכוונים, המאפשר גישה אקראית מהירה.

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

אתגרים ייחודיים לנתונים Genomic

רצף genomic של מיון מציג אתגרים נפרדים בהשוואה למיין נתונים גנריים:

  • (ב) ויקרא ה': ויקרא י' (במדבר כ"ד): "הקורא" (במדבר כ"כ, כ- 150 ק"מ) קורא מבנה זה מאפשר מיון מבוסס דלי.
  • (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ניתן לדרוש לחץ מזיכרון:0) 1 (המידע על נתונים) לעתים קרובות מעל RAM; עיבוד חיצוני (מבוסס על דיסק)
  • דרישות ההסתברות:0 (FLT:1) פעולות מסוימות (למשל, שמירה על צו קריאה לאחר הסרת כפול) זקוקות למיין יציב.
  • (ב) ⁇ :0 (ב) , ⁇ :0) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

התייחסות לאתגרים אלה דורשת בחירה מכוונת של אלגוריתם, כפי שאנו דנים בו.

השוואת גישות אלגוריתמיות למיין גנומי

1. השוואה מבוססת על מונים

אלגוריתמים של טריד-ואמת כמו FLT:0 [MergeimidמייןFLT] ו- (FLT:2 QuickckuresquaFLT 3) זמינים באופן נרחב בספריות סטנדרטיות (למשל, C++ std:sort) הם עובדים עם כל סוג נתונים התומכים במפעיל פחות-משותף.

(FLT:0) MergeמייןFLT:1 מציע אור יציב קבוע O(n log n) זמן הגרוע ביותר, מה שהופך אותו בחירה בטוחה.כלי ביונופורמטיקה רבים (SAMtools סוג, פיקארד) להשתמש באופטימיזציה של מיגור מיון שיכול להתמודד עם נתונים מחוץ לקורה באמצעות מיזוג חיצוני.

(FLT:0) QuickquickמייןFLT:1 יש נמוך יותר מעל הממוצע אבל סובל מהתנהגות degenerate O(n2) על קלטות פתולוגיות (למשל, קורא כבר כאשר בחירת פיוט היא עניה). ביצועי התיק הממוצע שלו הוא מצוין, אבל חוסר יציבות וסיכון הגרוע ביותר לעשות את זה פחות פופולרי עבור צינורות genomic.

המונחים: non-comparison-based

מכיוון שרצף ה-DNA מורכב מארבעה תווים (או חמישה אם כולל N), הם באופן טבעי מלווים את עצמם ל-FLT:0)Radixמיין FLT:1 darx מעבדים ספרות (או אותיות) אחת בזמן תוך שימוש בספירה כצוללת ( subroutine. forקבוע מחרוזת אורכי זמן), מורכבות הזמן היא O(k) n) שבו k הוא אורך (למשל, 150) ו- nx) הוא מהיר יותר מ- nx) יחסית ל- nxern-NL) הוא nexertexern-NL) הוא nxertexern-NL {\displaystyle (n-בדרך כלל מהיר יותר מהיר יותר מהיר יותר מאשר kernexern-בדרך כלל מהיר יותר מאשר kern-N (n-בדרך כלל (nexernexern-N=n-בדרך כלל (nx) יחסית (nexernexernexernexernexernex) יחסית (nexertexernexern-N.

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

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

יישום סוג של רדינקס יעיל עבור DNA Sequences

הרעיון המרכזי של רדינקס על מיתרי DNA הוא למיין את הדמות הפחות משמעותית הראשונה (סוג LSD רדינקס) או הדמות המשמעותית ביותר (סוג של MSD רדינקס) עבור רצפים באורך קבוע, LSD קורנקס הוא פשוט ויציב: אנו מעבדים כל עמדה מהימין ביותר לשמאל, ביצוע ספירה בכל עמדה.

מפה לבסיסי DNA ל-Integers

כדי להשתמש בספירה בצורה יעילה, אנו הופכים כל בסיס ל- integer קטן:

  • (ב) 0 (ב) ⁇
  • 1 (ב) 1 (ב) 1
  • 2 (ב) .
  • (ב) ⁇ ⁇ ⁇ ⁇
  • (ב) 4 (הופנה מהדף גדול יותר עבור סדר יציב; יכול גם להציב בסוף).

מיפוי זה מאפשר לנו לאינדקס לתוך מערך ספירת 5 של יישומים וליצור סדר ממונן באמצעות סכומי תיקון.

Algorithm Steps (LSD Radix)

  1. (ב) ויקרא י"א: "בְּבְּבְתָּבְתָּבְתָּבְתָּבָה: אִם הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא
  2. (ב) ויקרא ויקרא י"א: ויקרא י"ד): "ה' (ב) ויקרא י"ד): "וַיָּבְתָּבְתָּבְתָּעָה לָכֶם" (במדבר כ"ד, כ"ד).
  3. מעל לכל הרצף; לכל רצף, ספירת הצטברות [בסיס to int(seq [pos]).
  4. סכומים קבועים: עבור i= 1 עד 4: ספירה (i) +=ספירה[i-1].
  5. יצירת חיץ זמני ( ⁇ ⁇ ) של אותו גודל.
  6. רצף על פני רצף כדי לשמור על יציבות; עבור כל אחד, להציב אותו בפלט [-count [בסיס to int(seq [pos]].
  7. העתקת פלט חזרה למערך המקורי.
  8. לאחר עיבוד כל התפקידים (FLT:0) , רצף הם lexicographicly.

(FLT:0) מורכב:0 (Complexity:FLT:1 O(l) n) זמן ו O(n) מרחב עזר.עבור ל- l= 150, זה 150 עובר דרך הנתונים.כל מעבר הוא סריקה ליניארית, כך פעולות הכוללות הן - 150n, אשר עבור n= 1 מיליארד קורא הוא 150 מיליארד פעולות - זול יותר מ- O(n) עם n - (30 מיליארד השוואות ל- 2.

המונחים: veth Sequences

לא כל רצפים גנומיים הם אורכי אור קבוע.לדוגמה, ריצוף ארוך טווח (PacBio, אוקספורד ננופו) מייצר קריאה של אורך משתנה. LSD Radix ממיין דורש אורך אחיד; לכן, אחד חייב או רצף קצר עם אורך מיוחד של שלח (למשל, אופי קטן יותר מ A) או שימוש באופי DLT:0Dx Radix RadiFharx darphirre, כלומר, נחשב באופן טבעי יותר מסוג 1D.

שיקולים של זיכרון ומושגים חיצוניים

אפילו רדינקס ליניארי יכול להיכשל אם הנתונים לא מתאימים ל- RAM.עבור נתונים מסיביים (למשל, קבצי גנום BAM), עלינו ליישם את המיזוג של FLT:0external אינטגרציהFLT:1 אסטרטגיה:

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

גישה זו שומרת על זמן ה- O(l-n) למניה, אך שלב המיזוג מוסיף את O(n di m) שבו m הוא מספר ה- פיסות (בדרך כלל קטן) כלי ייצור רבים כמו FLT:0SAMtsimiFLT:1 להשתמש בדיוק דפוס זה: ב-memory מיון ואחריו מיזוג חיצוני.

(FLT:0) תקציב מזכר: 1.10.10.1 עבור מערכת 64 סיביות, לאפשר -24 על ידיטים לקריאה (השוויון + איכות + שם) ב-buffer. עם 32 GB, אתה יכול למיין בערך 1.3 מיליארד קורא בזיכרון.עבור נתונים גדולים יותר, אינטגרציה חיצונית היא בלתי נמנעת אופטימיזציה על ידי שימוש בקבצים ממומשים וסטרימינג זיכרון שבו ניתן.

הופעות ב Benchmarks ו- Real-world Gains

(ב) כמה מחקרים והשוואות כלי ביו-אינפורמטיקה הראו את העליונות של רדיאקס לרצף גנומי (לדוגמה, מאמר 2016 ב-FLT:0BioinformaticsureFLT:1rg:2 "A Radix for genomic Data"FLT 3: 3) הראה כי LSD רדיקס השיג מהירות גבוהה על פני עוקץ:2xi:2xi=5>

במדד מבוקר, ששווה 10 מיליון משתמשים:

  • (ב) ⁇ : ⁇ (ב"ד): "ה' (במדבר כ"ד): "ה' (במדבר כ"ד): "ה':
  • (ב) ⁇ (ב"ג): "ה' אלקים" (ב"ח, ט"ד)
  • (ב) מיפוי:0) LSD Radix (integerמיפוי): מיפוי ראטפל ( 1:1 16 שניות)

כאשר עולה ל 1 מיליארד קורא, הפער רחב יותר כי הזמן הליניארי של רדינקס ממנע את ה- O(n di n) מפוצץ. בפועל, המהירות היא אפילו גדולה יותר בשל התנהגות מטמון טובה יותר: רדינקס גישה לזיכרון באופן שווה בשלב הספירה, בעוד השוואה בין סוגים שונים של לדלג על דרכים בלתי צפויות.

אסטרטגיות מקבילות

מעבדים מודרניים עם ליבות מרובות יכולים להאיץ עוד יותר מיון רדינקס ממקבילות באופן טבעי:

  • (ב) ,0) ,U:0) ,U: ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (FLT:0) סיום המעבר: FLT:1 כל חוט יכול באופן עצמאי להציב את תת-התחילה של קריאה לתוך מערך הפלט באמצעות סכומי תיקון גלובליים. Care נדרש כדי למנוע שיתוף כוזב באמצעות מוליכים של חוטים.
  • (FLT:0) External Merge:FLT:1, שלב המיזוג ניתן למקביל באמצעות עצי מיזוג מרובי הדרך: קבוצות של גושים מתמזגות במקביל, ואז ממוזגות שוב תוצאות.

GPU-accelerated Radix הוא גם אזור מחקר פעיל (ראה FPLT:0 "GPU-Acceleratedמיין for Genomic Data"(ראה יישום ניסיוני של 5-10x מהירות על פני CPU רדינקס עבור נתונים גדולים.

הצעות ושיקולים

שום אלגוריתם יחיד אינו מושלם. רדיקס מון סוחר זמן יעילות עבור זיכרון וגמישות:

  • (ב) זמן (או(n) יציב, גדול מטמון מקומי, קל למקביל, עובד עבור כל אלפבית באורך קבוע.
  • (FLT:0)Cons:cioFLT:1 דורש רצף אור קבוע (או ⁇ ); זיכרון נוסף O(n) עבור buffer; לא מתאים למיין על ידי מפתח באורך משתנה (למשל, שם קריאה + קואורדינט מפתח מורכב); יכול להיות איטי יותר מאשר מנגן מ"מ"ג עבור n קטן ( ⁇ 100,000) בשל מעברים מרובים.

עבור רוב צינורות genomic בקנה מידה גדול, היתרונות של Radix מונים הרבה יותר עולה על עלויות.כלי כמו FLT:0picardמיין מ-SamcioFLT 1 עכשיו מציעים יישום אופציונלית של רדיקס באמצעות FLT:2SAMTFLT 3: 3 ספריה, כאשר מיון קבצי BAM על ידי לתאם (מיקום + חלקן), גישה היברידית היא נפוצה: דלי הראשון על ידי כרומוזום (x) יש צורך אחד על ידי כרומוזום אחד, לאחר מכן, 000).

טיפים ליישום מערכות ייצור

  1. (FLT:0)Use a pre-computed integer מערך: FLT:1 במקום להמיר כל דמות על זבוב במהלך כל מעבר, מראש למנוע את כל מערך הרצף למערך אינטגרטור. זה זיכרון מסחר למהירות: כל רצף הופך למערך של על ידי 1 מיליארד קורא של 150 tes על ידי כל אחד, זה GB - גדול מדי: להמיר על בסיס קטן אבל מיפוי.
  2. (ב) ⁇ (ב) ⁇ (ב) בין מקום לבין מחוץ ל-Out-of-place:FLT:1 Standard Radix דורש buffer נוסף בגודל n.If Memory is Tight, in-place MSD Radix ניתן להשתמש (כמו אחד המשמש ב-FLT:2sambaFLT 3:2sambaFLT 3).
  3. (FLT:0) לרוח השמש:FLT:1 עבור מפתחות בינאריים, Radix מון יכול לעבד מספר ביטים בבת אחת. עבור DNA, עיבוד דמות אחת (2 ביטים) לעובר הוא יעיל; עיבוד שני דמויות (4 סיביות) כדי לעבור מצטמצם בין 150 ל-75 אבל דורש מערך של גודל 16 - עדיין קטן.
  4. (ב) ניתן לפסוק ב[[1924]] ו[[1924]], [[1924]] ו[[1924]], [[1924]]]] ו[[1924]], [[1924]]]]]]]], [[1924]]]]]], [[1924]]]]]]]]
  5. (FLT:0)Test עם הפצת נתונים אמיתית: FIRLT:1 (המזוודה הגרועה ביותר עבור רדינקס סוג מתרחשת כאשר כל הרצף זהה - אז כל מעבר עושה סריקה מלאה אבל ההזמנה נותרת ללא שינוי, עדיין O(לn) זה בסדר עבור רדינקס, בעוד ש Quick ימשיך להתנהג זהה.

מסקנה

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

עבור מהנדסי ביו-אינפורמטיקה בונים או שמירה על שגרות מיון, אנו ממליצים לאמץ LSD Radix סוג עבור קריאה באורך קבוע ו MSD Radix סוג עבור רצפים באורך משתנה.שלב אותו עם מיזוג חיצוני עבור נתונים מחוץ-of-core, ומקביל את הספירה וההסתה עובר כדי לנצל חומרה רב-core מודרנית.

במבט קדימה, השילוב של Radix Type עם האצה חומרה (GPUs, FPGAs) מבטיח אפילו יותר צעדים.כפי שאנו פועלים לקראת ניתוח גנטי בזמן אמת בשלב הטיפול, כל מיקרו-שני שניצל במיין מביא אותנו קרוב יותר יישומים רפואיים הנשען על תוצאות מיידיות.הבסיס הוא מוצק: אלגוריתם פשוט, עתיק מותאם לעידן הגנומי.