MetaPhase: أداة برمجية لتفكيك الميتاجينوم باستخدام Hi-C.
أنشأه جوش بيرتون ( jnburton at uw.edu
) في قسم علوم الجينوم بجامعة واشنطن، سياتل، واشنطن، الولايات المتحدة الأمريكية
النشر في G3: الجينات | الجينومات | علم الوراثة (يرجى الاستشهاد) هنا: http://dx.doi.org/10.1534/g3.114.011825
ما هو MetaPhase ولماذا أهتم به؟
ما الذي أحتاجه لاستخدام MetaPhase؟
متطلبات النظام
تنزيل حزمة MetaPhase
تجميع حزمة MetaPhase
الإرشادات التفصيلية: جرب MetaPhase على مجموعة بيانات نموذجية
قائمة ملفات الإدخال
إنشاء مشروع تجميع الميتاجينوم
محاذاة قراءة Hi-C لمشروع تجميع الميتاجينوم
توريد الجينومات المرجعية
إنشاء ملفات TSV
وسيطات سطر الأوامر المطلوبة
وسيطات سطر الأوامر الاختيارية
وسيطات سطر الأوامر للإخراج (جميع عمليات التبديل الاختيارية)
الرسوم البيانية
الصور
الملفات الموجودة في دليل الإخراج
تشغيل اللاتشيسيس
لن يتم تشغيل MetaPhase!
الطور الفوقي يتعطل!
MetaPhase ينتج نتيجة غريبة!
MetaPhase هي أداة برمجية لإجراء التفكيك الميتاجينومي. أي أنها تُدخل مجموعة ميتاجينوم - مجموعة تم إنشاؤها من عينة جينومية مختلطة، عادةً من العديد من الأنواع الميكروبية المختلفة - وتحدد أي المجموعات في تلك المجموعة تنتمي معًا في نفس الجينومات. لا تحتوي مجموعة الميتاجينوم على الجينوم الكامل لأي نوع واحد في العينة المختلطة، ولكن يمكن أن تحتوي المجموعة المفككة على جينومات كاملة تقريبًا للعديد من الأنواع الفردية. تعتمد MetaPhase على البيانات التي تم إنشاؤها بواسطة Hi-C، وهي تقنية جزيئية راسخة لدراسة تشكيل الكروماتين (الورقة).
تريد استخدام MetaPhase إذا كنت تدرس مجتمعًا ميكروبيًا وتريد معرفة جينومات الأنواع الميكروبية الفردية. يعمل MetaPhase بشكل جيد على المجتمعات المعقدة إلى حد ما، ويمكنه دراسة حقيقيات النوى وبدائيات النوى بشكل جيد على قدم المساواة. لا تستطيع MetaPhase تفكيك السلالات ذات الصلة الوثيقة من نفس النوع؛ فإنه سيتم وضع كل هذه السلالات في كتلة واحدة. لم يتم اختبار MetaPhase على المجتمعات التي تضم آلاف الأنواع، مثل ميكروبيوم الأمعاء البشرية، كما أنه لا يمكنه اكتشاف الأنواع التي يقل وفرتها عن 1% بشكل موثوق. (لاحظ أن القيد هنا يكمن في عدم قدرة برنامج تجميع الميتاجينوم القياسي على إنشاء مشروع تجميع ميتاجينوم يحتوي على contigs من الأنواع النادرة، بدلاً من قدرة MetaPhase على تفكيك هذه contigs.)
لا ترغب في استخدام MetaPhase إذا كنت تدرس تباين السلالة داخل نوع واحد. أو إذا كنت تدرس إعادة ترتيب الجينوم في جينومات السرطان البشرية. أنت أيضًا لا تريد استخدام MetaPhase إلا إذا كان لديك مجموعة بيانات Metagenomic Hi-C أو كنت على استعداد لإنشاء واحدة؛ Hi-C ليست تقنية تافهة للتعلم. يعد التحلل الميتاجينومي الحسابي البحت (وليس الجزيئي) أمرًا صعبًا، ولكنه ليس مستحيلًا: راجع الأوراق المذكورة في مقدمة ورقة MetaPhase.
على مستوى عالٍ، تحتاج فقط إلى شيئين لتشغيل MetaPhase:
مشروع تجميع ميتاجينوم دي نوفو . يمكن إنشاء هذا من مكتبة تسلسل ميتاجينوم البندقية بواسطة أي عدد من أدوات التجميع، مثل Velvet أو IDBA-UD أو ABySS أو SPAdes.
مكتبة تسلسل Hi-C تم إنشاؤها من عينة ميتاجينوم - ويفضل أن تكون نفس العينة التي تم استخدامها لإنشاء مجموعة ميتاجينوم دي نوفو ، أو عينة مشابهة جدًا.
على مستوى منخفض، يتطلب MetaPhase عدة ملفات إدخال مختلفة، بالإضافة إلى بعض المدخلات الاختيارية. لمزيد من التفاصيل حول ملفات الإدخال، راجع القسم C1، "قائمة ملفات الإدخال".
لإعداد MetaPhase وتشغيله، ستحتاج إلى جهاز كمبيوتر يعمل في بيئة UNIX بذاكرة لا تقل عن 16 جيجابايت، مع تثبيت البرنامج التالي:
gcc، مترجم C++ (http://gcc.gnu.org/)
مكتبة ضغط zlib (http://www.zlib.net/)
قد تحتاج أيضًا إلى البرامج التالية:
مصفف القراءة القصيرة BWA (http://bio-bwa.sourceforge.net/) أو مصفف آخر من هذا القبيل
أداة محاذاة BLAST في شكل سطر الأوامر (http://www.ncbi.nlm.nih.gov/books/NBK1763/)، بما في ذلك الأوامر blastn
و tblastx
و makeblastdb
برنامج bmtagger لإزالة القراءات البشرية من مجموعات بيانات الميتاجينوميات (http://biowulf.nih.gov/apps/bmtagger.html)
يتطلب MetaPhase أيضًا مكتبات Boost C++ (http://www.boost.org/) ومجموعة أدوات SAMtools (http://samtools.sourceforge.net/)، ولكن يتم تضمينها في حزمة تثبيت MetaPhase.
قم بتنزيل حزمة MetaPhase من https://github.com/shendurelab/MetaPhase/archive/master.zip إلى نظام ملفات UNIX. إذا قمت بتنزيل tarball ( MetaPhase.tar.gz
)، فقم بفك ضغطه باستخدام أوامر UNIX التالية:
tar xzvf MetaPhase.tar.gz
cd MetaPhase/
من الآن فصاعدًا، أشير إلى دليل MetaPhase الرئيسي باسم <MetaPhase>
.
لتجميع MetaPhase، اكتب ببساطة make
في دليل <MetaPhase>
. لتشغيل MetaPhase، قد تحتاج أيضًا إلى إضافة <MetaPhase>/include/boost_1_47_0/stage/lib
إلى $LD_LIBRARY_PATH
(لتجنب حدوث مشكلة: cannot open shared object file...
.) وأخيرًا، تأكد من تشغيل أي منهما MetaPhase من دليل <MetaPhase>
أو أضف هذا الدليل إلى $PATH
. يعد هذا أمرًا مهمًا لأن بعض وحدات MetaPhase تحتاج إلى الوصول إلى البرامج النصية القابلة للتنفيذ FastaSize
و CountMotifsInFasta.pl
و Fig2a.R
و MakeClusteringResultHeatmap.R
، المضمنة في حزمة MetaPhase.
تتضمن حزمة MetaPhase حالة اختبار صغيرة يمكنك تشغيلها للتعرف على كيفية عمل MetaPhase. إنه موجود في الدليل test_case
، الذي يحتوي على الدلائل الفرعية التالية:
<MetaPhase>/test_case/assembly/
: يحتوي على مسودة تجميع الميتاجينوم الجديد ، assembly.fasta
. يتكون هذا التجميع من 20 مجموعة مأخوذة من مجموعة أكبر بكثير من عينة التهاب المهبل الجرثومي. إنه بمثابة مثال لعبة لتجميع الميتاجينوم.
<MetaPhase>/test_case/HiC/
: يحتوي على ملفين fastq، BV.H3.head.bmt.1.fq وBV.H3.head.bmt.2.fq. هذه القراءات هي مجموعة فرعية من مجموعة بيانات Hi-C أكبر بكثير ومتسلسلة من عينة التهاب المهبل الجرثومي. لقد تمت تصفيتها بالفعل باستخدام bmtagger لإزالة القراءات البشرية.
<MetaPhase>/test_case/refs/
: يحتوي على جينوم مرجعي واحد متاح للعامة، LI.fasta
، لبكتيريا Lactobacillus iners . هذا مدخل اختياري ستستخدمه MetaPhase لمعرفة ما إذا كانت مجموعاتها تتطابق مع جينوم L. iners .
<MetaPhase>/test_case/tsvs/
: يحتوي على ملفين TSV يصفان موقع ملفات الإدخال الأخرى ويستخدمهما MetaPhase.
<MetaPhase>/test_case/out/
: هذا الدليل غير موجود في البداية. عند تشغيل MetaPhase في حالة الاختبار، فإنه سينشئ هذا الدليل ويضع مخرجاته هنا.
المدخل الوحيد (الاختياري) المفقود من حالة الاختبار هو قاعدة بيانات بلاست لتسلسلات النيوكليوتيدات. قاعدة البيانات هذه، والتي تسمح لك بالاستعلام عن contigs تجميع الميتاجينوم مقابل جميع التسلسلات المعروفة، كبيرة جدًا بالنسبة لحزمة اختبار ولكن يمكن تنزيلها من موقع BLAST. لاستخدام قاعدة البيانات هذه، ستحتاج إلى تعيين وسيطة سطر الأوامر --blast_dir
.
لتطبيق MetaPhase على test_case، قم بتشغيل الأوامر التالية:
إعداد مشروع الجمعية ميتاجينوم دي نوفو للمواءمة مع بوا. لاحظ أن bwa
يجب أن يكون في $PATH
. cd <MetaPhase>/test_case/assembly
../../FastaSize assembly.fasta
bwa index -a bwtsw assembly.fasta
قم بمحاذاة قراءات Hi-C لمسودة التجميع. يستخدم هذا البرنامج النصي align.sh
المتوفر بالفعل، والذي يقوم بتشغيل bwa aln
و bwa sampe
، ويقوم بإنشاء ملف BAM الذي سيستخدمه MetaPhase. لاحظ أنه يجب عليك استخدام bwa aln
و bwa sampe
، وليس bwa mem
. cd <MetaPhase>/test_case/HiC
align.sh
افحص ملفات TSV للتأكد من أنك تفهم ما يفعلونه. cd <MetaPhase>/tsvs
cat test_case.refs.tsv
cat test_case.HiC_libs.tsv
الآن، قم بتشغيل حالة اختبار MetaPhase باستخدام مجموعة أساسية من وسيطات سطر الأوامر. يتم شرح أغراض كافة وسائط سطر الأوامر هذه أدناه في القسم D، "Running MetaPhase". cd <MetaPhase>
MetaPhase -s test_case -a test_case/assembly/assembly.fasta -i test_case/tsvs --refs_dir test_case/refs -o test_case/out -N 3 --isolated_component_size 2 --jarvis_patrick_K 2
أول شيء ستفعله MetaPhase هو محاذاة contigs لمسودة التجميع مقابل الجينوم المرجعي LI.fasta. قد يستغرق هذا عدة دقائق، ولكنه انتظار لمرة واحدة: سيتم تخزين النتائج مؤقتًا في ملف خاص. بعد ذلك، ستقوم MetaPhase بتجميع 20 contigs في مسودة التجميع من خلال روابط Hi-C الخاصة بها، مما يؤدي إلى إنشاء 3 مجموعات (بسبب -N 3
.) أخيرًا، ستقوم MetaPhase بالإبلاغ عن الإحصائيات الأساسية حول المجموعات التي أنشأتها.
حاول الآن تشغيل MetaPhase مرة أخرى، مع إضافة واحدة أو أكثر من وسيطات سطر الأوامر التالية: --report_unclustered
، --output_cluster_fastas
، --output_heatmaps
، output_network_image
. سيؤدي كل خيار من هذه الخيارات إلى إخراج المزيد من المعلومات بأشكال مختلفة: إما على الشاشة، أو على الملفات، أو على الصور. راجع القسم D2، "وسائط سطر الأوامر الاختيارية" لمزيد من المعلومات.
انظر الآن إلى test_case/out/test_case
. هذا هو دليل الإخراج الذي تم إنشاؤه بواسطة تشغيل MetaPhase. أنه يحتوي على العديد من ملفات الإخراج. cluster.*.fasta
هي مجموعة fastas الخاصة بك (وهي موجودة فقط إذا قمت بتشغيل --output_cluster_fastas
.) يحتوي الدليل الفرعي cached_data
على ملفات البيانات المخزنة مؤقتًا ، والتي تتضمن نتائج تشغيل BLAST ومجموعات MetaPhase.
لاحظ أن test_case عبارة عن مجموعة بيانات صغيرة جدًا وأن نتائجها ليست مفيدة أو نموذجية من الناحية البيولوجية. على سبيل المثال، هناك عدد قليل جدًا من أزواج قراءة Hi-C بحيث يتم إلغاء ربط 10 من 20 contigs تمامًا، وتلك المرتبطة موجودة في ثلاث مجموعات منفصلة (لذلك من المستحيل إنتاج أقل من 3 مجموعات.) وهذا يمنعنا من توضيح آخر مفيد ميزة MetaPhase، وهي أنه يمكننا استخدامها للتنبؤ بعدد العناقيد. في عينتك (على الرغم من ذلك، للأسف، ليس في حالة الاختبار) يمكنك تشغيل MetaPhase باستخدام -N 1
وسيقوم بإنشاء منحنى إثراء E(N) ، تمامًا مثل ذلك الموجود في الشكل S4 من ورقة MetaPhase. سيتيح لك ذلك تحديد العدد التقريبي للأنواع في مجموعة الميتاجينوم الخاصة بك، وبالتالي العدد الأمثل للمجموعات.
يستخدم MetaPhase ملفات الإدخال التالية مباشرة. للحصول على توضيح لكيفية ظهور كل هذه الملفات، راجع ملف test_case.
الملفات المطلوبة:
مسودة تجميع الميتاجينوم، بتنسيق فاستا
يقرأ واحد أو أكثر من ملفات SAM/BAM التي تصف محاذاة Hi-C لمسودة تجميع الميتاجينوم. لاحظ أن ملف (ملفات) SAM/BAM هذه يجب أن يتم إدراج كل قراءة فيها مرة واحدة فقط، مما يعني أنه يجب إنشاؤها باستخدام bwa aln وbwa sampe، وليس bwa mem.
ملفان TSV، <scenario>.HiC_libs.tsv
و <scenario>.refs.tsv
، يصفان مجموعة ملفات إدخال BAM ومجموعة الجينومات المرجعية، على التوالي. الملفات الاختيارية:
قاعدة بيانات بلاست تصف جميع تسلسلات النيوكليوتيدات ( nt
) و/أو البروتين ( nr
) المعروفة. يمكن تنزيل نسخة محدثة من قاعدة البيانات هذه من موقع BLAST على الويب، والذي يحتوي أيضًا على إرشادات حول كيفية تثبيت أدوات سطر الأوامر blastn
و tblastx
التي ستحتاج إليها. لاحظ أن قواعد البيانات هذه كبيرة (اعتبارًا من عام 2015، يبلغ nt
~25 جيجا بايت و nr
~ 50 جيجا بايت.)
مجموعة من الجينومات المرجعية بتنسيق فاستا، تصف الأنواع التي تعتقد أنها موجودة في عينتك، أو مرتبطة بالأشياء الموجودة في عينتك. إذا كنت لا تعرف كل شيء في عينتك (وربما لا تعرفه)، فيمكنك الانتظار حتى تقوم بالفعل بمحاذاة مجموعة الميتاجينوم الخاصة بك مع بحث بلاست ثم تأخذ اقتراحات من نتائج البحث هذه. للعثور على تجميع الجينوم المرجعي لأحد الأنواع، ابحث في قاعدة بيانات تجميع NCBI.
يقرأ ملف SAM/BAM الذي يصف محاذاة البندقية إلى مسودة تجميع الميتاجينوم. قراءات البندقية هي نفس القراءات المستخدمة لإنشاء التجميع. يمكن لـ MetaPhase استخدام هذا الملف لتقدير الوفرة في عينتك لكل contig، وبالتالي لكل مجموعة. حاليا غير متاح بدون اختراق MetaPhase.cc قليلا (آسف.)
أحد أهم المدخلات إلى MetaPhase هو مشروع تجميع metagenome de novo . يجب عليك إنشاء هذا التجميع بنفسك باستخدام قراءات البندقية من عينتك. هناك العديد من أدوات تجميع ميتاجينوم دي نوفو المتاحة للعامة والتي تعمل بشكل جيد، بما في ذلك Velvet وIDBA-UD وABySS وSPades. لقد استخدمت IDBA-UD أثناء تطوير MetaPhase.
من المهم أن ندرك أن MetaPhase لا ينتج أي تسلسل جديد؛ إنه فقط تسلسل المجموعات الموجود بالفعل في التجميع. إذا لم يصل بعض التسلسل من عينتك إلى مسودة التجميع - لأنه نادر جدًا، أو غير متوازن جدًا في GC، أو متكرر جدًا، أو لأي سبب آخر - فلا يمكن لـ MetaPhase تجميعها في جينوم. قد يكون من المفيد تجربة العديد من الخيارات المختلفة في مجمع الميتاجينوم الخاص بك، أو العديد من أدوات تجميع الميتاجينوم المختلفة، من أجل الحصول على تجميع بأكبر قدر من التسلسل وأطول contig N50.
يعمل MetaPhase بشكل أفضل عندما تكون عناصر الإدخال الخاصة به أطول، نظرًا لوجود إشارة أكثر وضوحًا لربط Hi-C لاستخدامها. على وجه الخصوص، لا يمكن لـ MetaPhase تجميع مجموعة مكونة لا تحتوي على أي مواقع إنزيم تقييد ، لأن قراءة Hi-C لا يمكن أن تتماشى معها بشكل موثوق. ضع هذه الحقيقة في الاعتبار عند اختيار إنزيم التقييد الذي ستستخدمه في تجربة Hi-C. إذا كانت مجموعة الميتاجينوم الخاصة بك تحتوي على N50 صغير، فقد ترغب في استخدام إنزيم تقييد ذو 4 قطع بدلاً من 6 قطع. (على سبيل المثال، إذا كانت مجموعة الميتاجينوم الخاصة بك تحتوي على N50 بسعة 4 كيلو بايت فقط، فإن مكتبة Hi-C المصنوعة باستخدام 6 قطع - والتي تقطع كل 4 كيلو بايت تقريبًا - لن تكون قادرة تمامًا على تجميع 50% من تسلسل التجميع.)
بالإضافة إلى مجموعة الميتاجينوم نفسها، يقوم MetaPhase بإدخال محاذاة قراءة Hi-C إلى مجموعة الميتاجينوم. يجب أن يكون هذا الملف بتنسيق SAM أو BAM، ويجب أن يحتوي على كل Hi-C للقراءة مرة واحدة فقط. يمكنك استخدام أي مصفف ينتج ملفات SAM/BAM؛ لقد استخدمت bwa أثناء تطوير MetaPhas؛ إذا كنت تستخدم bwa، فتأكد من استخدام bwa aln وbwa sampe، وليس bwa mem، مما يؤدي إلى إخراج كل قراءة عدة مرات!)
تعد قراءات Hi-C فريدة من نوعها: فهي خيالية بشكل متعمد، مع موقع ربط خيالي يُعرف تسلسله من إنزيم التقييد (على سبيل المثال، يقطع HindIII عند AAGCTT وينتج AAGCTAGCTT عند إعادة الربط.) وبسبب هذا، فإن نهج المحاذاة المباشر سوف تفوت العديد من أزواج Hi-C المفيدة. قد ترغب في تصميم مسار محاذاة مخصص لزيادة إنتاجيتك إلى الحد الأقصى؛ إذا كان الأمر كذلك، فألق نظرة على النص البرمجي align.iter.interactive.sh
، الذي استخدمته في تطويري الخاص وقد يعطيك أفكارًا لخط الأنابيب المخصص الخاص بك.
يعد توفير الجينومات المرجعية إلى MetaPhase أمرًا اختياريًا تمامًا، ولكنه مفيد جدًا. يمكن لـ MetaPhase محاذاة contigs لمسودة التجميع من أجل الحصول على فكرة عن الأنواع التي من المحتمل أن تكون منها. هناك طريقتان للقيام بذلك: التوافق مع قاعدة بيانات BLAST التي تحتوي على كافة التسلسلات المعروفة؛ والمحاذاة مع ملف Fasta المحلي الذي يحتوي على مجموعة جينوم مرجعية واحدة. الطريقة الأولى مفيدة لاستكشاف مسألة ما هي الأصناف الموجودة في عينتك؛ تعتبر الطريقة الأخيرة مفيدة للتركيز على الأنواع الفردية التي تعرف أنها موجودة في عينتك (أو مرتبطة بأشياء في عينتك) ولإنشاء الخريطة الحرارية وصور الشبكة العنقودية (انظر القسم E2، "الصور"). يمكنك البدء بمحاذاة BLAST فقط، ثم استخدام النتائج من هناك لتحديد الأنواع التي من المحتمل أن تواجهها، ثم تنزيل تلك المراجع وإدخالها في MetaPhase. يتم توفير قائمة مجموعات الجينوم المرجعية إلى MetaPhase في الملف <scenario>.refs.tsv
.
سيقوم MetaPhase بتنفيذ جميع المحاذاة لكل من قاعدة بيانات BLAST والجينومات المرجعية. قد تقوم MetaPhase باستدعاء أوامر BLAST، blastn
، tblastx
، و makeblastdb
، وكلها جزء من حزمة التعليمات البرمجية لسطر الأوامر BLAST؛ تأكد من وجود هذه الأوامر في $PATH
. لاحظ أن BLAST يمكن أن يستخدم الكثير من وقت التشغيل، خاصة إذا قمت بتعيين --use-tblastx
. ومع ذلك، يقوم MetaPhase بتخزين نتائج تشغيل BLAST مؤقتًا في <out_dir>/cached_data
من أجل حفظ وقت التشغيل لاحقًا.
يتطلب MetaPhase ملفين إدخال TSV (قيمة مفصولة بعلامات جدولة): أحدهما لمنحه مجموعة ملفات محاذاة SAM/BAM، والآخر لمنحه مجموعة تجميعات الجينوم المرجعية. هذه الملفات صغيرة الحجم، وستحتاج إلى إنشاءها يدويًا، خاصة أنها قد تحتاج إلى تعديل يدوي لاحقًا. أسهل ما يمكنك فعله هو اتباع مثال ملفات TSV في test_case/tsvs
.
للحصول على ملخص سريع لجميع وسيطات سطر الأوامر الخاصة بـ MetaPhase، قم بتشغيل MetaPhase -help
. شرح أكثر تفصيلا هنا .
-s
<string>
: اسم السيناريو. يتم استخدام هذا بواسطة MetaPhase لتسمية التشغيل الخاص بك. يتم استخدامه كبداية لاسم ملفات tsv (انظر -i
أدناه) وأيضًا كاسم دليل الإخراج (انظر -o
أدناه). أخيرًا، يمكنك تجاهل هذا، ولكن هناك بعض أسماء السيناريوهات التي تحتوي على خيارات سطر أوامر ثابتة استخدمتها في التطوير (وهذا، على سبيل المثال، سبب عدم إدراج -a
كوسيطة "مطلوبة" في MetaPhase -help
أمر MetaPhase -help
.)
-a
<string>
: موقع ملف fasta الخاص بتجميع metagenome de novo . يجب أن يكون هذا مسارًا مطلقًا، وليس مسارًا نسبيًا - أي أنه يجب أن يبدأ بـ /
.
-N
<integer>
> : عدد المجموعات المراد إنشاؤها. إذا قمت بتعيين 1، فإن MetaPhase سوف يجمع كل شيء في مجموعة واحدة وسيحسب E(N)، إثراء الارتباط داخل المجموعة، على طول الطريق، ثم يكتب ملف enrichment_curve.jpg
الذي يمكن أن يوفر لك تقديرًا لعدد الأنواع في العينة الخاصة بك. لا تقم بتعيين إلى 0 أو إلى رقم أكبر من عدد contigs.
تتضمن بعض هذه الوسائط $HOME
في قيمها الافتراضية. يشير هذا إلى دليل UNIX الرئيسي الخاص بك (المكان الذي تذهب إليه عندما تكتب cd ~
أو cd $HOME
.)
-i
<string>
: دليل الإدخال. هذا هو الدليل الذي يحتوي على ملفات tsv، <scenario>.HiC_libs.tsv
و <scenario>.refs.tsv
. الافتراضي: ./input
.
-o
<string>
: الدليل الجذر للإخراج. سيتم نقل ملفات الإخراج من هذا التشغيل إلى <out_dir>/<scenario>
. الافتراضي: $HOME/MP/out
.
--blast_dir
<string>
: الدليل الذي يحتوي على قواعد بيانات BLAST ( nt.*
و nr.*
) التي يستخدمها MetaPhase للمحاذاة. يمكنك تنزيل هذه الملفات من موقع BLAST. الافتراضي: $HOME/extern/blast
.
--refs_dir
<string>
: الدليل الذي يحتوي على مجموعات الجينوم المرجعية المدرجة في ملف refs.tsv
. سيتم نقل ملفات الإخراج من هذا التشغيل إلى <out_dir>/<scenario>
. الافتراضي: $HOME/MP/refs
.
--use_tblastx
: تبديل. إذا تم ضبطه، فسوف يقوم MetaPhase بإجراء محاذاة BLAST الخاصة به باستخدام tblastx
بدلاً من blastn
- والذي، بدلاً من محاذاة تسلسلات نيوكليوتيدات contigs ضد قاعدة بيانات النيوكليوتيدات، يترجم النيوكليوتيدات إلى أحماض أمينية ويحاذيها مع قاعدة بيانات البروتين. نظرًا لأن تسلسلات البروتين أكثر حفظًا من تسلسلات النيوكليوتيدات، فإن tblastx
يلتقط علاقات تطور أكثر بعدًا - أي على مستوى العائلة أو الجنس بدلاً من الأنواع - وهو ما قد تريده أو لا تريده. tblastx
أيضًا أبطأ بكثير من blastn
.
--force_blast_realign
: تبديل. إذا تم تعيينه، فسوف يتجاهل MetaPhase ويستبدل أي ملفات مخزنة مؤقتًا تصف محاذاة BLAST.
-b
: تبديل. قم بتطبيق التمهيد الإحصائي على مصفوفة الارتباط. بمعنى آخر، بمجرد إنشاء مصفوفة روابط Hi-C (وقبل تطبيعها)، قم بإعادة تشكيل المصفوفة بالاستبدال، مما يؤدي إلى إنشاء مصفوفة جديدة بنفس العدد الإجمالي للارتباطات ولكن مع اختلاف عشوائي في الموضع الدقيق للارتباطات. إذا كنت تريد اختبار قوة نتيجة التجميع، فقم بتشغيل MetaPhase مع -b
عدة مرات وقارن النتائج، والتي يجب أن تكون مختلفة بشكل عشوائي.
--isolated_component_size <integer>
: بعد إنشاء الرسم البياني لاتصال contig من مصفوفة الارتباط، تجاهل أي مكون في الرسم البياني يحتوي على عدد أقل من هذا العدد من contigs. في معظم مجموعات البيانات، تتكون هذه المكونات من ضوضاء لا يمكن وضعها بشكل موثوق في أي نوع، ولأن هذه المكونات لا يمكن أبدًا دمجها مع مكونات أخرى، فقد تؤدي إلى التخلص من الرقم العنقودي الظاهر. ومع ذلك، إذا كانت بيانات رابط Hi-C متفرقة، فقد تحتاج إلى تقليل ذلك لتجنب التخلص من المجموعات الحقيقية. الافتراضي: 100
.
--jarvis_patrick_K <integer>
: قيمة K المستخدمة في خطوة التجميع المسبق لـ Jarvis-Patrick. تعمل القيم الأعلى على زيادة وقت التشغيل ولكنها قد تزيد من الدقة. لفهم هذا الرقم بالتفصيل، انتقل إلى جارفيس وباتريك، "التجميع باستخدام مقياس التشابه بناءً على الجيران القريبين المشتركين"، 1973. الافتراضي: 100
.
--min_cluster_norm <integer>
: الحد الأدنى لقاعدة المجموعة المسموح بها. "قاعدة" contig هي عدد مواقع إنزيم التقييد (RE) التي تحتوي عليها، وقاعدة المجموعة هي مجموع معايير contigs الخاصة بها. يمكن أن يكون لهذه المعلمة تأثير كبير على المخرجات: زيادة min_cluster_norm
ستؤدي إلى زيادة الحد الأدنى لحجم الكتلة الممكن، مما قد يؤدي إلى تدمير المجموعات التي تمثل الأنواع الصغيرة؛ ولكنه يمنع أيضًا تكوين مجموعات صغيرة مزعجة تحتوي فقط على عدد صغير من contigs (2-3) التي غالبًا ما تنتج عن التشويش في البيانات و/أو من contigs المتكررة. إذا كنت تحصل على مجموعة ضخمة تحتوي على معظم contigs الخاصة بك وجميع المجموعات الأخرى صغيرة، فأنت بحاجة إلى زيادة هذا. ضع في اعتبارك أن معيار المجموعة يساوي تقريبًا طولها بوحدات bp مقسومًا على تردد موقع الطاقة المتجددة، لذلك قد يختلف العدد الأمثل باختلاف أنواع الطاقة المتجددة. الافتراضي: 25
.
-merge
: تبديل. تطبيق بعض خوارزميات التجميع التجريبية لدمج مجموعات مستقلة متعددة ناشئة عن مكتبات Hi-C المختلفة. غير مستحسن.
--load_cached_clusters
: تبديل. إذا تم تعيينه، فبدلاً من إجراء التجميع، سيبحث MetaPhase عن ملف مخزن مؤقتًا في <out_dir>/<scenario>.cached_data
الذي يحتوي على نتائج التجميع المحسوبة مسبقًا. سيكون هذا الملف موجودًا إذا تم تشغيل MetaPhase مسبقًا في هذا السيناريو بنفس قيمة -N
كما هو الحال الآن وبدون العلامة --dont_output_cache
. هذه طريقة لتوفير الوقت إذا كنت تريد تحليل نتائج التجميع دون إعادة تشغيل التجميع.
--dont_output_cache
: تبديل. لا تقم بإنشاء (أو الكتابة فوق) ملف ذاكرة التخزين المؤقت للكتلة الذي يمكن تحميله لاحقًا باستخدام --load_cached_clusters
. يتم تجاوز هذا الخيار بواسطة --load_cached_clusters
.
--report_unclustered
: تبديل. إذا تم تعيينها، فإن MetaPhase تنتج تقريرًا نهائيًا عن contigs التي لم يتم تجميعها: ما هي الأنواع التي تتوافق معها، وكم منها غير مجمعة لأنها غير مرتبطة تمامًا، وما إلى ذلك.
--output_cluster_fastas
: تبديل. إذا تم ضبطها، فاكتب الملفات cluster.*.fasta
و unclustered.fasta
في <out_dir>/<scenario>/
. هذه هي ملفات fasta التي تشير إلى كيفية قيام MetaPhase بتجميع contigs.
--output_network_image
: تبديل. إذا تم تعيينه، قم بتشغيل البرنامج النصي Fig2a.R
وقم بإنشاء صورة شبكة عنقودية مثل تلك التي تظهر في الشكل 2A من ورقة MetaPhase.
--output_heatmaps
: تبديل. في حالة التعيين، قم بتشغيل البرنامج النصي MakeClusteringResultHeatmap.R
وقم بإنشاء صور خريطة حرارية مثل تلك التي تظهر في الشكل 2B والشكل S5 من ورقة MetaPhase.
--reorder_clusters_by_refs
: تبديل. إذا تم ضبطه، فسيتم إعادة ترتيب المجموعات بحيث يتم تعظيم الإشارة على أقطار الخرائط الحرارية التي تم إنشاؤها باستخدام --output_heatmaps
. لاحظ أن هذا سيعتمد على الجينومات المرجعية الموجودة في ملف refs.tsv
الخاص بك والترتيب الذي تظهر به في الملف. إذا كنت تريد الحصول على أرقام عنقودية متسقة، فلا تقم بتعيين هذا.
الإخراج الأساسي لـ MetaPhase هو على الشاشة. سيقدم MetaPhase تقارير مطولة عن التقدم المحرز أثناء قيامه بالمعالجة المسبقة ومحاذاة BLAST والتجميع والتحليل اللاحق للتجميع. بافتراض عدم تعطله، ينتج MetaPhase مخططًا رائعًا وسهل الاستخدام لنتائج التجميع الخاصة به. الأعمدة الموجودة في هذا المخطط هي:
رقم الكتلة
عدد contigs في هذه المجموعة
الطول الإجمالي لجميع contigs في هذه المجموعة
الوفرة: تقدير لوفرة الحمض النووي (وليس وفرة الأنواع) لهذه المجموعة. يتم تعريفها على أنها النسبة المئوية لقراءات البندقية التي تتماشى مع contigs في هذه المجموعة. يتطلب ملف SAM/BAM بكثرة، والذي يتطلب حاليًا القرصنة.
مرجع التعددية: مجموعة الجينوم المرجعية (من بين تلك المدرجة في ملف refs.tsv
) والتي تتماشى معها مجموعة من التسلسل
% حقيقيات النوى، % rDNA، % tRNA، % mtDNA: التعليقات التوضيحية المتوقعة لمحتوى التسلسل في هذه المجموعة. استنادًا إلى محاذاة BLAST لقاعدة بيانات BLAST.
تصنيف التعددية: المواضع التصنيفية الأكثر شيوعًا لمحتوى التسلسل في هذه المجموعة. استنادًا إلى محاذاة BLAST لقاعدة بيانات BLAST.
إذا قمت بتعيين --report_unclustered
، فسيقوم MetaPhase أيضًا بإنشاء مخطط أصغر وأبسط بكثير يصف contigs غير المجمعة.
يمكنك إنشاء صور جميلة مثل تلك الموجودة في الشكل 2A و2B من ورقة MetaPhase. لإنشاء صورة الشبكة أو الخريطة الحرارية، قم بتعيين --output_network_image
أو --output_heatmap
على التوالي. يتم إنشاء الملفات بواسطة البرامج النصية Fig2a.R
و MakeClusteringResultHeatmap.R
، على التوالي. هذه نصوص R واضحة إلى حد ما تستخدم ggplot2؛ إذا كنت تريد تعديل مظهر الصور، فما عليك سوى تعديل البرامج النصية. يتم إنشاء هذه الملفات افتراضيًا في $HOME/public_html
؛ قد تحتاج إلى إنشاء هذا الدليل حتى تظهر الملفات.
سيقوم MetaPhase بإنشاء الملفات التالية في <out_dir>/<scenario>
:
assembly.blastn_report
: ملف يمكن قراءته بواسطة الإنسان ويلخص بسهولة محاذاة BLAST لمسودة التجميع إلى قاعدة بيانات nt.
result.human_readable.txt
: ملف يمكن قراءته بواسطة الإنسان ويدرج كل contig في مسودة تجميع الميتاجينوم ويشير إلى كيفية تجميعها.
cluster.*.fasta
و unclustered.fasta
: ملفات Fasta التي تحتوي على contigs في كل مجموعة. يتم إنشاؤه فقط في حالة تشغيلك باستخدام --output_cluster_fastas
.
الدليل الفرعي cached_data
: يحتوي على ملفات ذاكرة التخزين المؤقت التي تصف محاذاة BLAST للجينومات المرجعية (MapToRefs.txt*)؛ محاذاة BLAST لقاعدة بيانات nt (assembly._blast )؛ وتجميع النتائج (مجموعات. ). قد لا تكون هذه الملفات قابلة للقراءة بشكل خاص من قبل الإنسان.
دليل فرعي LACHESIS
: فارغ إلا إذا قمت بتشغيل Lachesis بعد تشغيل MetaPhase (انظر القسم التالي).
كما هو موضح في ورقة MetaPhase، من الممكن تشغيل MetaPhase لإنشاء مجموعات منفصلة لكل نوع، ثم تشغيل LACHESIS لاحقًا لإنشاء سقالات على نطاق الكروموسوم من contigs في تلك المجموعة، وبالتالي إنشاء تجميع عالي الجودة لنوع واحد من لا شيء ولكن البيانات الميتاجينومية. ومع ذلك، تنطبق عدة تحذيرات:
من المحتمل أن ينجح هذا فقط مع حقيقيات النوى، لأن طريقة LACHESIS لا تنطبق حقًا على الجينومات بدائية النواة.
سيتعين عليك معرفة عدد الكروموسومات الخاصة بنوعك، لأن LACHESIS لا يمكنه التنبؤ بأعداد الكروموسومات بدقة كما يمكن لـ MetaPhase التنبؤ بأعداد الأنواع.
سيتعين عليك إعادة محاذاة قراءات Hi-C الخاصة بك مع contigs الموجودة في المجموعة التي تدرسها.
في أنواع الخميرة، يجب الحرص على عدم تجميع كافة contigs التي تحتوي على السنترومير في كروموسوم واحد. سيتعين عليك استخدام خيار LACHESIS CLUSTER_CONTIGS_WITH_CENS
.
يجب أن يكون هناك ملف قابل للتنفيذ يسمى MetaPhase
. اكتب MetaPhase
في سطر الأوامر. إذا تلقيت خطأ مثل "لم يتم العثور على الأمر"، فإما أنك لست في دليل MetaPhase الصحيح، أو أنك لم تكمل عملية التحويل البرمجي بنجاح. إذا كان MetaPhase جاهزًا للتشغيل، فإن كتابة MetaPhase
ستؤدي إلى ظهور PARSE ERROR
وسيصف لك MetaPhase وسيطات سطر الأوامر التي يحتاجها.
إذا حصلت على الخطأ التالي: MetaPhase: error while loading shared libraries: libboost_filesystem.so.1.47.0: cannot open shared object file: No such file or directory
، فأنت بحاجة إلى إضافة الدليل الذي يحتوي على libboost_filesystem.so.1.47.0
إلى متغير البيئة الخاص بك $LD_LIBRARY_PATH
. اكتب هذا الأمر: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<MetaPhase>/include/boost_1_47_0/stage/lib
إذا تعطل MetaPhase، فإن أول شيء يجب عليك فعله هو النظر بعناية في مخرجاته. قد يقدم شرحًا مطولًا للخطأ الذي حدث ويعطيك فكرة جيدة عن كيفية إصلاحه. المشكلة الأكثر شيوعًا هي أنه لا يمكن العثور على أحد ملفات الإدخال أو أنه يحتوي على بيانات لا معنى لها.
قد تتلقى أيضًا "خطأ في التأكيد"، والذي يبدو كما يلي: Assertion ... failed.
وهذا يعني أنه في مرحلة ما من الخوارزمية، واجهت MetaPhase شيئًا محددًا لم تكن تتوقعه. سيأتي خطأ التأكيد مع إشارة إلى الملف ( *.cc
أو *.h
) ورقم السطر الذي حدث فيه الخطأ. حاول النظر إلى هذا السطر في الملف، والذي يجب أن يحتوي على الدالة assert()
. يجب أن تكون هناك بعض التعليقات حول هذا السطر تشرح السبب المحتمل لخطأ التأكيد.
بشكل عام، لقد بذلنا جهدًا قويًا لجعل MetaPhase جزءًا من التعليمات البرمجية جيدة التصميم وحظيت بتعليقات جيدة. إذا كنت معتادًا على لغة C++، فيجب أن تكون قادرًا على البحث في الكود المصدري والحصول على فكرة عما يحدث. نوصي بالبدء بوحدة المستوى الأعلى، MetaPhase.cc
، والعمل من هناك.
بعد تشغيل MetaPhase بشكل صحيح، قم بإلقاء نظرة فاحصة على المخرجات، وخاصة مخطط التقرير. إذا كنت تحصل على نتيجة غريبة - على سبيل المثال، يتم تجميع القليل جدًا من التسلسل، أو يتم تجميع معظم التسلسل في مجموعة واحدة (مشكلة شائعة) - فقد تحتاج إلى ضبط أداء MetaPhase. ألق نظرة فاحصة على القسم D2، "وسيطات سطر الأوامر الاختيارية".
تخضع حزمة برامج MetaPhase وجميع البرامج والوثائق الموجودة بها لحقوق الطبع والنشر © 2013-2014 بواسطة Josh Burton وجامعة واشنطن. جميع الحقوق محفوظة.
يتم توفير هذا البرنامج "كما هو" دون أي ضمان أو ضمان للدعم. جامعة واشنطن ليست مسؤولة عن استخدامها أو سوء استخدامها أو وظائفها. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو أي مسؤولية أخرى تنشأ عن هذا البرنامج أو خارجه أو فيما يتعلق به.
شكرًا لـ Ivan Liachko على جعل مشروع MetaPhase ممكنًا وتوليد جميع بيانات Hi-C التي يستخدمها برنامج MetaPhase.
شكرًا لمايتريا دونهام وجاي شندور على القيادة والإدارة والأفكار.
شكرًا لكاثرين بوشلي، وديفيد فريدريكس، وستيف ساليبانتي، ولورا سيكورو، وأندرو وايزر لمساعدتي بصبر في اختبار MetaPhase واستكشاف الأخطاء وإصلاحها.
شكرًا لـ Aaron McKenna للمساعدة في إتاحة MetaPhase عبر GitHub.
(من Andrew) أنت تمنح المستخدمين تثبيت BOOST جديدًا ومحدودًا قد لا يرغبون في التفاعل مع بقية نظامهم عن طريق إضافته إلى LD_LIBRARY_PATH. اقتراحي هو أن أوصي المستخدم بإضافة دليل include/boost_1_47_0/stage/lib إلى LD_LIBRARY_PATH الخاص به إن أمكن، ولكن أيضًا توفير برنامج نصي مجمّع يقوم بتعيين المتغير البيئي في وقت التشغيل بدلاً من ذلك. إن برنامج Python الذي يتحقق مما إذا كان المسار الصحيح موجودًا في المستخدم LD_LIBRARY_PATH، ويضبطه إذا لم يتم العثور عليه، ثم ينفذ البرنامج، سيكون من السهل حقًا طهيه بسرعة.