Cascabel عبارة عن خط أنابيب مصمم لتشغيل تحليل تسلسل amplicon عبر مكتبات قراءة فردية أو متعددة. الهدف من خط الأنابيب هذا هو إنشاء ملفات إخراج مختلفة تسمح للمستخدم باستكشاف البيانات بطريقة بسيطة وذات معنى، بالإضافة إلى تسهيل التحليل النهائي، استنادًا إلى ملفات الإخراج التي تم إنشاؤها.
تم تصميم CASCABEL لبيانات تسلسلية عالية الإنتاجية قصيرة القراءة. وهو يغطي مراقبة الجودة على ملفات fastq، وتجميع القراءات المزدوجة إلى أجزاء (يمكنه أيضًا التعامل مع بيانات نهاية واحدة)، وتقسيم المكتبات إلى عينات (اختياري)، واختيار OTU وتعيين التصنيف. إلى جانب ملفات الإخراج الأخرى، فإنه سيتم إرجاع جدول OTU.
يتم تنفيذ خط الأنابيب الخاص بنا باستخدام Snakemake كمحرك لإدارة سير العمل ويسمح بتخصيص التحليلات من خلال تقديم العديد من الخيارات لمعظم الخطوات. يمكن أن يستفيد خط الأنابيب من عقد ومقاييس حوسبة متعددة من أجهزة الكمبيوتر الشخصية إلى خوادم الحوسبة. التحليلات والنتائج قابلة للتكرار بالكامل وموثقة في تقرير بتنسيق html وpdf اختياري.
الإصدار الحالي: 6.1.0
الطريقة الأسهل والموصى بها لتثبيت Cascabel هي عبر Conda . أسرع طريقة للحصول على Conda هي تثبيت Miniconda، وهو إصدار مصغر من Anaconda يتضمن conda وتوابعها فقط.
لتثبيت conda أو miniconda، يرجى الاطلاع على البرنامج التعليمي التالي (مستحسن)، أو إذا كنت تعمل مع نظام التشغيل Linux، يمكنك تجربة ما يلي:
تنزيل المثبت:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
قم بتنفيذ البرنامج النصي للتثبيت واتبع التعليمات.
bash Miniconda3-latest-Linux-x86_64.sh
لسوء الحظ، لدى Cascabel العديد من التبعيات وتوجد تعارضات فيما بينها في أحدث إصدارات Conda، ولكن مع conda v 4.6.14 لاحظنا أن التثبيت يمكن أن يعمل بسلاسة. وللقيام بذلك، نحتاج إلى تقليل إصدار conda باستخدام الأمر التالي:
conda install conda=4.6.14
بمجرد تثبيت conda ، نكون مستعدين لاستنساخ المشروع أو تنزيله.
يمكنك استنساخ المشروع:
git clone https://github.com/AlejandroAb/CASCABEL.git
أو قم بتحميله من هذا المستودع:
wget https://github.com/AlejandroAb/CASCABEL/archive/master.zip
بعد تنزيل المستودع أو استنساخه، قم بنقل القرص المضغوط إلى دليل "CASCABEL" وهناك قم بتنفيذ الأمر التالي لإنشاء بيئة CASCABEL:
conda env create --name cascabel --file environment.yaml
الآن بعد أن قمت بإنشاء بيئة cascabel، يمكنك تثبيت Snakemake باتباع هذه التعليمات عبر الإنترنت أو تنفيذ الأمر التالي:
conda install -c bioconda -c conda-forge snakemake
يتم تحميل جميع التبعيات التي يتطلبها CASCABEL باستثناء Snakemake وبالتالي Python في بيئة conda واحدة. وبهذا المعنى، يستخدم CASCABEL matplotlib لإنشاء بعض المخططات، لذلك يلزم تثبيت هذه المكتبة قبل تحميل البيئة. الطريقة الموصى بها للقيام بذلك هي اتباع دليل التثبيت أو يمكنك أيضًا تجربة ما يلي:
pip install matplotlib --user
*فكر في استخدام العلامة --user كما هو مذكور أعلاه، إذا كنت تقوم بالتثبيت المحلي أو إذا لم يكن لديك حقوق sudo
بعد تثبيت Snakemake وMatplotlib يمكننا تفعيل بيئتنا الجديدة.
conda activate cascabel
بعد تنشيط البيئة، من الممكن ألا يكون Snakemake موجودًا في المسار الخاص بك بعد الآن، في مثل هذه الحالة، قم فقط بتصدير دليل حاوية Snakemake. أي:
export PATH=$PATH:/path/to/miniconda3/bin
ما عليك سوى اتباع هذه الخطوة الإضافية إذا كنت تخطط لتشغيل Cascabel باستخدام سير عمل asv .
تم الإبلاغ عن بعض المشكلات أثناء تثبيت دادا2 داخل كوندا، لذلك نحتاج إلى تنفيذ خطوة أخيرة أخرى لتثبيت دادا2
أدخل إلى R Shell (فقط اكتب R
) وقم بتنفيذ الأمر التالي:
BiocManager::install("dada2", version = "3.10")
*يرجى ملاحظة أن برنامج BiocManager يجب أن يكون مثبتًا بالفعل، لذا ما عليك سوى تنفيذ الأمر السابق. يمكنك أيضًا العثور على مزيد من المعلومات في دليل تثبيت dada2.
نحن ندرك أن هذا ليس التثبيت الأسهل، لذلك نعمل على حاوية التفرد، وهي نفس الحاوية التي نأمل أن تكون متاحة قريبًا.
شكرا لتفهمك!
ملفات الإدخال المطلوبة:
ملفات الإخراج المتوقعة الرئيسية للتحليل النهائي
تشغيل كاسكابيل
يتم تحديد جميع المعلمات وسلوك سير العمل من خلال ملف التكوين، وبالتالي فإن أسهل طريقة لتشغيل خط الأنابيب هي ملء بعض المعلمات المطلوبة في هذا الملف.
# ------------------------------------------------------------------------------#
# Project Name #
# ------------------------------------------------------------------------------#
# The name of the project for which the pipeline will be executed. This should #
# be the same name used as the first parameter on init_sample.sh script (if #
# used for multiple libraries #
# ------------------------------------------------------------------------------#
PROJECT : " My_CASCABEL_Project "
# ------------------------------------------------------------------------------#
# LIBRARIES/SAMPLES #
# ------------------------------------------------------------------------------#
# SAMPLES/LIBRARIES you want to include in the analysis. #
# Use the same library names as with the init_sample.sh script. #
# Include each library name surrounded by quotes, and comma separated. #
# i.e LIBRARY: ["LIB_1","LIB_2",..."LIB_N"] #
# LIBRARY_LAYOUT: Configuration of the library; all the libraries/samples #
# must have the same configuration; use: #
# "PE" for paired-end reads [Default]. #
# "SE" for single-end reads. #
# ------------------------------------------------------------------------------#
LIBRARY : ["EXP1"]
LIBRARY_LAYOUT : " PE "
# ------------------------------------------------------------------------------#
# INPUT FILES #
# ------------------------------------------------------------------------------#
# To run Cascabel for multiple libraries you can provide an input file, tab #
# separated with the following columns: #
# - Library: Name of the library (this have to match with the values entered #
# in the LIBRARY variable described above). #
# - Forward reads: Full path to the forward reads. #
# - Reverse reads: Full path to the reverse reads (only for paired-end). #
# - metadata: Full path to the file with the information for #
# demultiplexing the samples (only if needed). #
# The full path of this file should be supplied in the input_files variable, #
# otherwise, you have to enter the FULL PATH for both: the raw reads and the #
# metadata file (barcode mapping file). The metadata file is only needed if #
# you want to perform demultiplexing. #
# If you want to avoid the creation of this file a third solution is available #
# using the script init_sample.sh. More info at the project Wiki: #
# https://github.com/AlejandroAb/CASCABEL/wiki#21-input-files #
# #
# ----------------------------- PARAMS -----------------------------#
# #
# - fw_reads: Full path to the raw reads in forward direction (R1) #
# - rw_reads: Full path to the raw reads in reverse direction (R2) #
# - metadata: Full path to the metadata file with barcodes for each sample #
# to perform library demultiplexing #
# - input_files: Full path to a file with the information for the library(s) #
# #
# ** Please supply only one of the following: #
# - fw_reads, rv_reads and metadata #
# - input_files #
# - or use init_sample.sh script directly #
# ------------------------------------------------------------------------------#
fw_reads : " /full/path/to/forward.reads.fq "
rv_reads : " /full/path/to/reverse.reads.fq "
metadata : " /full/path/to/metadata.barcodes.txt "
# or
input_files : " /full/path/to/input_reference.txt "
# ------------------------------------------------------------------------------#
# ASV_WF: Binned qualities and Big data workflow #
# ------------------------------------------------------------------------------#
# For fastq files with binned qualities (e.g. NovaSeq and NextSeq) the error #
# learning process within dada2 can be affected, and some data scientists #
# suggest that enforcing monotonicity could be beneficial for the analysis. #
# In this section, you can modify key parameters to enforce monotonicity and #
# also go through a big data workflow when the number of reads may exceed the #
# physical memory limit.
# More on binned qualities: https://www.illumina.com/content/dam/illumina-marketing/documents/products/technotes/technote_understanding_quality_scores.pdf
# You can also follow this excellent thread about binned qualities and Dada2: https://forum.qiime2.org/t/novaseq-and-dada2-incompatibility/25865/8
# ------------------------------------------------------------------------------#
binned_q_scores : " F " # Binned quality scores.Set this to "T" if you want to enforce monotonicity
big_data_wf : " F " # Set to true when your sequencing run contains more than 10^9 reads (depends on RAM availability!)
# ------------------------------------------------------------------------------#
# RUN #
# ------------------------------------------------------------------------------#
# Name of the RUN - Only use alphanumeric characters and don't use spaces. #
# This parameter helps the user to execute different runs (pipeline executions)#
# with the same input data but with different parameters (ideally). #
# The RUN parameter can be set here or remain empty, in the latter case, the #
# user must assign this value via the command line. #
# i.e: --config RUN=run_name #
# ------------------------------------------------------------------------------#
RUN : " My_First_run "
# ------------------------------------------------------------------------------#
# ANALYSIS TYPE #
# rules: #
# ------------------------------------------------------------------------------#
# Cascabel supports two main types of analysis: #
# 1) Analysis based on traditional OTUs (Operational Taxonomic Units) which #
# are mainly generated by clustering sequences based on a sheared #
# similarity threshold. #
# 2) Analysis based on ASV (Amplicon sequence variant). This kind of analysis #
# deal also with the errors on the sequence reads such that true sequence #
# variants can be resolved, down to the level of single-nucleotide #
# differences. #
# #
# ----------------------------- PARAMS -----------------------------#
# #
# - ANALYSIS_TYPE "OTU" or "ASV". Defines the type analysis #
# ------------------------------------------------------------------------------#
ANALYSIS_TYPE : " OTU "
لمزيد من المعلومات حول كيفية توفير هذه البيانات، يرجى اتباع الرابط للحصول على تعليمات مفصلة
كما ترون في الجزء السابق من ملف التكوين (config.yaml)، فإن المعلمات المطلوبة لبدء CASCABEL هي: PROJECT و LIBRARY و RUN و fw_reads و rv_reads و metadata . بعد إدخال هذه المعلمات، خذ بضع دقائق واستعرض بقية ملف التكوين واستبدل الإعدادات وفقًا لاحتياجاتك. تم بالفعل تكوين معظم القيم مسبقًا. يشرح ملف التكوين نفسه باستخدام رؤوس ذات معنى قبل كل قاعدة، موضحًا الهدف من هذه القاعدة والمعلمات المختلفة التي يمكن للمستخدم استخدامها. من المهم جدًا الحفاظ على المسافة البادئة للملف (لا تغير علامات التبويب والمسافات)، بالإضافة إلى اسم المعلمات. بمجرد حصولك على قيم صالحة لهذه الإدخالات، تصبح جاهزًا لتشغيل التدفق (قبل بدء تشغيل CASCABEL، يعد إجراء "تجربة تجريبية" دائمًا ممارسة جيدة):
يرجى أيضًا ملاحظة قسم نوع التحليل . يدعم Cascabel نوعين رئيسيين من التحليل، OTUs (وحدات التصنيف التشغيلية) وASVs (متغيرات تسلسل Amplicon)، هنا يمكنك تحديد سير العمل المستهدف الذي سينفذه Cascabel. لمزيد من المعلومات يرجى الرجوع إلى قسم نوع التحليل
snakemake --configfile config.yaml
اختياريًا، يمكنك تحديد نفس المعلمات* عبر علامة --config، وليس داخل ملف config.yaml:
snakemake --configfile config.yaml --config PROJECT="My_CASCABEL_Project" RUN="My_First_run" fw_reads="//full/path/to/forward.reads.fq" rv_reads="/full/path/to/reverse.reads.fq" metadata="full/path/to/metadata.barcodes.txt"
*باستثناء المكتبة، حيث تم تعريفها كمصفوفة، لذلك يجب ملؤها داخل ملف التكوين
للحصول على دليل كامل حول كيفية إعداد CASCABEL واستخدامه، يرجى زيارة الموقع الرسمي للمشروع
نحن نوفر بعض ملفات التكوين "المعبأة مسبقًا" للتكوينات الرئيسية الممكنة مثل القراءات المزدوجة والمزدوجة ذات الباركود الفردي لتحليل OTU وASV. ننصح بشدة باتخاذ اختيارات مستنيرة بشأن إعدادات المعلمات التي تتوافق مع الاحتياجات الفردية للتجربة ومجموعة البيانات.
من أجل اختبار المسار، نقترح أيضًا تجربة تشغيله باستخدام بيانات اختبار CASCABEL
مثال على ملف تعيين الباركود
Cascabel: خط أنابيب لتحليل بيانات تسلسل amplicon قابل للتطوير ومتعدد الاستخدامات يقدم نتائج موثقة وقابلة للتكرار. أليخاندرو عبد الله أصبون، مارك أ. بيسيلنج، سيرجيو بالزانو، جوديث فان بليسفيك، هاري ويت، لورا فيلانويفا، جوليا سي إنجلمان فرونت. جينيت. دوي: https://doi.org/10.3389/fgene.2020.489357