medaka
هي أداة لإنشاء تسلسل الإجماع والمكالمات المتغيرة من بيانات تسلسل Nanopore. يتم تنفيذ هذه المهمة باستخدام الشبكات العصبية لتطبيق تراكم من قراءات التسلسل الفردي مقابل تسلسل مرجعي ، ومعظمهم من المسودة إما تجميع تجميع أو تسلسل مرجعي لقاعدة البيانات. إنه يوفر نتائج أحدث نتائج تتفوق على الأساليب القائمة على التسلسل والأساليب القائمة على الإشارة ، بينما تكون أسرع أيضًا.
© 2018- Oxford Nanopore Technologies Ltd.
.fasta
أو .fastq
)لإنشاء مسودات التجميعات نوصي Flye.
يمكن تثبيت Medaka في واحدة من عدة طرق.
التثبيت مع PIP
تتوفر الإصدارات الثنائية الرسمية للميداكا على PYPI ويمكن تثبيتها باستخدام PIP:
pip install medaka
على منصات المعاصرة Linux و MacOS ، سيقوم هذا بتثبيت ثنائي مسبق ، على منصات أخرى قد يتم جلب وتجميع توزيع المصدر.
نوصي باستخدام Medaka داخل بيئة افتراضية ، بمعنى:
python3 -m venv medaka
. ./medaka/bin/activate
pip install --upgrade pip
pip install medaka
يتطلب استخدام هذه الطريقة من المستخدم توفير العديد من الثنائيات:
ووضع هذه داخل PATH
. ينصح إصدار samtools/bgzip/tabix
> = 1.14 وإصدار minimap2
> = 2.17 لأن هذه هي تلك المستخدمة في تطوير الميداكا.
يتمتع التثبيت الافتراضي بالقدرة على التشغيل على وحدة معالجة الرسومات (انظر باستخدام GPU أدناه) ، أو على وحدة المعالجة المركزية. إذا كنت تستخدم medaka
حصريًا على وحدة المعالجة المركزية ، ولا تحتاج إلى القدرة على التشغيل على GPU ، فقد ترغب في تثبيت إصدار وحدة المعالجة المركزية فقط مع:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
التثبيت مع كوندا
لا يتم دعم حزم Bioconda Medaka بواسطة تقنيات Oxford Nanopore.
بالنسبة لأولئك الذين يفضلون مدير حزمة كوندا ، يتوفر Medaka عبر قناة Anaconda.org:
conda create -n medaka -c conda-forge -c nanoporetech -c bioconda medaka
ستعمل عمليات التثبيت باستخدام هذه الطريقة على تجميع الأدوات الإضافية المطلوبة لتشغيل سير عمل تصحيح من طرف إلى طرف.
التثبيت من المصدر
هذه الطريقة مفيدة فقط عندما تفشل الأساليب المذكورة أعلاه ، حيث ستساعد في بناء تبعيات مختلفة. من غير المحتمل أن يكون مطورونا قادرين على تقديم مزيد من المساعدة في ظروفك المحددة إذا قمت بتثبيت باستخدام هذه الطريقة.
يمكن تثبيت Medaka من مصدرها بسهولة تامة على معظم الأنظمة.
قبل تثبيت Medaka ، قد يكون هناك حاجة لتثبيت بعض المكتبات المسبقة ، والتي تم تثبيتها بشكل أفضل بواسطة مدير الحزمة. على أطروحات Ubuntu هي:
bzip2 g++ zlib1g-dev libbz2-dev liblzma-dev libffi-dev libncurses5-dev libcurl4-gnutls-dev libssl-dev curl make cmake wget python3-all-dev python-virtualenv
بالإضافة إلى ذلك ، يجب تثبيت وإعداد GIT LFS قبل استنساخ المستودع.
يتم توفير Makefile لجلب وتجميع وتثبيت جميع التبعيات المباشرة في بيئة افتراضية Python. لإعداد البيئة تشغيل:
# Note: certain files are stored in git-lfs, https://git-lfs.github.com/,
# which must therefore be installed first.
git clone https://github.com/nanoporetech/medaka.git
cd medaka
make install
. ./venv/bin/activate
باستخدام هذه الطريقة ، تم تصميم كل من samtools
و minimap2
من المصدر ولا يلزم توفيره من قبل المستخدم.
عند البناء من المصدر ، لتثبيت إصدار وحدة المعالجة المركزية فقط دون القدرة على التشغيل على GPU ، قم بتعديل ما سبق إلى:
MEDAKA_CPU=1 make install
باستخدام وحدة معالجة الرسومات
منذ الإصدار 2.0 medaka
يستخدم Pytorch. الإصدارات السابقة (v1.x) تستخدم TensorFlow.
يمكن للإصدار الافتراضي من Pytorch مثبتًا عند الإنشاء من المصدر أو عند التثبيت من خلال pip
الاستفادة الفورية ل GPU عبر NVIDIA CUDA. ومع ذلك ، لاحظ أن حزمة torch
يتم تجميعها مقابل إصدارات محددة من مكتبات CUDA و CUDNN ؛ يتم توجيه المستخدمين إلى صفحات تثبيت الشعلة لمزيد من المعلومات. يمكن الحصول على Cudnn من أرشيف Cudnn ، بينما Cuda من أرشيف مجموعة أدوات CUDA.
التثبيت مع كوندا مختلف قليلا. انظر [Conda-forge] https://conda-forge.org/docs/user/tipsandtricks/#installing-cuda-enbappated-packages-like-tensorflow-and-pytorch). باختصار ، يجب أن تفعل حزمة Conda شيئًا مخصصًا للكمبيوتر الذي يتم تثبيته عليه.
كما هو موضح أعلاه ، إذا كانت القدرة على التشغيل على وحدة معالجة الرسومات غير مطلوبة ، فيمكن تثبيت medaka-cpu
مع إصدار CPU فقط من Pytorch الذي لا يعتمد على مكتبات CUDA ، على النحو التالي:
pip install medaka-cpu --extra-index-url https://download.pytorch.org/whl/cpu
في حالة استخدام الحزم المسبقة ، أو
MEDAKA_CPU=1 make install
إذا بناء من المصدر.
ملاحظات استخدام GPU
اعتمادًا على وحدة معالجة الرسومات الخاصة بك ، قد تظهر medaka
من أخطاء الذاكرة عند التشغيل. لتجنب هذه ، يمكن تقليل حجم دفعة الاستدلال من القيمة الافتراضية عن طريق تعيين خيار -b
عند تشغيل medaka_consensus
. القيمة -b 100
مناسبة لوحد وحدات معالجة الرسومات 11 جيجا بايت.
يمكن تشغيل medaka
باستخدام إعداداتها الافتراضية من خلال برنامج medaka_consensus
. هناك حاجة إلى تجميع في تنسيق .fasta
و baseCalls في .fasta
أو .fastq
. يستخدم البرنامج كل من samtools
و minimap2
. إذا تم تثبيت Medaka باستخدام طريقة من المصدر ، فستكون هذه موجودة في بيئة Medaka ، وإلا فستحتاج إلى توفيرها من قبل المستخدم.
source ${MEDAKA} # i.e. medaka/venv/bin/activate
NPROC=$(nproc)
BASECALLS=basecalls.fa
DRAFT=draft_assm/assm_final.fa
OUTDIR=medaka_consensus
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC}
يجب تعيين المتغيرات BASECALLS
، DRAFT
، OUTDIR
في ما سبق بشكل مناسب. يحدد خيار -t
عدد مؤشرات ترابط وحدة المعالجة المركزية.
عند الانتهاء من تشغيل medaka_consensus
، سيتم حفظ الإجماع على ${OUTDIR}/consensus.fasta
.
استدعاء المتغير هبلويد
يتم تمكين الدعوة المتغيرة لعينات هابلويد من خلال سير العمل medaka_variant
:
medaka_variant -i <reads.fastq> -r <ref.fasta>
الأمر الذي يتطلب القراءات كـ .fasta
أو .fastq
وتسلسل مرجعي كملف .fasta
.
استدعاء متغير ثنائي الصبغة
تم تجاوز سير عمل استدعاء متغير Diploid الذي تم تنفيذه تاريخيا في حزمة Medaka في الدقة وحساب الأداء بطرق أخرى ، وبالتالي تم إهماله. توصيتنا الحالية لأداء هذه المهمة هي استخدام CLAIR3 إما مباشرة أو من خلال تقنيات Oxford Nanopore التي توفر تطبيق NextFlow المتاح من خلال مختبرات EPI2ME.
للحصول على أفضل النتائج ، من المهم تحديد نموذج الاستدلال الصحيح ، وفقًا لـ BaseCaller المستخدم. يمكن العثور على القيم المسموح بها عن طريق تشغيل medaka tools list_models
.
pasecallers الحديثة
إصدارات Basecaller الحديثة تشرح إنتاجها مع إصدار النموذج الخاص بهم. في مثل هذه الحالات ، يمكن لـ Medaka فحص الملفات ومحاولة تحديد نموذج مناسب لنفسه. هذا عادة ما يعمل بشكل أفضل في حالة إخراج BAM من Basecallers. سيعمل أيضًا لإدخال FastQ بشرط أن يتم إنشاء FastQ من إخراج Basecaller باستخدام:
samtools fastq -T '*' dorado.bam | gzip -c > dorado.fastq.gz
سيحاول medaka inference
تحديد النموذج الصحيح تلقائيًا عن طريق فحص ملف إدخال BAM الخاص به. ستقوم برنامج Helper Scripts medaka_consensus
و medaka_variant
بتجريز محاولات مماثلة من مدخلات FastQ الخاصة بهم.
لفحص الملفات بنفسك ، الأمر:
medaka tools resolve_model --auto_model <consensus/variant> <input.bam/input.fastq>
سيقوم بطباعة النموذج الذي سيستخدمه اختيار النموذج التلقائي.
تسلسل البكتيريا والبلازميد
بالنسبة للبيانات الأصلية ذات التعديلات البكتيرية ، مثل العزلات البكتيرية ، أو العينات الميتاجينوم ، أو البلازميدات المعبر عنها في البكتيريا ، هناك نموذج بحث يوضح دقة إجماع محسنة. هذا النموذج متوافق مع العديد من إصدارات BaseCaller للكيمياء R10. عن طريق إضافة العلم --bacteria
، سيتم تحديد النموذج البكتيري إذا كان متوافقًا مع أدوات الإدخال:
medaka_consensus -i ${BASECALLS} -d ${DRAFT} -o ${OUTDIR} -t ${NPROC} --bacteria
سيتم استخدام النموذج الافتراضي القديم إذا كان النموذج البكتيري غير متوافق مع ملفات الإدخال. يمكن تأكيد اختيار النموذج عن طريق التشغيل:
medaka tools resolve_model --auto_model consensus_bacteria <input.bam/input.fastq>
الذي سيعرض النموذج r1041_e82_400bps_bacterial_methylation
إذا كان متوافقًا أو اسم الطراز الافتراضي على خلاف ذلك.
عندما يكون الاختيار التلقائي غير ناجح ، وكبار السن
إذا كان اسم نموذج Basecaller المستخدم معروفًا ، ولكن فقد تم فقده من ملفات الإدخال ، يمكن توفير نموذج Basecaller إلى Medaka مباشرة. ومع ذلك ، يجب إلحاق إما :consensus
أو :variant
وفقًا لما إذا كان المستخدم يرغب في استخدام الإجماع أو نموذج الاتصال المتغير. على سبيل المثال:
medaka inference input.bam output.hdf
--model [email protected]:variant
ستستخدم نموذج الاتصال المتغير Medaka المناسب للاستخدام مع نموذج Basecaller المسمى [email protected]
.
اتبعت نماذج Medaka تاريخيا تسمية تصف كل من الإصدارات الكيميائية والطاقة. يتم الآن إهمال هذه النماذج القديمة ، ويتم تشجيع المستخدمين على إعادة صياغة بياناتهم من خلال إصدار أكثر حداثة قبل استخدام Medaka.
يعد برنامج medaka_consensus
مفيدًا لمجموعات البيانات البسيطة ولكن ربما ليس الأمثل لتشغيل مجموعات البيانات الكبيرة على نطاق واسع. يمكن تحقيق مستوى أعلى من التوازي عن طريق تشغيل خطوات مكون من medaka_consensus
بشكل مستقل. ينفذ البرنامج ثلاث مهام:
mini_align
وهو حجاب رفيع على minimap2
)medaka inference
)medaka sequence
) الخطوات الثلاث منفصلة ، ويمكن تقسيمها وتشغيلها بشكل مستقل. في معظم الحالات ، الخطوة 2. هي عنق الزجاجة ويمكن موازاةها بشكل تافه. يمكن توفير برنامج medaka consensus
--regions
شأنها أن تقيد عملها على تسلسل تجميع معين من إخراج ملف .bam
في الخطوة 1. وبالتالي يمكن تشغيل الوظائف الفردية لضعات تسلسل التجميع في وقت واحد. في الخطوة الأخيرة ، يمكن أن تأخذ medaka stitch
كإدخال واحد أو أكثر من إخراج ملفات .hdf
بالخطوة 2.
لذلك باختصار شيء مثل هذا ممكن:
# align reads to assembly
mini_align -i basecalls.fasta -r assembly.fasta -P -m
-p calls_to_draft.bam -t <threads>
# run lots of jobs like this:
mkdir results
medaka inference calls_to_draft.bam results/contigs1-4.hdf
--region contig1 contig2 contig3 contig4
...
# wait for jobs, then collate results
medaka sequence results/*.hdf polished.assembly.fasta
لا ينصح بتحديد قيمة --threads
التي تزيد عن 2 medaka inference
لأن كفاءة تحجيم الحساب سيئة تتجاوز هذا. لاحظ أيضًا أن medaka inference
قد يُرى أنه يستخدم الموارد المكافئة لـ <threads> + 4
حيث يتم استخدام 4 مؤشرات ترابط إضافية لقراءة بيانات الإدخال وإعدادها.
تم تدريب Medaka على تصحيح مسودة الإخراج من مجموعة Flye Assembler.
قد يؤدي معالجة مسودة تسلسل من مصادر بديلة (على سبيل المثال إخراج Canu أو WTDBG2) إلى نتائج مختلفة.
تم تدريب نماذج التصحيح التاريخي في Medaka على تصحيح مسودة الإخراج من مجموعة Canu مع تطبيق Racon إما مرة واحدة ، أو أربع مرات بشكل متكرر. بالنسبة للنماذج المعاصرة ، ليس هذا هو الحال ويجب استخدام Medaka مباشرة على ناتج Flye.
نشكر Joanna Pineda و Jared Simpson على توفير عينات رمز Htslib التي ساعدت بشكل كبير على تطوير رمز توليد الميزات المحسّن ، واختبار المرشحين للنسخة 0.4.
نشكر Devin Down على العمل من خلال استخدام medaka
مع GPU RTX 2080.
الترخيص وحقوق الطبع والنشر
© 2018- Oxford Nanopore Technologies Ltd.
يتم توزيع medaka
بموجب شروط Oxford Nanopore Technologies PLC. إصدار الترخيص العام 1.0
الإصدار البحثي
يتم توفير الإصدارات البحثية كمتظاهرين للتكنولوجيا لتوفير الوصول المبكر إلى الميزات أو تحفيز تطوير المجتمع للأدوات. سيكون دعم هذا البرنامج ضئيلًا ويتم توفيره مباشرة من قبل المطورين. طلبات الميزات والتحسينات والمناقشات موضع ترحيب ويمكن تنفيذها من خلال طلبات السحب والسحب. على الرغم من أننا نرغب في تصحيح كل مشكلة وقطعة من الملاحظات التي قد يكون لدى المستخدمين ، فقد يكون للمطورين مورد محدود لدعم هذا البرنامج. قد تكون الإصدارات البحثية غير مستقرة وتخضع للتكرار السريع من قبل تقنيات أكسفورد نانوبور.