metaGEM 开源项目教程
1. 项目的目录结构及介绍
metaGEM 项目的目录结构如下:
metaGEM/
├── LICENSE
├── README.md
├── config
│ ├── config.yaml
│ ├── samples.tsv
│ └── tasks.tsv
├── envs
│ ├── metaGEM.yaml
│ └── scripts
│ ├── check_samples.sh
│ ├── download_data.sh
│ ├── make_samples.sh
│ ├── prepare_data.sh
│ ├── run_all.sh
│ └── submit_slurm.sh
├── notebooks
│ ├── 01_data_preprocessing.ipynb
│ ├── 02_assembly.ipynb
│ ├── 03_binning.ipynb
│ ├── 04_annotation.ipynb
│ ├── 05_quantification.ipynb
│ └── 06_visualization.ipynb
├── scripts
│ ├── check_samples.py
│ ├── download_data.py
│ ├── make_samples.py
│ ├── prepare_data.py
│ ├── run_all.py
│ └── submit_slurm.py
└── Snakefile
目录结构介绍
LICENSE
: 项目许可证文件。README.md
: 项目说明文档。config
: 配置文件目录,包含项目的主要配置文件和样本信息。envs
: 环境配置文件目录,包含 Conda 环境配置文件和脚本。notebooks
: Jupyter 笔记本目录,包含数据处理、组装、分箱、注释、定量和可视化的笔记本。scripts
: 脚本目录,包含用于数据检查、下载、样本生成、数据准备、运行所有任务和提交 SLURM 作业的脚本。Snakefile
: Snakemake 工作流配置文件。
2. 项目的启动文件介绍
项目的启动文件是 Snakefile
。这个文件定义了整个工作流的规则和步骤。通过运行 Snakefile
,可以自动化执行数据处理、组装、分箱、注释、定量和可视化等一系列任务。
Snakefile 介绍
Snakefile
使用 Snakemake 工作流管理系统,定义了一系列规则(rules),每个规则描述了一个具体的任务或步骤。这些规则通过输入、输出和执行命令来定义任务的具体内容。
例如:
rule download_data:
input:
"config/samples.tsv"
output:
"data/raw/{sample}.fastq.gz"
shell:
"scripts/download_data.py {input} {output}"
这个规则定义了数据下载任务,输入是样本信息文件,输出是下载的原始数据文件,执行命令是调用 download_data.py
脚本。
3. 项目的配置文件介绍
项目的配置文件主要位于 config
目录下,包括 config.yaml
、samples.tsv
和 tasks.tsv
。
config.yaml
config.yaml
是项目的主要配置文件,包含了各种参数和设置,如数据路径、工具路径、参数设置等。
例如:
data_path: "data/raw"
output_path: "results"
tools:
assembly: "megahit"
binning: "metabat2"
parameters:
threads: 8
memory: 16G
samples.tsv
samples.tsv
是样本信息文件,包含了样本的详细信息,如样本名称、数据路径等。
例如:
sample_id data_path
sample1 data/raw/sample1.fastq.gz
sample2 data/raw/sample2.fastq.gz
tasks.tsv
tasks.tsv
是任务信息文件,包含了需要执行的任务列表和相关参数。
例如:
task_id rule parameters
task1 download_data threads=8
task2 assembly threads=8,memory=16G
通过这些配置文件,可以灵活地配置和调整项目的运行参数和任务列表。