连续两次求贤令:曾经我给你带来了十万用户,但现在祝你倒闭,以及 生信技能树知识整理实习生招募,让我走大运结识了几位优秀小伙伴!有做ngs实战整理的,也有做临床数据挖掘算法工具介绍的。前面分享了:Snakemake+RMarkdown定制你的分析流程和报告,今天也是一个类似的流程介绍:
下面是笔记原文
一.简介
“GATK Best Practices” 是最广泛的变异位点筛查方法。
目前已经发展很多基于GATK4标准找变异方法的自动化工作流程,其中oVarFflow是其中之一。oVarFflow的工作流程如下图所示:
相比其他的流程软件,oVarFflow的优点有:
这里我主要演示如何一键运行oVarFlow 找变异流程。对一个标准的WES双端测序的fastq文件,整个流程运行时间大概是6小时左右。
cd $HOME
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
## 下载安装conda
## 设置清华镜像作为频道源,也可以使用其它镜像o
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda info
## 查询频道是否设置好
## 新建工作目录并下载安装软件
mkdir -p $HOME/project_dir/conda_env
wget -c https://gitlab.com/computational-biology/ovarflow/-/blob/master/OVarFlow_src/OVarFlow_dependencies_mini.yml
## 创建conda小环境
conda create --prefix $HOME/project_dir/conda_env
## 安装软件
conda env update --prefix $HOME/project_dir/conda_env --file OVarFlow_dependencies_mini.yml
## 激活小环境
conda activate $HOME/project_dir/conda_env
建立工作目录
## 新建并进入工作目录
mkdir -p $HOME/project_dir/variant_calling
cd $HOME/project_dir/variant_calling
## 下载脚本文件
wget -c https://gitlab.com/computational-biology/ovarflow/-/raw/master/OVarFlow_src/Snakefile?inline=false
wget -c https://gitlab.com/computational-biology/ovarflow/-/raw/master/OVarFlow_src/Snakefile_OVarFlow2?inline=false
wget -P ./scripts https://gitlab.com/computational-biology/ovarflow/-/blob/master/OVarFlow_src/scripts/average_coverage.awk
wget -P ./scripts https://gitlab.com/computational-biology/ovarflow/-/blob/master/OVarFlow_src/scripts/createIntervalLists.py
## 下载配置文件
wget -c https://gitlab.com/computational-biology/ovarflow/-/blob/master/OVarFlow_src/config.yaml
wget -c https://gitlab.com/computational-biology/ovarflow/-/raw/master/OVarFlow_src/samples_and_read_groups.csv?inline=false
下载参考基因组、注释文件和fastq测序数据
## 进入并查看下scripts文件夹
cd $HOME/project_dir/variant_calling/scripts/
ls
## 运行检查一下这个pythonn脚本是否可执行,然后返回上一级目录
chmod ug+x createIntervalLists.py
cd ../
## 运行以下命令可自动创建如下3个文件夹
snakemake -np
这3个文件夹分别下载存储fastq测序文件,参考基因组文件和GVCF文件
## 软件只对GFF文件进行过测试,保证可以运行,因此注释文件下载GFF3版本
nohup wget -c http://ftp.ensembl.org/pub/release-106/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz &
nohup wget -c http://ftp.ensembl.org/pub/release-106/gff3/homo_sapiens/Homo_sapiens.GRCh38.106.gff3.gz &
软件提供了fastq测试数据,但是一直无法下载成功,因此我就用自己的WES数据(fastq文件)直接运行了
cd $HOME/project_dir/variant_calling/
wget -c https://gitlab.com/computational-biology/ovarflow/-/raw/master/OVarFlow_src/samples_and_read_groups.csv?inline=false
## 下载下来的文件名可能不对,改成正确的文件名
mv samples_and_read_groups.csv\?inline\=false samples_and_read_groups.csv
## 打开vim编辑器进行修改
vim samples_and_read_groups.csv
进入vim编辑器,可见如上文件信息。按i后移动光标进行修改:将标黄处改为已下载的基因组和注释文件名,标红处可改为1(对所有的reads进行比对),标绿处如果没有gvcf表格提供的话可留空 (oVarFlow 2.0已经取消对gvcf文件的处理,但为了保持与1.2版本的兼容性,此行依然保留)。箭头指示的行是样本信息行。特别注意的是样本命名有严格的规定,必须改为 * _R1.fastq.gz 和 * _R2.fastq.gz 这种形式,ID列、LB列和SM列的字段改为唯一标识符即可,PL列和CN列为仪器信息,可保持不变。
在正式运行找变异流程前需要先确认整个流程可顺利运行。
snakemake -np
## 伪运行一下代码
没有报错信息话就可以正式开始找变异流程。
三.正式运行
首先新建tmux后台运行终端并命名为:Ovar(可任意命名)
## 创建tmux后台终端
tmux new -s Ovar
####
tmux退出后台终端而不退出程序的操作是:同时按ctrl+b,然后按d
重新进入tmux后台终端的操作是:tmux a -t Ovar
tmux退出后台终端同时退出程序并删除session的操作是:同时按ctrl+b,然后按x,再按y确认
查询所有已创建的后台终端操作是:tmux ls
删除指定后台终端操作是:tmux kill-session -t Ovar
在后台终端运行snakfile脚本
## 进入工作目录
cd $HOME/project_dir/variant_calling/
## 后台终端运行snakemake程序
snakemake -p --cores 4 -s Snakefile
## 如果需要运行OVarFlow 2.0版本,则运行以下代码
snakemake -p --cores 4 --snakefile Snakefile_OVarFlow2
## 如果是中间报错,重新运行按下面代码进行
snakemake -p --unlock --rerun-incomplete --cores 4 -s Snakefile
snakemake -p --rerun-incomplete --cores 4 -s Snakefile
运行结束后会显示以下信息
同时在 variant_calling 文件夹下主要生成以下子文件夹及相关文件
最终注释的变异位点文件存储在 12_annotated_variants 文件夹中,其中生成了3个文件
其中 snpEFF_summary.genes.txt 展示不同ensemble基因中筛查到的变异类型及数量,snpEFF_summary .html 网页文件对结果进行了统计,是对结果的总体概览
variants_annotated.vcf.gz 文件是筛选的变异位点文件。
上述流程,我是成功运行了一遍的。理论上对读者来说是非常友好的,前提是你具备基础的计算机知识,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理:
但是大家使用时,可能遇到一些问题,主要是因为每个人背景知识不一样,而且每个人的服务器特性不一样。