Cascabel เป็นไปป์ไลน์ที่ออกแบบมาเพื่อเรียกใช้การวิเคราะห์ลำดับแอมพลิคอนในไลบรารีการอ่านเดียวหรือหลายไลบรารี วัตถุประสงค์ของไปป์ไลน์นี้คือการสร้างไฟล์เอาต์พุตต่างๆ ซึ่งช่วยให้ผู้ใช้สามารถสำรวจข้อมูลด้วยวิธีที่เรียบง่ายและมีความหมาย พร้อมทั้งอำนวยความสะดวกในการวิเคราะห์ดาวน์สตรีม โดยอิงตามไฟล์เอาต์พุตที่สร้างขึ้น
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 ไม่อยู่ใน PATH ของคุณอีกต่อไป ในกรณีนี้ ให้ส่งออกไดเร็กทอรี bin ของ Snakemake เช่น:
export PATH=$PATH:/path/to/miniconda3/bin
คุณจะต้องปฏิบัติตามอีกหนึ่งขั้นตอนนี้หากคุณวางแผนที่จะรัน Cascabel ด้วย เวิร์กโฟลว์ asv
มีปัญหาบางอย่างรายงานขณะติดตั้ง dada2 ภายใน conda ดังนั้นเราจำเป็นต้องดำเนินการขั้นตอนสุดท้ายอีกหนึ่งขั้นตอนเพื่อติดตั้ง dada2
เข้าสู่ R เชลล์ (เพียงพิมพ์ 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 รองรับการวิเคราะห์สองประเภทหลัก ได้แก่ OTU (หน่วยอนุกรมวิธานการดำเนินงาน) และ ASV (Amplicon Sequence Variants) ที่นี่คุณสามารถเลือกเวิร์กโฟลว์เป้าหมายที่ 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"
*ยกเว้น LIBRARY เนื่องจากมีการประกาศเป็นอาร์เรย์ ดังนั้นจึงต้องกรอกข้อมูลลงในไฟล์กำหนดค่า
สำหรับคำแนะนำฉบับสมบูรณ์เกี่ยวกับวิธีการตั้งค่าและใช้งาน CASCABEL โปรดไปที่วิกิโครงการอย่างเป็นทางการ
เราจัดหาไฟล์การกำหนดค่า "ที่เติมไว้ล่วงหน้า" บางส่วนสำหรับการกำหนดค่าหลักที่เป็นไปได้ เช่น การอ่านปลายคู่แบบบาร์โค้ดคู่และเดี่ยวสำหรับการวิเคราะห์ OTU และ ASV เราขอแนะนำอย่างยิ่งให้เลือกตัวเลือกที่มีข้อมูลครบถ้วนเกี่ยวกับการตั้งค่าพารามิเตอร์ที่ตรงกับความต้องการส่วนบุคคลของการทดสอบและชุดข้อมูล
เพื่อทดสอบไปป์ไลน์ เราแนะนำให้ลองรันด้วยข้อมูลการทดสอบของ CASCABEL
ตัวอย่างไฟล์การจับคู่บาร์โค้ด
Cascabel: ไปป์ไลน์การวิเคราะห์ข้อมูลลำดับแอมพลิคอนที่ปรับขนาดได้และอเนกประสงค์ ซึ่งให้ผลลัพธ์ที่สามารถทำซ้ำและเป็นเอกสารได้ อเลฮานโดร อับดาลา อัสบุน, มาร์ค เอ เบสเซลลิ่ง, แซร์คิโอ บัลซาโน่, จูดิธ ฟาน ไบลจ์สไวค์, แฮร์รี วิทเท, ลอร่า วิลลานูเอวา, จูเลีย ซี เองเกลมันน์ ฟรอนต์ ยีน.; ดอย: https://doi.org/10.3389/fgene.2020.489357