MM2-Fast هو تطبيق متسارع لـ MinorAP2 على وحدات المعالجة المركزية الحديثة. MM2-fast يسارع جميع الوحدات الرئيسية الثلاث الرئيسية لـ MinorAP2: (أ) البذرة ، (ب) التسلسل ، و (ج) المحاذاة الزوجية ، وتحقيق ما يصل إلى 1.8x تسريع باستخدام AVX512 على أدنى مستوى. MM2-Fast هو بديل للمنخفض لـ MinorAP2 ، ويوفر نفس الوظيفة بنفس الإخراج بالضبط. في الإصدار الحالي ، يتم تحسين جميع الوحدات باستخدام AVX-512 و AVX2 . تتوفر النتائج القياسية التفصيلية في نشرنا في العلوم الحاسوبية الطبيعة (https://www.nature.com/articles/S43588-022-00201-8).
نظام التشغيل: Linux
تم اختبار MM2-fast باستخدام G ++ (GCC) 9.2.0 و ICPC الإصدار 19.1.3.304
العمارة: x86_64 وحدات المعالجة المركزية مع AVX512 ، AVX2
متطلبات الذاكرة: ~ 30 جيجابايت للجينوم البشري
استنساخ mm2-fast github repo. يمكن تجميع رمز المصدر باستخدام الأمر Make . يستغرق الأمر بضع ثوانٍ فقط.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast
make
استخدام MM2-fast هو نفسه MinorAP2. فيما يلي مثال على تعيين قراءات ONT مع بيانات الاختبار.
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast_output
نظرًا لأن هذا الشرير من MM2-fast هو نسخة متسارعة من MinimAp2-V2.24 ، يمكن التحقق من ناتج MM2-fast مقابل MinorAP2-V2.24. لاحظ أن التسلسل الأمثل في MM2-fast مطلوب تمامًا لتشغيله باستخدام معلمة تصريح MAX-SHAIN-SKIP = Infinity . لاحظ أن وجود المعلمة max-chain-skip = اللانهاية يؤدي إلى ارتفاع دقة التسلسل. لذلك ، للتحقق من الصواب ، يجب أن يعمل MinorAP2 بقيمة أكبر لمعلمة Max-chain-Skip . اتبع الخطوات أدناه للتحقق من دقة MM2-Fast.
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git mm2-fast
cd mm2-fast && make
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > mm2-fast_output
git clone https://github.com/lh3/minimap2.git -b v2.24
cd minimap2 && make
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa --max-chain-skip=1000000 > minimap2_output
يجب أن يتطابق الإخراج الناتج عن MinorAp2 و MM2-Fast.
diff minimap2_output mm2-fast_output > diff_result
يجب أن يكون الملف diff_result
فارغًا ، مما يعني اختلافًا عن 0 خطوط.
يطبق التجميع الافتراضي باستخدام Make Make تحسينين: التسلسل المتجانس ومحاذاة التسلسل. يتم تعطيل البذر المستند إلى الفهرس بشكل افتراضي لأنه يتطلب توافر الصدأ. وذلك لأن جدول التجزئة المستفاد يستخدم مكتبة تدريب خارجية تعمل على الصدأ. الصدأ تافهة للتثبيت ، راجع https://rustup.rs/ وأضف طريقه إلى ملف .bashrc. يستغرق تثبيت الصدأ بضع ثوانٍ فقط. فيما يلي خطوات تمكين تحسين جدول التجزئة المستفادة في MM2-Fast:
# Start by building learned hash table index for optimized seeding module
cd mm2-fast
source build_rmi.sh # #build binaries for creating index.
./create_index_rmi.sh test/MT-human.fa map-ont # #Takes two arguments: 1. path-to-reference-seq-file 2. preset.
# #For human genome, this step should take around 2-3 minutes to finish.
# Next, compile and run the mapping phase
make clean && make lhash=1
./minimap2 -ax map-ont test/MT-human.fa test/MT-orang.fa > mm2-fast-lhash_output
لتجميع MM2-fast مع إيقاف تشغيل جميع التحسينات والعودة إلى MinorAp2 الافتراضي ، استخدم الأمر التالي أثناء التجميع. هذا يمكن أن يكون مفيدًا لتصحيح الأخطاء.
make clean && make no_opt=1
# to use test data, download github repository
git clone --recursive https://github.com/bwa-mem2/mm2-fast.git
cd mm2-fast
# build Docker image
docker build -f Dockerfile -t mm2-fast:latest .
# minimap2 baseline
docker run -v $PWD /test:/test mm2-fast:latest /baseline/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > minimap2_baseline
# mm2-fast
docker run -v $PWD /test:/test mm2-fast:latest /mm2fast/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > mm2fast
# mm2-fast Advanced Options
# create index
# docker run -v $PWD/test:/test mm2-fast:latest bash /mm2-fast/create_index_rmi.sh /test/MT-human.fa <>
# <> can be map-hifi,map-ont,map-pb,asm5,asm20 depending upon your usecase
# example
docker run -v $PWD /test:/test mm2-fast:latest bash /mm2-fast/create_index_rmi.sh /test/MT-human.fa map-ont
# mapping
# docker run -v $PWD/test:/test mm2-fast:latest /lisa/mm2-fast/minimap2 -ax <> /test/MT-human.fa /test/MT-orang.fa > mm2fast_lisa
# <> can be map-hifi,map-ont,map-pb,asm5,asm20 depending upon your usecase
# example
docker run -v $PWD /test:/test mm2-fast:latest /lisa/mm2-fast/minimap2 -ax map-ont /test/MT-human.fa /test/MT-orang.fa > mm2fast_lisa
لقد لاحظنا ما يصل إلى 1.8x تسريع عبر مجموعات البيانات (يرجى الرجوع إلى الورقة لمزيد من التفاصيل). على سبيل المثال ، بالنسبة لقراءة 100K التي تم أخذ عينات منها عشوائيًا من "HG002_GM24385_1_2_3_guppy_3.6.0_prom.fastq.gz" ، يستغرق MinorAp2 92 ثانية ، بينما يستغرق MM2-fast 54 ثانية إلى الخريطة ضد الجينوم البشري على 28 core in intel® xeon® 8280 cpus . تتوفر مجموعات البيانات التي تم أخذ عينات منها مع 100 ألف قراءة هنا.
تسريع MinorAp2 لتطبيقات التسلسل طويلة القراءة على وحدات المعالجة المركزية الحديثة. سوراب كاليكار ، تشيراغ جاين ، فاسيم الدين إم دي ، سانشيت ميسرا. NAT Compit Sci 2 ، 78–83 (2022). https://doi.org/10.1038/S43588-022-00201-8
يتبع محتوى ReadMe الأصلي لـ MinorAp2.
git clone https://github.com/lh3/minimap2
cd minimap2 && make
# long sequences against a reference genome
./minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam
# create an index first and then map
./minimap2 -x map-ont -d MT-human-ont.mmi test/MT-human.fa
./minimap2 -a MT-human-ont.mmi test/MT-orang.fa > test.sam
# use presets (no test data)
./minimap2 -ax map-pb ref.fa pacbio.fq.gz > aln.sam # PacBio CLR genomic reads
./minimap2 -ax map-ont ref.fa ont.fq.gz > aln.sam # Oxford Nanopore genomic reads
./minimap2 -ax map-hifi ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.19 or later)
./minimap2 -ax asm20 ref.fa pacbio-ccs.fq.gz > aln.sam # PacBio HiFi/CCS genomic reads (v2.18 or earlier)
./minimap2 -ax sr ref.fa read1.fa read2.fa > aln.sam # short genomic paired-end reads
./minimap2 -ax splice ref.fa rna-reads.fa > aln.sam # spliced long reads (strand unknown)
./minimap2 -ax splice -uf -k14 ref.fa reads.fa > aln.sam # noisy Nanopore Direct RNA-seq
./minimap2 -ax splice:hq -uf ref.fa query.fa > aln.sam # Final PacBio Iso-seq or traditional cDNA
./minimap2 -ax splice --junc-bed anno.bed12 ref.fa query.fa > aln.sam # prioritize on annotated junctions
./minimap2 -cx asm5 asm1.fa asm2.fa > aln.paf # intra-species asm-to-asm alignment
./minimap2 -x ava-pb reads.fa reads.fa > overlaps.paf # PacBio read overlap
./minimap2 -x ava-ont reads.fa reads.fa > overlaps.paf # Nanopore read overlap
# man page for detailed command line options
man ./minimap2.1
MinimAP2 هو برنامج محاذاة تسلسل متعدد الاستخدامات يتوافق مع تسلسل الحمض النووي أو مرنا مقابل قاعدة بيانات مرجعية كبيرة. تشمل حالات الاستخدام النموذجية ما يلي: (1) تعيين القراءات الجينومية للباكبيو أو أكسفورد النانوية للجينوم البشري ؛ (2) العثور على تداخل بين القراءات الطويلة مع معدل الخطأ تصل إلى 15 ٪ ~ ؛ (3) محاذاة وعيقة من Pacbio ISO-Seq أو Nanopore [كدنا] أو RNA المباشر يقرأ ضد الجينوم المرجعي ؛ (4) محاذاة قراءات Illumina أحادية أو مقترنة ؛ (5) محاذاة التجميع إلى التجميع ؛ (6) محاذاة الجينوم الكاملة بين نوعين مرتبطين ارتباطًا وثيقًا مع الاختلاف أقل من 15 ٪.
بالنسبة إلى تسلسلات قراءات صاخبة تبلغ 10 كيلو بايت تقريبًا ، فإن MinorAp2 هو عشرات الأوقات أسرع من المخططات القراءة الطويلة السائدة مثل BLASR و BWA-MEM و NGMLR و GMAP. إنه أكثر دقة على القراءات الطويلة المحاكاة وتنتج محاذاة ذات مغزى بيولوجيًا جاهزة للتحليلات المصب. لـ> 100bp inlumina القراءات القصيرة ، يكون MinorAp2 بثلاث مرات مثل BWA-MEM و Bowtie2 ، ودقة على البيانات المحاكاة. تتوفر التقييمات التفصيلية من ورقة MinorAp2 أو preprint.
تم تحسين MinorAP2 ل CPU X86-64. يمكنك الحصول على ثنائيات مسبقة من صفحة الإصدار مع:
curl -L https://github.com/lh3/minimap2/releases/download/v2.24/minimap2-2.24_x64-linux.tar.bz2 | tar -jxvf -
./minimap2-2.24_x64-linux/minimap2
إذا كنت ترغب في التجميع من المصدر ، فيجب أن يكون لديك برنامج التحويل البرمجي C ، و GNU Make وتثبيت ملفات تطوير ZLIB. ثم اكتب make
في دليل الكود المصدر لتجميع. إذا رأيت أخطاء التجميع ، فحاول make sse2only=1
لتعطيل رمز SSE4 ، مما سيجعل MinorAp2 أبطأ قليلاً.
يعمل MinorAP2 أيضًا مع وحدات المعالجة المركزية ARM التي تدعم مجموعات تعليمات النيون. لتجميع بنية ذراع 32 بت (مثل ARMV7) ، استخدم make arm_neon=1
. لتجميع لبنية ذراع 64 بت (مثل ARMV8) ، استخدم make arm_neon=1 aarch64=1
.
يمكن لـ Minimap2 استخدام مكتبة SIMD في كل مكان (SIMDE) لتنفيذ تنفيذ مجموعات تعليمات SIMD المختلفة. لتجميع باستخدام Simde ، استخدم make -f Makefile.simde
. لتجميع وحدات المعالجة المركزية للذراع ، استخدم Makefile.simde
مع خطوط الأوامر ذات الصلة بالذراع المذكورة أعلاه.
بدون أي خيارات ، يأخذ MinorAp2 قاعدة بيانات مرجعية وملف تسلسل الاستعلام كمدخلات وإنتاج رسم خرائط تقريبي ، دون محاذاة على مستوى الأساس (أي إحداثيات تقريبية فقط ولا سيجار في الإخراج) ، بتنسيق PAF:
minimap2 ref.fa query.fq > approx-mapping.paf
يمكنك أن تطلب من MinorAp2 توليد السيجار في علامة cg
من PAF مع:
minimap2 -c ref.fa query.fq > alignment.paf
أو لإخراج محاذاة في تنسيق SAM:
minimap2 -a ref.fa query.fq > alignment.sam
يعمل MinorAP2 بسلاسة مع تنسيقات Gzip'd Fasta و FastQ كمدخلات. لا تحتاج إلى التحويل بين Fasta و FastQ أو فك ضغط ملفات Gzip'd أولاً.
بالنسبة للجينوم المرجعي البشري ، يستغرق MinorAp2 بضع دقائق لإنشاء مؤشر Minimizer للمرجع قبل التعيين. لتقليل وقت الفهرسة ، يمكنك اختياريا حفظ الفهرس مع الخيار -D واستبدال ملف التسلسل المرجعي بملف الفهرس على سطر الأوامر MinorAp2:
minimap2 -d ref.mmi ref.fa # indexing
minimap2 -a ref.mmi reads.fq > alignment.sam # alignment
الأهم من ذلك ، تجدر الإشارة إلى أنه بمجرد إنشاء الفهرس ، لا يمكن تغيير معلمات الفهرسة مثل -K و -W و -H و -I أثناء التعيين. إذا كنت تقوم بتشغيل MinorAp2 لأنواع البيانات المختلفة ، فربما ستحتاج إلى الاحتفاظ بإنشاء فهارس متعددة مع معلمات مختلفة. هذا يجعل MinorAp2 مختلفًا عن BWA والذي يستخدم دائمًا نفس الفهرس بغض النظر عن أنواع بيانات الاستعلام.
يستخدم MinorAp2 نفس خوارزمية الأساس لجميع التطبيقات. ومع ذلك ، نظرًا لأنواع البيانات المختلفة التي تدعمها (مثل القراءة القصير مقابل القراءة الطويلة ؛ DNA vs mRNA) ، يجب ضبط MinorAP2 من أجل الأداء الأمثل والدقة. عادة ما يوصى باختيار إعداد مسبق مع الخيار -x ، والذي يضع معلمات متعددة في نفس الوقت. الإعداد الافتراضي هو نفسه map-ont
.
minimap2 -ax map-pb ref.fa pacbio-reads.fq > aln.sam # for PacBio CLR reads
minimap2 -ax map-ont ref.fa ont-reads.fq > aln.sam # for Oxford Nanopore reads
الفرق بين map-pb
و map-ont
هو أن map-pb
يستخدم الحد الأدنى من الحد الأدنى (HPC) المضغوطة (HPC) كبذور ، بينما يستخدم map-ont
الحد الأدنى العادي كبذور. يشير التقييم الإمبراطوري إلى أن الحد الأدنى من HPC يحسن الأداء والحساسية عند محاذاة Pacbio CLR ، ولكنه يضر عند محاذاة نانوبور.
minimap2 -ax splice:hq -uf ref.fa iso-seq.fq > aln.sam # PacBio Iso-seq/traditional cDNA
minimap2 -ax splice ref.fa nanopore-cdna.fa > aln.sam # Nanopore 2D cDNA-seq
minimap2 -ax splice -uf -k14 ref.fa direct-rna.fq > aln.sam # Nanopore Direct RNA-seq
minimap2 -ax splice --splice-flank=no SIRV.fa SIRV-seq.fa # mapping against SIRV control
هناك تقنيات مختلفة من RNA-Seq ، بما في ذلك [كدنا] كامل الطول ، و EST ، و Pacbio ISO-Seq ، و Nanopore 2D [cdna-seq و RNA-seq المباشر. أنها تنتج بيانات ذات جودة وخصائص متفاوتة. بشكل افتراضي ، يفترض -x splice
الاتجاه القراءة بالنسبة إلى حبلا النص غير معروف. يحاول جولتين من المحاذاة لاستنتاج الاتجاه وكتابة حبلا إلى علامة ts
SAM/PAF إذا أمكن. بالنسبة إلى ISO-Seq و Direct RNA-Seq و CDNAs الكاملة الطول ، سيكون من المطلوب تطبيقه -uf
لإجبار MinorAp2 على النظر في حبلا النص الأمامي فقط. هذا يسرع التوافق مع تحسن طفيف في الدقة. بالنسبة لقراءات RNA-Seq المباشرة النانوية الصاخبة ، يوصى باستخدام حجم K-MER أصغر لزيادة الحساسية على الإكسونات الأولى أو الأخيرة.
معدلات MinimAP2 محاذاة من خلال درجة القسم الفرعي للتسجيل الأقصى ، باستثناء الإنترونات ، ويمثل أفضل محاذاة في SAM. عندما يكون للجين المقترن أيضًا الجينات الكاذبة غير المنقولة ، لا يفضل MinorAP2 عن قصد المحاذاة المقسمة ، على الرغم من أنه في الممارسة العملية يمثل في كثير من الأحيان المحاذاة المقسمة باعتبارها الأولية. بشكل افتراضي ، يقوم MinorAp2 بإخراج ما يصل إلى خمس محاذاة ثانوية (أي من المحتمل أن تكون الكاذبة في سياق تعيين RNA-SEQ). يمكن ضبط هذا مع الخيار -n .
بالنسبة لقراءات RNA -SEQ الطويلة ، قد ينتج MinimAP2 محاذاة خيالية يمكن أن تسببها اندماج الجينات/الاختلافات الهيكلية أو عن طريق intron أطول من طول intron Max -G (200 كيلو بايت افتراضيًا). في الوقت الحالي ، لا ينصح بتطبيق مجموعة كبيرة بشكل مفرط -حيث يبطئ هذا الحد الأدنى 2 ويؤدي في بعض الأحيان إلى محاذاة خاطئة.
تجدر الإشارة إلى أنه بشكل افتراضي -x splice
يفضل GT [A/G] .. [C/T] Ag على GT [C/T] .. [A/G] Ag ، ثم على إشارات الربط الأخرى. النظر في قاعدة إضافية يحسن دقة التقاطع للقراءات الصاخبة ، ولكن يقلل من الدقة عند التوافق مع بيانات التحكم في SIRV المستخدمة على نطاق واسع. وذلك لأن SIRV لا يكرم إشارة الربط المحافظ تطوريًا. إذا كنت تدرس sirv ، فيمكنك التقدم- --splice-flank=no
للسماح لـ MinorAp2 فقط بنموذج GT..Ag ، متجاهلاً القاعدة الإضافية.
منذ V2.17 ، يمكن لـ MinorAP2 أن يأخذ اختياريًا الجينات المشروحة كمدخلات وتحديد الأولويات على تقاطعات لصق مشروحة. لاستخدام هذه الميزة ، يمكنك
paftools.js gff2bed anno.gff > anno.bed
minimap2 -ax splice --junc-bed anno.bed ref.fa query.fa > aln.sam
هنا ، anno.gff
هو شرح الجينات بتنسيق GTF أو GFF3 ( gff2bed
يختبر التنسيق تلقائيًا). يكون ناتج gff2bed
في تنسيق السرير 12 عمودًا ، أو تنسيق Bed12. مع خيار- --junc-bed
، يضيف MinorAp2 درجة مكافأة (تم ضبطها بواسطة- --junc-bonus
) إذا كان الوصلات المحاذاة يطابق تقاطعًا في التعليقات التوضيحية. الخيار-يأخذ --junc-bed
أيضًا سريرًا من 5 أعمدة ، بما في ذلك حقل Strand. في هذه الحالة ، يشير كل سطر إلى تقاطع موجه.
minimap2 -x ava-pb reads.fq reads.fq > ovlp.paf # PacBio CLR read overlap
minimap2 -x ava-ont reads.fq reads.fq > ovlp.paf # Oxford Nanopore read overlap
وبالمثل ، يستخدم ava-pb
الحد الأدنى من HPC بينما يستخدم ava-ont
الحد الأدنى العادي. عادة لا ينصح بإجراء محاذاة على مستوى الأساس في الوضع المتداخل لأنه بطيء وقد ينتج تداخلات إيجابية خاطئة. ومع ذلك ، إذا لم يكن الأداء مصدر قلق ، فقد تحاول إضافة -a
أو -c
على أي حال.
minimap2 -ax sr ref.fa reads-se.fq > aln.sam # single-end alignment
minimap2 -ax sr ref.fa read1.fq read2.fq > aln.sam # paired-end alignment
minimap2 -ax sr ref.fa reads-interleaved.fq > aln.sam # paired-end alignment
عند تحديد ملفين قراءة ، يقرأ MinorAp2 من كل ملف بدوره ودمجهما في دفق متشابك داخليًا. تعتبر قراءتين مقترنة إذا كانت مجاورة في دفق الإدخال ولديها نفس الاسم (مع /[0-9]
لاحقة تقليصها في حالة وجودها). يمكن خلط القراءات أحادية الواحد والانحناء.
لا يعمل MinorAp2 بشكل جيد مع القراءات المقسمة قصيرة. هناك العديد من محركات RNA-Seq قادرة على القراءات القصيرة.
minimap2 -ax asm5 ref.fa asm.fa > aln.sam # assembly to assembly/ref alignment
لمحاذاة الجينوم الكاملة بين الأنواع ، يجب ضبط نظام التسجيل وفقًا للاختلاف التسلسل.
بسبب عيب في التصميم ، لا يعمل BAM مع سلاسل السيجار مع> 65535 عمليات (Sam و Cram Work). ومع ذلك ، بالنسبة إلى nanopore الطويلة للغاية ، قد تتوافق MinorAp2 إلى ~ 1 ٪ من قواعد القراءة مع السيجار الطويل خارج قدرة BAM. إذا قمت بتحويل مثل هذا SAM/Cram إلى BAM ، فسيقوم Picard و Samtools الحديثة بإلقاء خطأ ويجهض. قد تخلق Samtools الأقدم والأدوات الأخرى BAM التالفة.
لتجنب هذه المشكلة ، يمكنك إضافة خيار -L
في سطر الأوامر MinorAp2. ينقل هذا الخيار سيجارًا طويلًا إلى علامة CG
ويترك سيجارًا مقطوعًا بالكامل في عمود سيجار سام. لا تزال الأدوات الحالية التي لا تقرأ السيجار (على سبيل المثال دمج وفرز) تعمل مع سجلات BAM هذه ؛ الأدوات التي تقرأ السيجار سوف تتجاهل هذه السجلات بشكل فعال. لقد تقرر أن الأدوات المستقبلية ستتعرف بسلاسة على سجلات الشجاعة الطويلة التي تم إنشاؤها بواسطة الخيار -L
.
TL ؛ DR : إذا كنت تعمل مع القراءات الطويلة للغاية واستخدام الأدوات التي تعالج ملفات BAM فقط ، فيرجى إضافة الخيار -L
.
تُشفر علامة cs
SAM/PAF قواعد في عدم التطابق و indels. يطابق التعبير العادي /(:[0-9]+|*[az][az]|[=+-][A-Za-z]+)+/
. مثل السيجار ، يتكون cs
من سلسلة من العمليات. كل حرف رائد يحدد العملية ؛ التسلسل التالي هو التسلسل المشارك في العملية.
يتم تمكين علامة cs
بواسطة خيار سطر الأوامر --cs
. المحاذاة التالية ، على سبيل المثال:
CGATCGATAAATAGAGTAG---GAATAGCA
|| |||| |||||||||| |||| || |
CGATCG---AATAGAGTAGGTCGAATtGCA
تم تمثيله على النحو التالي :6-ata:10+gtc:4*at:3
، حيث :[0-9]+
يمثل كتلة متطابقة ، تمثل -ata
حذفًا ، +gtc
إدراج و *at
الإشارة إلى القاعدة المرجعية a
مع قاعدة الاستعلام t
. إنه مشابه لعلامة MD
SAM ولكنها قائمة بذاتها وأسهل.
إذا تم استخدام --cs=long
، تحتوي سلسلة cs
أيضًا على تسلسلات متطابقة في المحاذاة. سيصبح المثال أعلاه =CGATCG-ata=AATAGAGTAG+gtc=GAAT*at=GCA
. يشفر الشكل الطويل من cs
على حد سواء تسلسل المرجع والاستعلام في سلسلة واحدة. تُشفر علامة cs
أيضًا مواضع Intron وإشارات الربط (انظر MinorAp2 Manpage للحصول على التفاصيل).
يأتي MinorAP2 أيضًا مع Script Script Paftools.js الذي يعالج المحاذاة في تنسيق PAF. إنه يستدعي المتغيرات من محاذاة التجميع إلى المرجع ، ويرفع ملفات السرير بناءً على المحاذاة ، ويتحول بين التنسيقات ويوفر أدوات مساعدة لتقييمات مختلفة. للحصول على التفاصيل ، يرجى الاطلاع على MISC/README.MD.
في ما يلي ، تحتوي خيارات سطر أوامر MinimAp2 على اندفاعة مقدمة ويتم تسليط الضوء عليها بالخط العريض. قد يساعد الوصف في ضبط معلمات MinorAP2.
اقرأ -i [= 4G ] قواعد مرجعية ، استخراج ( -K ، -W ) -المبتدئين وفهرستها في جدول التجزئة.
اقرأ -K [= 200m ] قواعد الاستعلام. لكل تسلسل استعلام ، قم بخطوة من 3 إلى 7:
لكل ( -K ، -w ) -minimizer على الاستعلام ، تحقق من مؤشر المرجع. إذا لم يكن الحد الأدنى المرجعي من بين الأعلى -F [= 2E -4 ] الأكثر شيوعًا ، فتجمع أحداثه في المرجع ، والتي تسمى البذور .
فرز البذور حسب الموضع في المرجع. سلسلة مع البرمجة الديناميكية. تمثل كل سلسلة رسم خرائط محتمل. لقراءة التداخل ، قم بالإبلاغ عن جميع السلاسل ثم انتقل إلى الخطوة 8. للحصول على رسم الخرائط المرجعية ، قم بخطوة من 5 إلى 7:
دع p تكون مجموعة من التعيينات الأولية ، وهي مجموعة فارغة في البداية. لكل سلسلة من الأفضل إلى الأسوأ وفقًا لدرجات التسلسل الخاصة بها: إذا كانت السلسلة تتداخل مع سلسلة في P by-على مستوى القناع [= 0.5 ] أو أعلى من السلسلة الأقصر ، حدد السلسلة كما ثانوية للسلسلة في P ؛ خلاف ذلك ، أضف السلسلة إلى ص .
الاحتفاظ بجميع التعيينات الأولية. احتفظ أيضًا بما يصل إلى -N [= 5 ] التعيينات الثانوية العليا إذا كانت درجات التسلسل أعلى من -P [= 0.8 ] من التعيينات الأولية المقابلة لها.
إذا تم طلب المحاذاة ، فقم بتصفية بذرة داخلية إذا كان من المحتمل أن يؤدي إلى إدخال طويل وحذف طويل. تمتد من بذرة اليسار. أداء المحاذاة العالمية بين البذور الداخلية. تقسيم السلسلة إذا انخفضت النتيجة التراكمية على طول المحاذاة العالمية بواسطة -Z [= 400 ] ، متجاهلة فجوات طويلة. تمتد من بذرة اليمين. سلاسل الإخراج ومحاذاةها.
إذا كان هناك المزيد من تسلسل الاستعلام في الإدخال ، فانتقل إلى الخطوة 2 حتى لا يتم ترك أي استفسارات مزيد من الاستعلامات.
إذا كان هناك المزيد من التسلسلات المرجعية ، فقم بإعادة فتح ملف الاستعلام من البداية وانتقل إلى الخطوة 1 ؛ خلاف ذلك توقف.
يوفر MinPage MinorAP2.1 وصفًا مفصلاً لخيارات سطر الأوامر MinorAp2 والعلامات الاختيارية. تجيب صفحة الأسئلة الشائعة على العديد من الأسئلة التي يتم طرحها بشكل متكرر. إذا واجهت الأخطاء أو لديك أسئلة أو طلبات أخرى ، فيمكنك إثارة مشكلة في صفحة الإصدار. لا توجد قائمة بريدية محددة في الوقت الحالي.
إذا كنت تستخدم minimap2 في عملك ، يرجى الاستشهاد:
Li ، H. (2018). MinorAp2: محاذاة زوجية لتسلسلات النوكليوتيدات. المعلوماتية الحيوية ، 34 : 3094-3100. doi: 10.1093/bioinformatics/bty191
و/أو:
Li ، H. (2021). استراتيجيات جديدة لتحسين دقة محاذاة الحد الأدنى. المعلوماتية الحيوية ، 37 : 4572-4574. doi: 10.1093/bioinformatics/btab705
Minimap2 ليس فقط أداة سطر الأوامر ، ولكن أيضًا مكتبة برمجة. يوفر C APIs لإنشاء/فهرس الحمل ومحاذاة التسلسلات مع الفهرس. يوضح File example.c الاستخدامات النموذجية ل APIs C. يمنح ملف الرأس MinorAp.H وثائق API أكثر تفصيلاً. يهدف MinorAp2 إلى الحفاظ على واجهات برمجة التطبيقات في هذا الرأس مستقر. يحتوي File MMPRIV.H على واجهات برمجة التطبيقات الخاصة الإضافية التي قد تخضع لتغييرات بشكل متكرر.
يوفر هذا المستودع أيضًا روابط Python لمجموعة فرعية من واجهات برمجة التطبيقات C. ملف python/readMe.rst يعطي الوثائق الكاملة ؛ Python/minimap2.py يظهر مثالاً. هذا امتداد Python ، Mappy ، متاح أيضًا من PYPI عبر pip install mappy
أو من Bioconda عبر conda install -c bioconda mappy
.
قد ينتج MinimAp2 محاذاة دون المستوى الأمثل من خلال مناطق طويلة معقدات منخفضة حيث قد تكون مواقف البذور دون المستوى الأمثل. لا ينبغي أن يكون هذا مصدر قلق كبير لأنه حتى المحاذاة المثلى قد يكون خطأ في مثل هذه المناطق.
يتطلب MinorAP2 تعليمات SSE2 على وحدات المعالجة المركزية X86 أو النيون على وحدة المعالجة المركزية للذراع. من الممكن إضافة دعم غير SIMD ، ولكنه سيجعل MinorAP2 أبطأ عدة مرات.
لا يعمل Minimap2 مع تسلسل استعلام واحد أو قاعدة بيانات ~ 2 مليار قاعدة أو أطول (2،147،483،647 ليكون دقيقًا). يمكن أن يتجاوز الطول الكلي لجميع التسلسلات هذه العتبة.
غالبًا ما يفتقد MinorAP2 الإكسونات الصغيرة.