Dorado عبارة عن أداة أساسية عالية الأداء وسهلة الاستخدام ومفتوحة المصدر لقراءات Oxford Nanopore.
واحد قابل للتنفيذ مع افتراضيات معقولة، والكشف التلقائي عن الأجهزة وتكوينها.
يعمل على Apple silicon (عائلة M1/2) ووحدات معالجة الرسومات Nvidia بما في ذلك وحدات معالجة الرسومات المتعددة ذات القياس الخطي (راجع الأنظمة الأساسية).
تعديل القاعدة الأساسية.
الاتصال الأساسي على الوجهين (شاهد الفيديو التالي للحصول على مقدمة حول الاتصال على الوجهين).
تصنيف الباركود البسيط.
دعم إخراج القراءة المحاذاة في SAM/BAM.
الدعم الأولي لتقدير ذيل بولي (A).
دعم تصحيح خطأ القراءة الواحدة.
دعم POD5 لأعلى أداء للمكالمات الأساسية.
استنادًا إلى libtorch، واجهة برمجة تطبيقات C++ لـ pytorch.
تحسينات مخصصة متعددة في CUDA وMetal لزيادة أداء الاستدلال إلى الحد الأقصى.
إذا واجهت أي مشاكل في إنشاء أو تشغيل Dorado، يرجى الإبلاغ عن المشكلة.
أولاً، قم بتنزيل برنامج التثبيت المناسب لنظامك الأساسي:
دورادو-0.8.2-لينكس-x64
دورادو-0.8.2-لينكس-arm64
دورادو-0.8.2-osx-arm64
دورادو-0.8.2-win64
بمجرد تنزيل أرشيف .tar.gz
أو .zip
ذي الصلة، قم باستخراج الأرشيف إلى الموقع المطلوب.
يمكنك بعد ذلك الاتصال بـ Dorado باستخدام المسار الكامل، على سبيل المثال:
$ /path/to/dorado-x.y.z-linux-x64/bin/dorado basecaller hac pod5s/ > calls.bam
أو يمكنك إضافة مسار bin إلى متغير بيئة $PATH
الخاص بك، وتشغيله باستخدام الأمر dorado
بدلاً من ذلك، على سبيل المثال:
$ dorado basecaller hac pod5s/ > calls.bam
راجع DEV.md للحصول على تفاصيل حول بناء Dorado من أجل التنمية.
تم تحسين Dorado بشكل كبير لوحدات معالجة الرسومات Nvidia A100 وH100 وسيوفر أقصى قدر من الأداء على الأنظمة التي تحتوي على وحدات معالجة الرسومات هذه.
تم اختبار Dorado على نطاق واسع ودعمه على الأنظمة التالية:
منصة | وحدة معالجة الرسومات/وحدة المعالجة المركزية | الحد الأدنى من متطلبات البرمجيات |
---|---|---|
لينكس x86_64 | (ز)V100، A100 | سائق كودا ≥450.80.02 |
H100 | سائق كودا ≥520 | |
ذراع لينكس64 | جيتسون أورين | Linux لـ Tegra ≥34.1.1 |
ويندوز x86_64 | (ز)V100، A100 | سائق كودا ≥452.39 |
H100 | سائق كودا ≥520 | |
تفاحة | ابل سيليكون (M1/M2) |
لم يتم اختبار أنظمة Linux أو Windows غير المذكورة أعلاه ولكنها تحتوي على وحدات معالجة الرسومات Nvidia مع ذاكرة VRAM تبلغ ≥8 جيجابايت وبنية من Pascal وما بعده (باستثناء P100/GP100) على نطاق واسع ولكن من المتوقع أن تعمل. عند الاتصال الأساسي بأجهزة Apple، نوصي بالأنظمة ذات الذاكرة الموحدة التي تبلغ ≥16 جيجابايت.
إذا واجهت مشاكل في التشغيل على نظامك، يرجى الإبلاغ عن المشكلة.
تتوفر هنا معايير AWS لوحدات معالجة الرسومات Nvidia لـ Dorado 0.3.0. يرجى ملاحظة: أن سرعة الاتصال الأساسي في Dorado تتحسن باستمرار، لذلك قد لا تعكس هذه المعايير الأداء مع الإصدار الأخير.
للحصول على الأداء الأمثل، يتطلب Dorado إدخال ملف POD5. يرجى تحويل ملفات .fast5 الخاصة بك قبل الاتصال الأساسي.
سيكتشف Dorado تلقائيًا الذاكرة الخالية لوحدة معالجة الرسومات لديك ويحدد حجم الدفعة المناسب.
سيتم تشغيل Dorado تلقائيًا في وضع cuda:all
. إذا كان لديك مجموعة غير متجانسة من وحدات معالجة الرسومات، فحدد وحدات معالجة الرسومات الأسرع باستخدام علامة --device
(على سبيل المثال --device cuda:0,2
). عدم القيام بذلك سيكون له تأثير ضار على الأداء.
فيما يلي أوامر مفيدة لبدء استخدام Dorado. لرؤية كافة الخيارات وافتراضياتها، قم بتشغيل dorado -h
و dorado <subcommand> -h
.
يستطيع Dorado تحديد نموذج الاتصال الأساسي تلقائيًا باستخدام مجموعة مختارة من سرعة النموذج ( fast
، hac
، sup
) وبيانات pod5. هذه الميزة غير مدعومة لبيانات fast5. إذا لم يكن النموذج موجودًا محليًا، فسيقوم Dorado تلقائيًا بتنزيل النموذج واستخدامه.
يستمر دورادو في دعم المسارات النموذجية.
لمزيد من التفاصيل، اقرأ مجمع الاختيار التلقائي للنموذج.
لتشغيل Dorado Basecalling، استخدم نموذج hac
الذي تم تنزيله تلقائيًا على دليل ملفات POD5 أو ملف POD5 واحد (ملفات .fast5 مدعومة، ولكنها لن تكون بنفس الأداء) .
$ dorado basecaller hac pod5s/ > calls.bam
لاستدعاء ملف واحد، ما عليك سوى استبدال الدليل pod5s/
بمسار إلى ملف البيانات الخاص بك.
إذا تمت مقاطعة الاتصال الأساسي، فمن الممكن استئناف الاتصال الأساسي من ملف BAM. للقيام بذلك، استخدم العلامة --resume-from
لتحديد المسار إلى ملف BAM غير الكامل. على سبيل المثال:
$ dorado basecaller hac pod5s/ --resume-from incomplete.bam > calls.bam
سوف يحتوي calls.bam
على جميع القراءات من incomplete.bam
بالإضافة إلى الاستدعاءات الأساسية الجديدة (يمكن تجاهل incomplete.bam
بعد اكتمال الاستدعاء الأساسي) .
ملاحظة: من المهم اختيار اسم ملف مختلف لملف BAM الذي تكتب إليه عند استخدام --resume-from
. إذا كنت تستخدم نفس اسم الملف، فسيفقد ملف BAM الذي تمت مقاطعته الاستدعاءات الأساسية الموجودة وستتم إعادة تشغيل الاستدعاء الأساسي من البداية.
يستطيع Dorado اكتشاف وإزالة أي محول و/أو تسلسلات تمهيدية من بداية ونهاية قراءات الحمض النووي. لاحظ أنه إذا كنت تنوي إزالة تعدد تعدد عمليات القراءة في وقت لاحق، فقد يؤدي قطع المحولات والبادئات إلى إزالة بعض أجزاء المناطق المحيطة بالرموز الشريطية، مما قد يتداخل مع عملية إزالة تعدد الإرسال الصحيحة.
افتراضيًا، سيحاول dorado basecaller
اكتشاف أي محول أو تسلسلات أولية في بداية ونهاية القراءات، وإزالتها من تسلسل الإخراج.
يمكن تغيير هذه الوظيفة باستخدام خيارات --trim
أو --no-trim
مع dorado basecaller
. سيمنع خيار --no-trim
اقتطاع تسلسلات الباركود المكتشفة بالإضافة إلى اكتشاف وتشذيب تسلسلات المحول والتمهيد.
يأخذ الخيار --trim
إحدى القيم التالية كوسيطة له:
all
هذا هو نفس السلوك الافتراضي. سيتم قطع أي محولات أو بادئات تم اكتشافها، وإذا تم تمكين الرمز الشريطي، فسيتم قطع أي رموز شريطية تم اكتشافها.
سيؤدي primers
إلى اقتطاع أي محولات أو بادئات تم اكتشافها، ولكن إذا تم تمكين التشفير الشريطي، فلن يتم اقتطاع تسلسلات الرمز الشريطي.
adapters
سيؤدي هذا إلى اقتطاع أي محولات تم اكتشافها، ولكن لن يتم اقتطاع البادئات، وإذا تم تمكين التشفير الشريطي، فلن يتم اقتطاع الرموز الشريطية أيضًا.
none
هذا هو نفس استخدام خيار --no-trim. لن يتم قطع أي شيء.
إذا تم إجراء تشذيب المحول/التمهيد بشكل يتماشى مع الاتصال الأساسي بالاشتراك مع إزالة تعدد الإرسال، فسيضمن البرنامج تلقائيًا أن تشذيب المحولات والبادئات لا يتداخل مع عملية إزالة تعدد الإرسال. ومع ذلك، إذا كنت تنوي القيام بإلغاء تعدد الإرسال لاحقًا كخطوة منفصلة، فمن المستحسن أن تقوم بتعطيل قطع المحول/التمهيدي عند الاتصال الأساسي باستخدام خيار --no-trim
، لضمان بقاء أي تسلسلات باركود سليمة تمامًا في القراءات.
يمكن فحص مجموعات البيانات الأساسية الموجودة بحثًا عن تسلسلات المحول و/أو التمهيدي في أي من الطرفين، وتقليم أي تسلسلات تم العثور عليها. للقيام بذلك، قم بتشغيل:
$ dorado trim <reads> > trimmed.bam
يمكن أن يكون <reads>
إما ملف بتنسيق HTS (مثل FASTQ، أو BAM، وما إلى ذلك) أو دفق من تنسيق HTS (مثل مخرجات Dorado Basecalling).
يمكن استخدام خيار --no-trim-primers
لمنع قطع تسلسلات التمهيدي. في هذه الحالة سيتم اقتطاع تسلسلات المحول فقط.
إذا كنت تنوي أيضًا إزالة تعدد إرسال البيانات، فمن المستحسن أن تقوم بإلغاء تعدد الإرسال قبل قطع أي محولات ومواد أولية، حيث أن قطع المحولات والبادئات أولاً قد يتداخل مع التصنيف الصحيح للرمز الشريطي.
سيكون إخراج dorado trim
دائمًا عبارة عن سجلات غير محاذاة، بغض النظر عما إذا كان الإدخال محاذاة/مفرزًا أم لا.
يبحث البرنامج تلقائيًا عن تسلسلات التمهيدي المستخدمة في مجموعات Oxford Nanopore. ومع ذلك، يمكنك تحديد مجموعة بديلة من التسلسلات التمهيدية للبحث عنها عند التشذيب إما بالتوافق مع الاستدعاء الأساسي، أو بالاشتراك مع خيار --trim
. في كلتا الحالتين، يتم تحقيق ذلك باستخدام خيار سطر الأوامر --primer-sequences
، متبوعًا بالمسار الكامل واسم الملف لملف FASTA الذي يحتوي على التسلسلات التمهيدية التي تريد البحث عنها. لا يهم أسماء السجلات للتسلسلات. لاحظ أنه إذا استخدمت هذا الخيار، فلن يتم البحث عن تسلسلات التمهيدي العادية المضمنة في برنامج دورادو.
يتم قطع محولات مجموعات RNA002 وRNA004 تلقائيًا أثناء الاتصال الأساسي. ومع ذلك، على عكس الحمض النووي، لا يمكن قطع محول الحمض النووي الريبي (RNA) بعد إجراء الاتصال الأساسي.
إلى جانب الاتصال الأساسي التقليدي A وT وC وG، يستطيع Dorado أيضًا اكتشاف القواعد المعدلة مثل 5-ميثيل سيتوزين (5mC)، و5-هيدروكسي ميثيل سيتوزين (5hmC)، وN 6- ميثيل أدينوزين (6 مللي أمبير). تلعب هذه القواعد المعدلة أدوارًا حاسمة في التنظيم اللاجيني.
لاستدعاء التعديلات، قم بتوسيع الوسيطةmodels بقائمة تعديلات مفصولة بفواصل:
$ dorado basecaller hac,5mCG_5hmCG,6mA pod5s/ > calls.bam
في المثال أعلاه، يتم إجراء الاتصال الأساسي من خلال اكتشاف كل من 5mC/5hmC في سياقات CG و6mA في جميع السياقات.
ارجع إلى عمود التعديلات المتوافقة في جدول نماذج الحمض النووي لرؤية التعديلات المتاحة التي يمكن استدعاؤها باستخدام خيار --modified-bases
.
يتم أيضًا دعم الاتصال الأساسي المعدل من خلال الاتصال الأساسي المزدوج، حيث ينتج مكالمات مثيلة نصفية.
لتشغيل الاتصال الأساسي على الوجهين، قم بتشغيل الأمر:
$ dorado duplex sup pod5s/ > duplex.bam
عند استخدام أمر duplex
، سيتم إنتاج نوعين من نتائج تسلسل الحمض النووي: "البسيط" و"المزدوج". أي موضع محدد في الحمض النووي يكون في قراءة مزدوجة يمكن رؤيته أيضًا في شريطين بسيطين (القالب والمكمل). لذلك، سيتم تغطية كل موضع DNA يتم تسلسله على الوجهين بما لا يقل عن ثلاث قراءات منفصلة في الإخراج.
يمكن استخدام علامة dx
الموجودة في سجل BAM لكل قراءة للتمييز بين القراءات البسيطة والمزدوجة:
dx:i:1
للقراءة على الوجهين.
dx:i:0
للقراءات البسيطة التي لا تحتوي على ذرية مزدوجة.
dx:i:-1
للقراءات البسيطة التي لها ذرية مزدوجة.
سوف يقوم دورادو بالإبلاغ عن معدل الازدواج باعتباره عدد النيوكليوتيدات في المكالمات الأساسية المزدوجة مضروبًا في اثنين ومقسومًا على إجمالي عدد النيوكليوتيدات في المكالمات الأساسية البسيطة. هذه القيمة عبارة عن تقدير تقريبي لنسبة النيوكليوتيدات التي شاركت في الاتصال الأساسي المزدوج.
يمكن إجراء الاتصال الأساسي المزدوج باستخدام الكشف الأساسي المعدل، مما يؤدي إلى إنتاج مكالمات مثيلة نصفية للقراءات المزدوجة:
$ dorado duplex hac,5mCG_5hmCG pod5s/ > duplex.bam
يمكن العثور على مزيد من المعلومات حول كيفية تمثيل مكالمات مثيلة الهيمي في الصفحة 7 من مستند مواصفات SAM (الإصدار aa7440d) ووثائق Modkit.
يدعم Dorado محاذاة المكالمات الأساسية الموجودة أو إنتاج مخرجات محاذية مباشرة.
لمحاذاة المكالمات الأساسية الموجودة، قم بتشغيل:
$ dorado aligner <index> <reads> > aligned.bam
حيث يكون index
مرجعًا للمحاذاة بتنسيق (FASTQ/FASTA/.mmi) reads
عبارة عن مجلد أو ملف بأي تنسيق HTS.
عند القراءة من مجلد الإدخال، يدعم dorado aligner
أيضًا إرسال الملفات المحاذاة إلى مجلد الإخراج، مما سيحافظ على بنية ملف المدخلات:
$ dorado aligner <index> <input_read_folder> --output-dir <output_read_folder>
يمكن إنشاء ملخص محاذاة يحتوي على إحصائيات المحاذاة لكل قراءة باستخدام خيار --emit-summary
. سيتم حفظ الملف في المجلد --output-dir
.
لإجراء اتصال أساسي مع المحاذاة مع الطباعة المزدوجة أو البسيطة، قم بتشغيل الخيار --reference
:
$ dorado basecaller <model> <reads> --reference <index> > calls.bam
تستخدم المحاذاة minimap2 وتستخدم بشكل افتراضي الإعداد المسبق lr:hq
. يمكن تجاوز ذلك عن طريق تمرير سلسلة خيار الخريطة المصغرة، --mm2-opts
، باستخدام الخيار '-x' و/أو الخيارات الفردية مثل -k
و -w
لتعيين حجم الكيلومتر وحجم النافذة على التوالي. للحصول على قائمة كاملة بخيارات minimap2 المدعومة، استخدم "--mm2-opts --help". على سبيل المثال:
$ dorado aligner <index> <input_read_folder> --output-dir <output_read_folder> --mm2-opt "-x splice --junc-bed <annotations_file>" $ dorado aligner <index> <input_read_folder> --output-dir <output_read_folder> --mm2-opt --help $ dorado basecaller <model> <reads> --reference <index> --mm2-opt "-k 15 -w 10" > calls.bam
يقوم أمر dorado summary
بإخراج ملف مفصول بعلامات جدولة يحتوي على معلومات تسلسل مستوى القراءة من ملف BAM الذي تم إنشاؤه أثناء الاتصال الأساسي. لإنشاء ملخص، قم بتشغيل:
$ dorado summary <bam> > summary.tsv
لاحظ أن إنشاء الملخص متاح فقط للقراءات التي يتم استدعاؤها من ملفات POD5. القراءات الأساسية التي يتم استدعاؤها من ملفات .fast5 غير متوافقة مع أمر التلخيص.
يدعم Dorado تصنيف الباركود للمكالمات الأساسية الموجودة بالإضافة إلى إنتاج مكالمات أساسية مصنفة مباشرة.
في هذا الوضع، يتم تصنيف القراءات إلى مجموعات الباركود الخاصة بها أثناء الاتصال الأساسي كجزء من نفس الأمر. لتمكين هذا، قم بتشغيل:
$ dorado basecaller <model> <reads> --kit-name <barcode-kit-name> > calls.bam
سيؤدي هذا إلى دفق إخراج واحد مع قراءات مصنفة. سينعكس التصنيف في اسم مجموعة القراءة وكذلك في علامة BC
لسجل الإخراج.
بشكل افتراضي، تم إعداد Dorado لقص الباركود من القراءات. لتعطيل الاقتطاع، قم بإضافة --no-trim
إلى سطر الأوامر cmdline.
إن الاستدلال الافتراضي للرموز الشريطية ذات النهايات المزدوجة هو البحث عنها على طرفي القراءة. يؤدي هذا إلى معدل تصنيف أعلى ولكن يمكن أن يؤدي أيضًا إلى عدد إيجابي كاذب أعلى. لمعالجة هذه المشكلة، يوفر dorado basecaller
أيضًا خيار --barcode-both-ends
لفرض اكتشاف الرموز الشريطية ذات النهاية المزدوجة على كلا الطرفين قبل التصنيف. سيؤدي هذا إلى تقليل النتائج الإيجابية الكاذبة بشكل كبير، ولكنه سيؤدي أيضًا إلى خفض معدلات التصنيف الإجمالية.
يمكن إزالة تعدد إرسال الإخراج من dorado basecaller
إلى BAMs لكل رمز شريطي باستخدام dorado demux
. على سبيل المثال
$ dorado demux --output-dir <output-dir> --no-classify <input-bam>
سيؤدي هذا إلى إخراج ملف BAM لكل باركود في output-dir
.
تنعكس معلومات الرمز الشريطي في رأس BAM RG
أيضًا. لذلك فإن إزالة تعدد الإرسال ممكنة أيضًا من خلال samtools split
. على سبيل المثال
$ samtools split -u <output-dir>/unclassified.bam -f "<output-dir>/<prefix>_%!.bam" <input-bam>
ومع ذلك، يستخدم samtools split
سلسلة RG
الكاملة كلاحقة لاسم الملف، مما قد يؤدي إلى أسماء ملفات طويلة جدًا. نوصي باستخدام dorado demux
لتقسيم BAMs المرمزة بالباركود.
يمكن تصنيف مجموعات البيانات الأساسية الموجودة بالإضافة إلى إزالة تعدد الإرسال في BAMs لكل رمز شريطي باستخدام أمر demux
المستقل في dorado
. لاستخدام هذا، تشغيل
$ dorado demux --kit-name <kit-name> --output-dir <output-folder-for-demuxed-bams> <reads>
<reads>
يمكن أن يكون إما مجلدًا أو ملفًا واحدًا في ملف بتنسيق HTS (مثل FASTQ، وBAM، وما إلى ذلك) أو دفق بتنسيق HTS (على سبيل المثال، مخرجات الاتصال الأساسي لـ Dorado).
يؤدي هذا إلى إنشاء ملفات BAM متعددة في مجلد الإخراج، واحد لكل باركود (منسق كـ KITNAME_BARCODEXX.bam
) وواحد لجميع القراءات غير المصنفة. كما هو الحال مع الوضع المضمن، يتوفر أيضًا --no-trim
و-- --barcode-both-ends
كخيارات إضافية.
إذا تمت محاذاة/فرز ملف الإدخال وتم اختيار --no-trim
، فسيتم أيضًا فرز وفهرسة كل ملف من ملفات BAM الخاصة بالرمز الشريطي الناتج. ومع ذلك، إذا تم تمكين الاقتصاص (وهو الإعداد الافتراضي)، فستتم إزالة معلومات المحاذاة ولا تتم محاذاة وحدات BAM للمخرجات. يتم ذلك لأنه يتم إبطال علامات المحاذاة والمواضع بمجرد تغيير التسلسل.
فيما يلي مثال لمجلد الإخراج
$ dorado demux --kit-name SQK-RPB004 --output-dir /tmp/demux reads.fastq $ ls -1 /tmp/demux SQK-RPB004_barcode01.bam SQK-RPB004_barcode02.bam SQK-RPB004_barcode03.bam ... unclassified.bam
يمكن إنشاء ملف ملخص يسرد كل قراءة والرمز الشريطي المصنف الخاص بها باستخدام خيار --emit-summary
في dorado demux
. سيتم حفظ الملف في المجلد --output-dir
.
إذا كانت ملفات بيانات الإدخال تحتوي على بيانات تعيين، فيمكن الاحتفاظ بهذه المعلومات في ملفات الإخراج. للقيام بذلك، يجب عليك استخدام خيار --no-trim
. سيؤدي قطع الرموز الشريطية إلى إبطال أي معلومات تعيين قد تكون موجودة في ملفات الإدخال، وبالتالي سيستبعد التطبيق أي معلومات تعيين إذا لم يتم تحديد --no-trim
.
من الممكن أيضًا الحصول على dorado demux
لفرز وفهرسة أي ملفات إخراج bam تحتوي على قراءات معينة. لتمكين هذا، استخدم خيار --sort-bam
. إذا كنت تستخدم هذا الخيار، فيجب عليك أيضًا استخدام خيار --no-trim
، حيث أن الاقتطاع سيمنع تضمين أي معلومات تعيين في ملفات الإخراج. سيتم إنشاء ملفات الفهرس (امتداد .bai) فقط لملفات BAM التي تحتوي على قراءات معينة وتم فرزها. لاحظ أنه بالنسبة لمجموعات البيانات الكبيرة، قد يستغرق فرز ملفات الإخراج بضع دقائق.
يستطيع Dorado استخدام ورقة عينة لتقييد تصنيفات الباركود على الموجودين فقط، ولتطبيق الأسماء المستعارة على التصنيفات المكتشفة. يتم تمكين ذلك عن طريق تمرير المسار إلى نموذج ورقة إلى الوسيطة --sample-sheet
عند استخدام أوامر basecaller
أو demux
. انظر هنا لمزيد من المعلومات.
بالإضافة إلى دعم مجموعات الباركود القياسية من Oxford Nanopore، يدعم Dorado أيضًا تحديد ترتيبات وتسلسلات مجموعة الباركود المخصصة. يتم ذلك عن طريق تمرير ملف ترتيب الرمز الشريطي عبر وسيطة --barcode-arrangement
(إما إلى dorado demux
أو dorado basecaller
). يمكن تحديد تسلسلات الباركود المخصصة بشكل اختياري عبر خيار --barcode-sequences
. انظر هنا لمزيد من التفاصيل.
لدى Dorado دعم أولي لتقدير أطوال ذيل poly(A) لـ cDNA (PCS وPCB) وRNA. لاحظ أن قراءات [كدنا] Oxford Nanopore يتم تسلسلها في اتجاهين مختلفين وأن تقدير طول الذيل Dorado poly(A) يعالج كلا من (البوليمرات المتجانسة A و T). يمكن تفعيل هذه الميزة عن طريق تمرير --estimate-poly-a
إلى أمر basecaller
. يتم تعطيله بشكل افتراضي. يتم تخزين طول الذيل المقدر في pt:i
لسجل الإخراج. القراءات التي لا يمكن تقدير طول الذيل لها لن تحتوي على علامة pt:i
. يمكن تكوين تسلسلات التمهيدي المخصصة وتقدير الأطراف المتقطعة من خلال خيار --poly-a-config
. انظر هنا لمزيد من التفاصيل.
يدعم Dorado تصحيح أخطاء القراءة المفردة من خلال تكامل خوارزمية HERRO. يستخدم HERRO محاذاة الكل مقابل الكل متبوعة بتصحيح مدرك للنمط الفرداني باستخدام نموذج التعلم العميق لتحقيق دقة أعلى في القراءة الفردية. القراءات المصححة مفيدة في المقام الأول لتوليد تجميعات دي نوفو للكائنات ثنائية الصيغة الصبغية.
لتصحيح القراءات، قم بتشغيل:
$ dorado correct reads.fastq > corrected_reads.fasta
يدعم Dorado الصحيح فقط FASTQ(.gz) كمدخل ويقوم بإنشاء ملف FASTA كمخرج. يمكن أن يكون الإدخال غير مضغوط أو مضغوطًا باستخدام bgz
. يتم إنشاء ملف فهرس لملف FASTQ للإدخال في نفس المجلد ما لم يكن هناك ملف موجود بالفعل. يرجى التأكد من أن المجلد الذي يحتوي على ملف الإدخال قابل للكتابة من خلال عملية dorado
ويحتوي على مساحة كافية على القرص.
أداة تصحيح الأخطاء كثيفة الاستخدام للحوسبة والذاكرة. ونتيجة لذلك، من الأفضل تشغيله على نظام يحتوي على العديد من مراكز وحدة المعالجة المركزية عالية الأداء (>= 64 مركزًا)، وذاكرة نظام كبيرة (>= 256 جيجابايت) ووحدة معالجة رسومات حديثة مزودة بذاكرة فيديو كبيرة (>= 32 جيجابايت).
يتم تنزيل جميع أوزان النماذج المطلوبة تلقائيًا بواسطة Dorado. ومع ذلك، يمكن أيضًا تنزيل الأوزان مسبقًا وتمريرها عبر سطر الأوامر في حالة التنفيذ دون اتصال بالإنترنت. للقيام بذلك، قم بتشغيل:
$ dorado download --model herro-v1 $ dorado correct -m herro-v1 reads.fastq > corrected_reads.fasta
يوفر Dorado Correct الآن أيضًا ميزة لتشغيل التعيين (مرحلة وحدة المعالجة المركزية فقط) والاستدلال (مرحلة وحدة معالجة الرسومات المكثفة) بشكل فردي. يتيح ذلك فصل المراحل الثقيلة لوحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) في خطوات فردية يمكن تشغيلها حتى على عقد مختلفة ذات خصائص حسابية مناسبة. مثال:
$ dorado correct reads.fastq --to-paf > overlaps.paf $ dorado correct reads.fastq --from-paf overlaps.paf > corrected_reads.fasta
Gzipped PAF غير مدعوم حاليًا للخيار --from-paf
.
بالإضافة إلى ذلك، إذا تم إيقاف التشغيل أو فشله، يوفر Dorado Correct وظيفة "الاستئناف". تأخذ ميزة السيرة الذاتية قائمة بالقراءات التي تم تصحيحها مسبقًا (على سبيل المثال، فهرس .fai
من التشغيل السابق) وتتخطى القراءات التي تمت معالجتها مسبقًا:
$ samtools faidx corrected_reads.1.fasta # Output from the previously interrupted run. $ dorado correct reads.fastq --resume-from corrected_reads.1.fasta.fai > corrected_reads.2.fasta
يمكن أن يكون تنسيق ملف الإدخال لميزة --resume-from
هو أي ملف نصي عادي حيث يتكون العمود الأول المحدد بمسافة بيضاء (أو صف كامل) من أسماء تسلسلية لتخطيها، واحد لكل صف.
إذا كانت العملية تستهلك الكثير من ذاكرة نظامك، فحاول تشغيلها بحجم فهرس أصغر. على سبيل المثال:
$ dorado correct reads.fastq --index-size 4G > corrected_reads.fasta
قد يظل حجم دفعة الاستدلال المحسوبة تلقائيًا مرتفعًا جدًا بالنسبة لنظامك. إذا كنت تواجه تحذيرات/أخطاء فيما يتعلق بذاكرة وحدة معالجة الرسومات المتاحة، فحاول تقليل حجم الدفعة / تحديدها يدويًا. على سبيل المثال:
$ dorado correct reads.fastq --batch-size <number> > corrected_reads.fasta
في حالة احتواء ملف الإخراج FASTA على كمية منخفضة جدًا من القراءات المصححة مقارنة بالإدخال، يرجى التحقق مما يلي:
تحتوي مجموعة بيانات الإدخال على متوسط طول قراءة >=10kbp
. تم تصميم Dorado Correct للقراءات الطويلة، ولن يعمل مع المكتبات القصيرة.
تغطية الإدخال معقولة، ويفضل >=30x
.
تحقق من متوسط الصفات الأساسية لمجموعة البيانات المدخلة. تتوقع Dorado Correct مدخلات دقيقة لكل من رسم الخرائط والاستدلال.
لتنزيل كافة موديلات Dorado المتاحة، قم بتشغيل:
$ dorado download --model all
تم تنظيم أسماء نماذج Dorado بشكل منهجي، حيث يتوافق كل جزء مع جانب مختلف من النموذج، والذي يتضمن إعدادات الكيمياء والتشغيل. فيما يلي شرح لاسم النموذج النموذجي:
نوع التحليل ( dna
) : يشير هذا إلى نوع التحليل الذي يتم تسلسله. بالنسبة لتسلسل الحمض النووي، يتم تمثيله بالـ dna
. إذا كنت تستخدم مجموعة أدوات تسلسل الحمض النووي الريبي المباشر، فسيكون هذا rna002
أو rna004
، اعتمادًا على المجموعة.
نوع المسام ( r10.4.1
) : يتوافق هذا القسم مع نوع خلية التدفق المستخدمة. على سبيل المثال، تتم الإشارة إلى FLO-MIN114/FLO-FLG114 بواسطة r10.4.1
، بينما تتم الإشارة إلى FLO-MIN106D/FLO-FLG001 بواسطة r9.4.1
.
نوع الكيمياء ( e8.2
) : يمثل نوع الكيمياء الذي يتوافق مع المجموعة المستخدمة في التسلسل. على سبيل المثال، يُشار إلى المجموعة 14 في الكيمياء بالرمز e8.2
وتُشار إلى المجموعة 10 أو المجموعة 9 بالرمز e8
.
سرعة النقل ( 400bps
) : تشير هذه المعلمة، المحددة عند إعداد التشغيل في MinKNOW، إلى سرعة النقل. قبل البدء في الجري، ستظهر لك رسالة تسألك عما إذا كنت تفضل الجري بمعدل 260 نقطة أساس أو 400 نقطة أساس. الأول يعطي نتائج أكثر دقة ولكنه يوفر بيانات أقل. اعتبارًا من الإصدار 23.04 من MinKNOW، تم إهمال خيار 260 بت في الثانية.
نوع النموذج ( hac
) : يمثل حجم النموذج، حيث تنتج النماذج الأكبر حجمًا بيانات أساسية أكثر دقة ولكنها تستغرق وقتًا أطول. الأنواع الثلاثة من النماذج هي fast
و hac
و sup
. النموذج fast
هو الأسرع، sup
هو الأكثر دقة، ويوفر hac
التوازن بين السرعة والدقة. بالنسبة لمعظم المستخدمين، يوصى بنموذج hac
.
رقم إصدار النموذج ( v5.0.0
) : يشير هذا إلى إصدار النموذج. يتم إصدار تحديثات النموذج بانتظام، وعادةً ما تشير أرقام الإصدارات الأعلى إلى دقة أكبر.
يوجد أدناه جدول لنماذج الاتصال الأساسي المتاحة ونماذج الاتصال الأساسي المعدلة التي يمكن استخدامها معها. النماذج الغامقة مخصصة لأحدث حالة تم إصدارها مع بيانات 5 كيلو هرتز.
يرتبط إصدار نماذج التعديل بنموذج الاتصال الأساسي. وهذا يعني أنه تتم إعادة تعيين إصدار النموذج المعدل لكل إصدار جديد للنموذج البسيط. على سبيل المثال، 6mA@v1
المتوافق مع نماذج الاتصال الأساسي v4.3.0
هو أحدث من 6mA@v2
المتوافق مع نماذج الاتصال الأساسي v4.2.0
.
نماذج الأساس | متناسق التعديلات | التعديلات نموذج إصدار | بيانات أخذ العينات تكرار |
---|---|---|---|
[email protected] | 5 كيلو هرتز | ||
[email protected] | 4mC_5mC 5mCG_5hmCG 5mC_5hmC 6 مللي أمبير | الإصدار 2 الإصدار 2 الإصدار 2 الإصدار 2 | 5 كيلو هرتز |
[email protected] | 4mC_5mC 5mCG_5hmCG 5mC_5hmC 6 مللي أمبير | الإصدار 2 v2.0.1 v2.0.1 الإصدار 2 | 5 كيلو هرتز |
[email protected] | 5 كيلو هرتز | ||
[email protected] | 5mCG_5hmCG 5mC_5hmC 6 مللي أمبير | الإصدار 1 الإصدار 1 الإصدار 2 | 5 كيلو هرتز |
[email protected] | 5mCG_5hmCG 5mC_5hmC 6 مللي أمبير | الإصدار 1 الإصدار 1 الإصدار 2 | 5 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 5 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 5 كيلو هرتز |
[email protected] | 5mCG_5hmCG 5mC_5hmC 5mC 6 مللي أمبير | v3.1 الإصدار 1 الإصدار 2 v3 | 5 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 5mCG | الإصدار 2 | 4 كيلو هرتز |
[email protected] | 4 كيلو هرتز | ||
[email protected] | 5mCG_5hmCG 5mCG | v0 v0.1 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG 5mCG | v0 v0.1 | 4 كيلو هرتز |
[email protected] | 5mCG_5hmCG 5mCG | v0 v0.1 | 4 كيلو هرتز |
ملحوظة: تنسيق BAM لا يدعم قواعد U
لذلك، عندما يقوم Dorado بإجراء استدعاء أساسي للـ RNA، فإن ملفات الإخراج الناتجة ستتضمن T
بدلاً من U
. وهذا متسق عبر أنواع ملفات الإخراج.
نماذج الأساس | متناسق التعديلات | التعديلات نموذج إصدار | بيانات أخذ العينات تكرار |
---|---|---|---|
[email protected] | 4 كيلو هرتز | ||
[email protected] | m5C m6A_DRACH inosine_m6A pseU | الإصدار 1 الإصدار 1 الإصدار 1 الإصدار 1 | 4 كيلو هرتز |
[email protected] | m5C m6A_DRACH inosine_m6A pseU | الإصدار 1 الإصدار 1 الإصدار 1 الإصدار 1 | 4 كيلو هرتز |
[email protected] | 4 كيلو هرتز | ||
[email protected] | m6A m6A_DRACH pseU | الإصدار 1 الإصدار 1 الإصدار 1 | 4 كيلو هرتز |
[email protected] | m6A m6A_DRACH pseU | الإصدار 1 الإصدار 1 الإصدار 1 | 4 كيلو هرتز |
[email protected] | 4 كيلو هرتز | ||
[email protected] | 4 كيلو هرتز | ||
[email protected] | m6A_DRACH | الإصدار 1 | 4 كيلو هرتز |
rna002_70bps_fast@v3 | 3 كيلو هرتز | ||
rna002_70bps_hac@v3 | 3 كيلو هرتز |
يمكن للوسيطة model
في Dorado تحديد مسار النموذج أو مجمع النموذج. يجب أن يبدأ مجمع النماذج بسرعة النموذج البسيط ، ويتبع بناء الجملة التالي:
(fast|hac|sup)[@(version|latest)][,modification[@(version|latest)]][,...]
ستتطابق نماذج التعديل المحددة تلقائيًا دائمًا مع إصدار النموذج البسيط الأساسي وستكون أحدث إصدار متوافق ما لم يتم تعيين إصدار محدد من قبل المستخدم. لن يسمح اختيار نموذج التعديل التلقائي بخلط نماذج التعديل المرتبطة بإصدارات مختلفة من النماذج البسيطة.
فيما يلي بعض الأمثلة على المجمعات النموذجية:
مجمع النموذجي | وصف |
---|---|
سريع | أحدث طراز سريع متوافق |
هاك | أحدث طراز hac متوافق |
رشفة | أحدث طراز سوب متوافق |
هاك @ الأحدث | أحدث نموذج اتصال أساسي متوافق مع hac simplex |
هاك@v4.2.0 | نموذج hac للاستدعاء الأساسي البسيط مع الإصدار v4.2.0 |
هاك@v3.5 | نموذج hac للاستدعاء الأساسي البسيط مع الإصدار v3.5.0 |
هاك،5mCG_5hmCG | أحدث طراز hac simplex المتوافق وأحدث نموذج تعديلات 5mCG_5hmCG لنموذج Basecall المختار |
hac,5mCG_5hmCG@v2 | أحدث طراز hac simplex المتوافق ونموذج تعديلات 5mCG_5hmCG مع الإصدار v2.0.0 |
سوب، 5mCG_5hmCG، 6mA | أحدث طراز متوافق وأحدث نماذج تعديلات 5mCG_5hmCG و 6mA المتوافقة |
بمجرد عثور عملية اختيار النموذج التلقائي على النموذج المناسب في ضوء البيانات المدخلة، فإنها ستبحث عن أدلة النماذج الموجودة لتجنب تنزيل النماذج دون داعٍ. ويمكن التحكم في سلوك هذا البحث على النحو التالي:
ضبط وسيطة --models-directory
CLI - يمكن استخدام وسيطة --models-directory
لتحديد دليل سيتم البحث فيه عن النماذج.
تعيين متغير البيئة DORADO_MODELS_DIRECTORY
- هذا هو نفس الإعداد --models-directory
ولكن له أولوية أقل من مكافئ CLI.
إذا لم يتم تعيين --models-directory
أو DORADO_MODELS_DIRECORY
، فسيتم البحث في دليل العمل الحالي.
إذا تم تعيين --models-directory
أو DORADO_MODELS_DIRECTORY
، فستستمر النماذج التي تم تنزيلها تلقائيًا، وإلا فسيتم تنزيل النماذج في دليل مؤقت محلي وحذفها بعد انتهاء dorado.
يأتي Dorado مجهزًا بالمكتبات اللازمة (مثل CUDA) لتنفيذه. ومع ذلك، في بعض أنظمة التشغيل، قد يتم اختيار مكتبات النظام بدلاً من مكتبات Dorado. يمكن أن يؤدي هذا التناقض إلى أخطاء مختلفة، على سبيل المثال، CuBLAS error 8
.
لحل هذه المشكلة، تحتاج إلى تعيين LD_LIBRARY_PATH
للإشارة إلى مكتبات Dorado. استخدم أمرًا مثل ما يلي على Linux (قم بتغيير المسار حسب الاقتضاء):
$ export LD_LIBRARY_PATH=<PATH_TO_DORADO>/dorado-x.y.z-linux-x64/lib:$LD_LIBRARY_PATH
في نظام التشغيل macOS، سيكون التصدير المكافئ (تغيير المسار حسب الاقتضاء):
$ export DYLD_LIBRARY_PATH=<PATH_TO_DORADO>/dorado-x.y.z-osx-arm64/lib:$DYLD_LIBRARY_PATH
تعد عملية الاتصال الأساسي على الوجهين عملية مكثفة للإدخال والإدخال ويمكن أن يكون أداؤها سيئًا في حالة استخدام وحدة تخزين متصلة بالشبكة أو محرك الأقراص الثابتة. يمكن تحسين ذلك بشكل عام عن طريق تقسيم ملفات POD5 بشكل مناسب.
قم أولاً بتثبيت أدوات POD5 python:
يمكن العثور على وثائق POD5 هنا.
$ pip install pod5
ثم قم بتشغيل pod5 view
لإنشاء جدول يحتوي على معلومات لتقسيمها على وجه التحديد، معلومات "القناة".
$ pod5 view /path/to/your/dataset/ --include "read_id, channel" --output summary.tsv
سيؤدي هذا إلى إنشاء ملف "summary.tsv" والذي يجب أن يبدو بالشكل التالي:
read_id channel 0000173c-bf67-44e7-9a9c-1ad0bc728e74 109 002fde30-9e23-4125-9eae-d112c18a81a7 463 ...
قم الآن بتشغيل pod5 subset
لنسخ السجلات من بيانات المصدر الخاصة بك إلى مخرجات لكل قناة. قد يستغرق هذا بعض الوقت حسب حجم مجموعة البيانات الخاصة بك
$ pod5 subset /path/to/your/dataset/ --summary summary.tsv --columns channel --output split_by_channel
سيقوم الأمر أعلاه بإنشاء دليل الإخراج split_by_channel
ويكتب فيه ملف pod5 واحد لكل قناة فريدة. ستصبح الآن عملية استدعاء قاعدة البيانات المزدوجة لهذه القراءات المقسمة أسرع بكثير.
في حالة تشغيل الاتصال الأساسي المزدوج بطريقة موزعة (على سبيل المثال، على مجموعة SLURM أو Kubernetes)، فمن المهم تقسيم ملفات POD5 كما هو موضح أعلاه. والسبب هو أن الاتصال الأساسي المزدوج يتطلب تجميع القراءات عبر عملية تسلسل كاملة، والتي سيتم توزيعها على ملفات POD5 متعددة. تضمن استراتيجية التقسيم الموضحة أعلاه أن جميع القراءات التي تحتاج إلى تجميعها موجودة في نفس ملف POD5. بمجرد إجراء التقسيم، يمكن تنفيذ مهام متعددة مقابل مجموعات فرعية أصغر من POD5 (على سبيل المثال، مهمة واحدة لكل 100 قناة). سيسمح هذا بتوزيع الاتصال الأساسي عبر العقد الموجودة في المجموعة. سيؤدي هذا إلى إنشاء BAMs متعددة يمكن دمجها. يوفر هذا التطبيق أيضًا بعض المرونة كما لو فشلت أي مهمة، فيمكن إعادة تشغيلها دون الحاجة إلى إعادة تشغيل الاتصال الأساسي مقابل مجموعة البيانات بأكملها.
تعمل Dorado على مجموعة واسعة من وحدات معالجة الرسوميات ولكن تم تطويرها بشكل أساسي لـ Nvidia A100/H100 وApple Silicon. يحاول Dorado العثور على حجم الدفعة الأمثل للاتصال الأساسي. ومع ذلك، في بعض وحدات معالجة الرسوميات ذات ذاكرة الوصول العشوائي المنخفضة، قد يواجه المستخدمون تعطلًا في الذاكرة.
قد يكون الحل المحتمل لهذه المشكلة هو تحديد حجم الدفعة يدويًا باستخدام الأمر التالي:
dorado basecaller --batchsize 64 ...
ملاحظة: لا يُنصح بتقليل استهلاك الذاكرة عن طريق تعديل معلمة chunksize
لأنها تؤثر على نتائج الاتصال الأساسي.
يمكن أن يؤدي الاستخدام المنخفض لوحدة معالجة الرسومات إلى انخفاض سرعة الاتصال الأساسي. يمكن تحديد هذه المشكلة باستخدام أدوات مثل nvidia-smi
و nvtop
. غالبًا ما ينبع الاستخدام المنخفض لوحدة معالجة الرسومات من اختناقات الإدخال/الإخراج في الاتصال الأساسي. فيما يلي بعض الخطوات التي يمكنك اتخاذها لتحسين الوضع:
اختر POD5 بدلاً من .fast5: يتمتع POD5 بأداء إدخال/إخراج فائق وسيعزز سرعة الاتصال الأساسي في بيئات الإدخال/الإخراج المقيدة.
نقل البيانات إلى القرص المحلي قبل الاتصال الأساسي: غالبًا ما يحدث الاتصال الأساسي البطيء لأن أقراص الشبكة لا يمكنها تزويد Dorado بالسرعة الكافية. للتخفيف من ذلك، تأكد من أن بياناتك قريبة من جهازك المضيف قدر الإمكان.
اختر SSD بدلاً من HDD: خاصة بالنسبة للاتصال الأساسي على الوجهين، فإن استخدام SSD محلي يمكن أن يوفر مزايا كبيرة في السرعة. ويرجع ذلك إلى اعتماد خوارزمية الاتصال الأساسي على الوجهين على الوصول العشوائي الكبير للبيانات.
عند التشغيل في PowerShell على نظام التشغيل Windows، يجب توخي الحذر، حيث أن التشفير الافتراضي لمخرجات التطبيق هو عادةً UTF-16LE. سيؤدي هذا إلى تلف الملف إذا تمت إعادة توجيه الإخراج القياسي إلى ملف. يوصى باستخدام الوسيطة --output-dir
لإصدار ملفات BAM إذا كان من الضروري استخدام PowerShell. على سبيل المثال، سيؤدي الأمر التالي إلى إنشاء مخرجات تالفة لا يمكن قراءتها بواسطة samtools:
PS > dorado basecaller <args> > out.bam
بدلا من ذلك، استخدم:
PS > dorado basecaller <args> --output-dir .
بالنسبة لتنسيقات الإخراج المستندة إلى النص (SAM أو FASTQ)، من الممكن تجاوز التشفير على الإخراج باستخدام أمر out-file
. سينتج عن هذا الأمر ملف ascii SAM جيد التكوين:
PS > dorado basecaller <args> --emit-sam | out-file -encoding Ascii out.sam
لاحظ أن out-file
المزود بتشفير Ascii
لن ينتج عنه ملفات BAM جيدة التكوين.
اقرأ المزيد حول ترميز مخرجات Powershell هنا.
(ج) 2024 شركة أكسفورد نانوبور تكنولوجيز بي إل سي.
يتم توزيع Dorado بموجب شروط Oxford Nanopore Technologies PLC. الترخيص العام، الإصدار 1.0. إذا لم يتم توزيع نسخة من الترخيص مع هذا الملف، فيمكنك الحصول على واحدة على http://nanoporetech.com