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 и метаданные . После ввода этих параметров потратьте несколько минут, просмотрите остальную часть файла конфигурации и перезапишите настройки в соответствии с вашими потребностями. Большинство значений уже предварительно настроены. Файл конфигурации объясняет себя, используя значимые заголовки перед каждым правилом, объясняя цель такого правила и различные параметры, которые может использовать пользователь. Очень важно сохранить отступы файла (не менять табуляции и пробелы), а также названия параметров. Как только у вас появятся действительные значения для этих записей, вы готовы запустить конвейер (перед запуском CASCABEL всегда рекомендуется выполнить «пробный прогон»):
Также обратите внимание на раздел ТИП АНАЛИЗА . Cascabel поддерживает два основных типа анализа: OTU (операционные таксономические единицы) и ASV (варианты последовательностей ампликонов). Здесь вы можете выбрать целевой рабочий процесс, который будет выполнять 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: масштабируемый и универсальный конвейер анализа данных последовательностей ампликонов, обеспечивающий воспроизводимые и документированные результаты. Алехандро Абдала Асбун, Марк Бесселинг, Серджио Бальзано, Джудит ван Блейсвейк, Гарри Витте, Лаура Вильянуэва, Джулия Энгельманн Фронт. Генет.; дои: https://doi.org/10.3389/fgene.2020.489357