Cascabel 은 단일 또는 다중 읽기 라이브러리에서 앰플리콘 서열 분석을 실행하도록 설계된 파이프라인입니다. 이 파이프라인의 목적은 사용자가 간단하고 의미 있는 방식으로 데이터를 탐색할 수 있을 뿐만 아니라 생성된 출력 파일을 기반으로 다운스트림 분석을 용이하게 할 수 있는 다양한 출력 파일을 생성하는 것입니다.
CASCABEL은 짧은 읽기 처리량이 많은 시퀀스 데이터를 위해 설계되었습니다. fastq 파일의 품질 관리, 페어드 엔드 읽기를 조각으로 조립(단일 엔드 데이터도 처리할 수 있음), 라이브러리를 샘플로 분할(선택 사항), OTU 선택 및 분류 할당을 다룹니다. 다른 출력 파일 외에도 OTU 테이블을 반환합니다.
우리 파이프라인은 워크플로우 관리 엔진으로 Snakemake를 사용하여 구현되었으며 대부분의 단계에 대해 여러 가지 선택 사항을 제공하여 분석을 사용자 정의할 수 있습니다. 파이프라인은 여러 컴퓨팅 노드를 활용하고 개인용 컴퓨터에서 컴퓨팅 서버까지 확장할 수 있습니다. 분석 및 결과는 완전히 재현 가능하며 HTML 및 선택적 PDF 보고서로 문서화됩니다.
현재 버전: 6.1.0
Cascabel을 설치하는 가장 쉽고 권장되는 방법은 Conda를 사용하는 것입니다. Conda를 얻는 가장 빠른 방법은 conda와 해당 종속성만 포함하는 Anaconda의 미니 버전인 Miniconda를 설치하는 것입니다.
conda 또는 miniconda를 설치하려면 다음 튜토리얼(권장)을 참조하거나 Linux OS를 사용하는 경우 다음을 시도해 볼 수 있습니다.
설치 프로그램을 다운로드합니다:
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
Snakemake와 Python을 제외하고 CASCABEL에 필요한 모든 종속성은 하나의 conda 환경에 로드됩니다. 이러한 의미에서 CASCABEL은 일부 차트를 생성하기 위해 matplotlib를 사용하므로 환경을 로드하기 전에 이 라이브러리를 설치해야 합니다. 권장되는 방법은 설치 가이드를 따르거나 다음을 시도해 볼 수도 있습니다.
pip install matplotlib --user
*로컬 설치를 수행 중이거나 sudo 권한이 없는 경우 위와 같이 --user 플래그를 사용하는 것이 좋습니다.
Snakemake와 Matplotlib를 설치한 후 새로운 환경을 활성화할 수 있습니다.
conda activate cascabel
환경을 활성화한 후 Snakemake가 더 이상 PATH에 없을 수 있습니다. 이 경우 Snakemake의 bin 디렉터리를 내보내면 됩니다. 즉:
export PATH=$PATH:/path/to/miniconda3/bin
asv 워크플로 로 Cascabel을 실행하려는 경우 이 한 단계만 더 수행하면 됩니다.
conda 내에서dada2를 설치하는 동안 보고된 몇 가지 문제가 있으므로 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을 시작하기 전에 항상 "모의 실행"을 수행하는 것이 좋습니다).
또한 ANALYSIS TYPE(분석 유형) 섹션을 확인하세요. Cascabel은 OTU(Operational Taxonomic Units)와 ASV(Amplicon Sequence Variants)라는 두 가지 주요 분석 유형을 지원합니다. 여기에서 Cascabel이 실행할 대상 워크플로를 선택할 수 있습니다. 자세한 내용은 분석 유형 섹션을 참조하세요.
snakemake --configfile config.yaml
선택적으로 config.yaml 파일 내에서가 아니라 --config 플래그를 통해 동일한 매개변수*를 지정할 수 있습니다.
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: 재현 가능하고 문서화된 결과를 제공하는 확장 가능하고 다양한 앰플리콘 서열 데이터 분석 파이프라인입니다. Alejandro Abdala Asbun, Marc A Besseling, Sergio Balzano, Judith van Bleijswijk, Harry Witte, Laura Villanueva, Julia C Engelmann Front. 그 가죽.; 도이: https://doi.org/10.3389/fgene.2020.489357