基因组自动化组装
自动化组装流程基于snakemake进行
序列文件准备
设置工作目录为path,序列文件放在path/reads目录下,并按照如下格式进行重命名,每个样本的双端序列放在对应的文件夹中。

image

image

image
在序列文件比较多的时候,可以使用sort.py进行分类,自动将其放入对应的文件夹中。sort.py放在序列文件所在的目录下,运行即可。
#!/usr/bin/python3
import os
import shutil
# 获取当前工作目录
current_dir = os.getcwd()
# 遍历当前目录下的文件
for file in os.listdir(current_dir):
if file.endswith(".fastq.gz"):
prefix = file.split(".")[0] # 获取文件名前缀
if not os.path.exists(prefix): # 如果文件夹不存在则创建
os.makedirs(prefix)
shutil.move(file, os.path.join(current_dir, prefix, file)) # 移动文件到对应文件夹
流程运行
根据样品序列的命名规则,修改SG_assembly.smk文件中的内容,需要修改rule fastp的input部分,使其与输入文件名称相匹配。

image
然后需要试运行流程,查看各个部分输入文件和输出文件能否正常衔接。试运行成功后即可正式开始流程。
# 试运行
snakemake -s SG_assembly.smk -np
# 正式运行
snakemake -s SG_assembly.smk -p -c 4
配置工作目录
所有在Snakefile中的路径都是相对于执行snakemake命令的目录解释的,因此在默认情况下,其他目录都需要与snakemake_file在同一个文件夹下。为了便于操作,也可指定工作目录运行,需要注意如下几点:
①工作目录下包含reads,results以及config文件夹,并对config.yaml进行修改,并修改序列文件所在的路径,该路径为对于工作目录的相对路径
samples_path: reads
unqualified: 10
read_length: 40
②工作流程中的snakemake_file以及scripts,modules,可保持在原位置不变,在该目录下运行SG_assembly.smk时程序仍然会在当前目录下读取这些文件。
③开始运行流程,通过-d 参数指定工作目录的绝对路径
# 试运行
snakemake -s SG_assembly.smk -np -d path
# 正式运行
snakemake -s SG_assembly.smk -p -c 4 -d path