יש לי שלוש ספריות רצף של אדם יחיד הממופה להפניה באמצעות bwa-mem
. ברצוני למזג את שלושת הקבצים הלא-מסודרים .sam
שברשותי כך, אני יכול להתקשר לגרסאות ולהערכות הטרוזיגוזיות באמצעות אטלס. Atlas דורש קובץ מיפוי קלט אחד ( bam
) עם קבוצות קריאה מוגדרות מכיוון שהוא מעריך את פרופילי השגיאה של ספריות שונות בנפרד.
כיצד אוכל למזג מספר קבצי sam? רצוי להימנע מג'אווה (כלי Picard).
ניסיתי להבין פיתרון באמצעות samtools 1.3
. מיניתי קבצים בודדים באמצעות samtools sort
, ואז השתמשתי ב- samtools merge -r merged.bam s1.sort.sam s2.sort.sam s3.sort.sam
כדי למזג את קבצים ממוינים. עם זאת, קבוצת הקריאה לא הגיעה לכותרת (ומתקשר הגרסה שאני משתמש בו מתלונן על כך), גם קבוצת הקריאה היא באופן טיפשי בשם הקובץ.
ניסיתי להגדיר שמות משמעותיים של קבוצות קריאה. תוך שימוש בהליך המתואר ב- BioStars, אך מצאתי שזה רק ישנה את הכותרת, זה לא מתאים את שמות קבוצות הקריאה שהוגדרו על ידי samtools merge
(שמות הקבצים).
בעקבות השרשור הקשור הזה ב- SeqAnswers, ניסיתי להגדיר את הכותרת הנכונה עם קבוצות קריאה המתאימות לשמות קבצים ממוזגים:
samtools -rh rg.txt merged.bam s1.sort.sam s2.sort.sam s3.sort.sam
כאשר rg.txt
הוא קובץ עם כותרת
@RG s1.sort@RG s2.sort@RG s3.sort ... פלט של תצוגת samtools -H s1.sort
עם זאת, הכותרת עדיין לא הייתה את קבוצת הקריאה, אני מניח מכיוון שכותרת sam מקבלת רק פריטים מתויגים שצוינו (משהו כמו @RG XY: s1.sort
). אז בדקתי את ה- bam הממוזג
וגיליתי שהתג של RG הוא Z:
. אז ניסיתי פשוט לשנות את שם הכותרת של הקובץ הממוזג באמצעות samtools reheader
, אבל אז samtools מתלוננים על העובדה שהתג צריך להיות באורך 2:
מפתח שגוי: צמד ערך בשורה 123: "@RG Z: s1.sort" תקלה בפילוח (הליבה מושלכת)
אני רוצה פיתרון ל:
- צור שמות קבוצות קריאה מעט סטנדרטיים יותר (
SM: תבנית \ tLB: ספרייה
) - הימנע מכתיבה חסרת טעם לדיסק כמו ב- sam -> ממוינת. sam -> merged.bam case (ניתן להשיג ככל הנראה באמצעות "צינורות ו tees", תודה @bli)
אני גם יודע שאני יכול לציין RG ל- bwa, כך שקבצי ה- sam קראתי קבוצות שהוגדרו מלכתחילה. אבל אני לא אוהב את הרעיון לבצע מיפוי מחדש של שלוש ספריות רק כדי ליצור עיצוב נכון של קבוצות קריאה.