Cascabel adalah pipeline yang dirancang untuk menjalankan analisis rangkaian amplikon di satu atau beberapa pustaka baca. Tujuan dari pipeline ini adalah untuk membuat file keluaran berbeda yang memungkinkan pengguna menjelajahi data dengan cara yang sederhana dan bermakna, serta memfasilitasi analisis hilir, berdasarkan file keluaran yang dihasilkan.
CASCABEL dirancang untuk membaca pendek data urutan throughput tinggi. Ini mencakup kontrol kualitas pada file fastq, merakit pembacaan berpasangan menjadi fragmen (juga dapat menangani data ujung tunggal), membagi perpustakaan menjadi sampel (opsional), pengambilan OTU, dan penetapan taksonomi. Selain file keluaran lainnya, ini akan mengembalikan tabel OTU.
Saluran pipa kami diimplementasikan dengan Snakemake sebagai mesin manajemen alur kerja dan memungkinkan penyesuaian analisis dengan menawarkan beberapa pilihan untuk sebagian besar langkah. Pipeline ini dapat memanfaatkan beberapa node komputasi dan skala dari komputer pribadi hingga server komputasi. Analisis dan hasilnya sepenuhnya dapat direproduksi dan didokumentasikan dalam laporan html dan pdf opsional.
Versi saat ini: 6.1.0
Cara termudah dan direkomendasikan untuk menginstal Cascabel adalah melalui Conda . Cara tercepat untuk mendapatkan Conda adalah dengan menginstal Miniconda, versi mini Anaconda yang hanya menyertakan conda dan dependensinya.
Untuk menginstal conda atau miniconda silakan lihat tutorial berikut (disarankan) atau jika Anda bekerja dengan OS Linux, Anda dapat mencoba yang berikut ini:
Unduh penginstal:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Jalankan skrip instalasi dan ikuti instruksinya.
bash Miniconda3-latest-Linux-x86_64.sh
Sayangnya Cascabel memiliki banyak dependensi dan rilis Conda terbaru menemukan konflik di antara dependensi tersebut, namun dengan conda v 4.6.14 kami melihat bahwa instalasi dapat berjalan dengan lancar. Untuk melakukannya, kita perlu menurunkan versi conda dengan perintah berikut:
conda install conda=4.6.14
Setelah conda diinstal, kami siap mengkloning atau mengunduh proyek.
Anda dapat mengkloning proyek:
git clone https://github.com/AlejandroAb/CASCABEL.git
Atau unduh dari repositori ini:
wget https://github.com/AlejandroAb/CASCABEL/archive/master.zip
Setelah mengunduh atau mengkloning repositori, cd ke direktori "CASCABEL" dan jalankan perintah berikut untuk membuat lingkungan CASCABEL:
conda env create --name cascabel --file environment.yaml
Sekarang setelah lingkungan cascabel Anda dibuat, Anda dapat menginstal Snakemake dengan mengikuti bantuan online ini atau jalankan perintah berikut:
conda install -c bioconda -c conda-forge snakemake
Semua dependensi yang diperlukan oleh CASCABEL kecuali oleh Snakemake dan dengan demikian Python dimuat dalam satu lingkungan conda. Dalam hal ini, CASCABEL menggunakan matplotlib untuk menghasilkan beberapa grafik, oleh karena itu perpustakaan ini perlu diinstal sebelum memuat lingkungan. Cara yang disarankan untuk melakukannya adalah dengan mengikuti panduan instalasi atau Anda juga dapat mencoba dengan:
pip install matplotlib --user
*Pertimbangkan untuk menggunakan flag --user seperti di atas, jika Anda melakukan instalasi lokal atau jika Anda tidak memiliki hak sudo
Setelah menginstal Snakemake dan Matplotlib kita dapat mengaktifkan lingkungan baru kita.
conda activate cascabel
Setelah mengaktifkan lingkungan, ada kemungkinan Snakemake tidak lagi ada di PATH Anda, dalam hal ini cukup ekspor direktori bin Snakemake. yaitu:
export PATH=$PATH:/path/to/miniconda3/bin
Anda hanya perlu mengikuti satu langkah lagi jika Anda berencana menjalankan Cascabel dengan alur kerja asv .
Ada beberapa masalah yang dilaporkan saat menginstal dada2 dalam conda, oleh karena itu kita perlu melakukan satu langkah terakhir lagi untuk menginstal dada2
Masuk ke R shell (ketik saja R
) dan jalankan perintah berikut:
BiocManager::install("dada2", version = "3.10")
*Harap diperhatikan bahwa BiocManager seharusnya sudah terinstal, jadi Anda hanya perlu menjalankan perintah sebelumnya. Anda juga dapat menemukan informasi lebih lanjut di panduan instalasi dada2.
Kami menyadari bahwa ini bukan instalasi termudah, oleh karena itu kami sedang mengerjakan wadah singularitas, yang kami harap dapat segera tersedia.
Terima kasih atas pengertian Anda!
File masukan yang diperlukan:
File keluaran utama yang diharapkan untuk analisis hilir
Jalankan Cascabel
Semua parameter dan perilaku alur kerja ditentukan melalui file konfigurasi, oleh karena itu cara termudah untuk menjalankan pipeline adalah dengan mengisi beberapa parameter yang diperlukan pada file tersebut.
# ------------------------------------------------------------------------------#
# 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 "
Untuk informasi lebih lanjut tentang cara menyediakan data ini, silakan ikuti tautan untuk petunjuk rinci
Seperti yang Anda lihat pada bagian sebelumnya dari file konfigurasi (config.yaml), parameter yang diperlukan untuk memulai CASCABEL adalah: PROJECT , LIBRARY , RUN , fw_reads , rv_reads dan metadata . Setelah memasukkan parameter ini, luangkan waktu beberapa menit dan periksa sisa file konfigurasi dan timpa pengaturan sesuai kebutuhan Anda. Sebagian besar nilai sudah dikonfigurasikan sebelumnya. File konfigurasi menjelaskan dirinya sendiri dengan menggunakan header yang bermakna sebelum setiap aturan, menjelaskan tujuan aturan tersebut dan berbagai parameter yang dapat digunakan pengguna. Sangat penting untuk menjaga indentasi file (jangan mengubah tab dan spasi), serta nama parameternya. Setelah Anda memiliki nilai yang valid untuk entri ini, Anda siap menjalankan pipeline (sebelum memulai CASCABEL selalu merupakan praktik yang baik untuk melakukan "dry run"):
Juga, harap perhatikan bagian JENIS ANALISIS . Cascabel, mendukung dua jenis analisis utama, OTUs (Operational Taxonomic Units) dan ASVs (Amplicon Sequence Variants), di sini Anda dapat memilih target alur kerja yang akan dijalankan Cascabel. Untuk informasi lebih lanjut silakan lihat bagian Jenis analisis
snakemake --configfile config.yaml
Secara opsional, Anda dapat menentukan parameter yang sama* melalui tanda --config, bukan di dalam file 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"
*Kecuali PERPUSTAKAAN, karena dinyatakan sebagai array, oleh karena itu harus diisi dalam file konfigurasi
Untuk panduan lengkap tentang cara mengatur dan menggunakan CASCABEL, silakan kunjungi wiki proyek resmi
Kami menyediakan beberapa file konfigurasi "yang telah diisi sebelumnya" untuk kemungkinan konfigurasi utama seperti pembacaan ujung berpasangan dengan kode batang ganda dan tunggal untuk analisis OTU dan ASV. Kami sangat menyarankan agar Anda membuat pilihan yang tepat tentang pengaturan parameter yang sesuai dengan kebutuhan masing-masing eksperimen dan kumpulan data.
Untuk menguji pipeline kami juga menyarankan untuk mencoba menjalankannya dengan data pengujian CASCABEL
Contoh file pemetaan barcode
Cascabel: saluran analisis data rangkaian amplikon yang skalabel dan serbaguna memberikan hasil yang dapat direproduksi dan didokumentasikan. Alejandro Abdala Asbun, Marc A Besseling, Sergio Balzano, Judith van Bleijswijk, Harry Witte, Laura Villanueva, Julia C Engelmann Front. Genet.; doi: https://doi.org/10.3389/fgene.2020.489357