שְׁאֵלָה:
כיצד להמיר fastq ל- fast5
aechchiki
2017-08-15 15:46:21 UTC
view on stackexchange narkive permalink

fast5 הוא גרסה של HDF5 הפורמט המקורי בו מסופקים נתונים גולמיים מאוקספורד ננופור MinION. תוכלו לחלץ את הקריאות בפורמט fast5 בקלות לפורמט fastq רגיל, באמצעות poretools למשל.

נניח כי יישרתי קריאות אלה בתבנית fastq לגנום התייחסות חיצוני, וכתוצאה מכך נוצר קובץ SAM . נניח שלקחתי אז קבוצת משנה של הקובץ SAM , על פי הדגל הסיבית, כדי לכלול רק את הקריאות שממפות להפניה. בעזרת מזהה הקריאה, אז אוכל לשלוף אותם מהקובץ המכיל את הקריאות בתבנית fastq , וליצור קובץ תת קבוצה בתבנית fastq המכיל רק את המזהים שמופנו אל ההתייחסות.

עכשיו השאלה שלי היא, האם נוכל לקבוע קריאות משנה מהארכיון fast5 על פי רשימת קריאות המיפוי כפי שנלקחה מהקובץ עם קריאות ב- fastq פוּרמָט? זה למטרות חינוכיות, כך שיהיה לנו ארכיון התחלתי קטן יותר, והמיצוי fast5 -> fastq לוקח פחות זמן מעבד.

זו שאלה נחמדה לשחק אם נוכל לקבל נתונים לדוגמה. האם תוכל לספק (או קישור ל-) fast5 ואת רשימת המיפויים?
יש כמה דוגמאות לקריאות מהשיחה שלי ב- TEDx בשנה שעברה [כאן] (https://www.dropbox.com/sh/o7fz7s91865u6vw/AAAsIzqbmrylD6lHl-yOJggXa?dl=0), קוראים מתוך ריצות שעשיתי במהלך כנס AGTA בשנה שעברה כאן] (https://www.dropbox.com/sh/0iqbjk7drmpsro0/AACBehmjVL7iABf5U2NVi9Lra?dl=0), וקורא מחקירת קריאה כימרית [כאן] (http://www.ebi.ac.uk/ena/data / תצוגה / PRJEB20601). ONT FAST5 "הסטנדרטי" משתנה בתדירות כה גבוהה עד שקשה למצוא משהו שמייצג את מה שיש כרגע.
שתיים תשובות:
Michael Hall
2017-08-16 09:30:10 UTC
view on stackexchange narkive permalink

שים לב : שיניתי את תשובתי מעט מהמקור שכן הפכתי את התסריט המקורי לתוכנית הניתנת להתקנה pip (עם בדיקות) ועדכנתי את הקישורים ו קטעי קוד בהתאם. מהות התשובה עדיין זהה לחלוטין.


זה משהו שהתכוונתי להסתובב אליו זמן מה, אז תודה על ההנחיה.

אני יצרו תוכנית פיתון בשם fast5seek כדי לעשות את מה (אני חושב) שאתה מחפש.

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

המסמכים ב- GitHub repo כוללים את כל המידע, אלה שקוראים בבית

  pip3 מתקינים fast5seekfast5seek -i / path / to / fast5s -r in.fastq in.bam in.sam -o out.txt  

מה שהוא עושה קורא ב- <in.fastq | in.bam | in.sam> וחלץ את מזהה הקריאה מכל כותרת. לאחר מכן הוא עובר בין כל קבצי fast5 תחת / path / to / fast5s ובודק אם מזהה הקריאה שלהם נמצא במערך מזהי הקריאה מ- <in.fastq | in.bam | in.sam> . אם זהו, הנתיב לקובץ נכתב לשורה משלו ב out.txt.

אם לא ניתן פלט ( -o ) , זה יכתוב את הפלט ל- stdout.

אז אם אתה רוצה לצנח את הנתיבים הללו לתוכנית אחרת, אתה יכול לעשות משהו כמו

  mkdir subset_dir / fast5seek -i / נתיב / אל / fast5s / -r in.fastq | xargs cp -t subset_dir /  

הדוגמה שלעיל תעתיק את קבצי fast5 שנמצאים ב- fastq / BAM / SAM שלך ל subset_dir / .

כאזהרה, יש לבדוק את מזהה הריצה (אם המידע הזה זמין). קיימת אפשרות קטנה כי לשני קבצי FASTQ מריצות שונות יהיה אותו מזהה קריאה.
הוספתי כעת את הסימון הזה לקבצי fastq. אמנם, run_id אינו כלול בתוך קבצי BAM / SAM (לפחות לא עבור אלה שיש לי) ולכן בדיקה זו תתרחש רק ב- fastq.
gringer
2017-08-15 23:44:01 UTC
view on stackexchange narkive permalink

אני עושה זאת בתדירות גבוהה מאוד, ומשתמש בשם הקובץ הנקרא לזיהוי קבצי FAST5 המשויכים לקריאות מסוימות. אם רשומת FASTQ כוללת את מספר הערוץ ומספר הקריאה (ורצוי גם את runID), אז אני משתמש במידע הזה כדי למצוא את קריאת ה- FAST5 המשויכת.

אם קוראים לקרוא עם Albacore, אז ה- לקובץ sequencing_summary.txt יש מידע נוסף. העמודה הראשונה היא השם המדויק של הקובץ שנקרא, העמודה השנייה היא מזהה הקריאה של רצף ה- FASTQ והעמודה השלישית היא מזהה הריצה המשויך לזהות הקריאה. זה הרבה יותר קל לעבוד איתו, אך דורש קריאות קריאה עם אלבקור (וזה, אומנם, מה שמסתמן כרגע בתוצאות הטובות ביותר).

כן זה מה שעשיתי, בעצם: 1. לחלץ fast5 ל- fastq; 2. יישר את fastq להתייחסות; 3. קבל את מזהה הקריאות שממפה מה- SAM של היישור; 4. grep במיפוי קורא מזהה מה- fastq; 5. לחלץ את שם ה- fast5 מכותרת ה- fasta של כל קריאה (שדה אחרון); 6. מצא את fast5 המתאים בספריית fast5 המקורית. אבל תהיתי אם לא חסר לי שום תוכנה שיכולה לעשות זאת בריצה אחת.
נוסף הערה על albacore, שיש לה קישור ישיר בין מזהי קריאה של FASTQ ושמות קבצים של FAST5
לאור ההערה שלך לעיל @AminaEchchiki הוספתי תאימות גם לקבצי BAM ו- SAM.


שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...