目录

WGS流程执行文档

一、审核信息收集表

1.WGS标准分析BIF审核

1.1 审核合同编号、分期编号、合同名称、分析类型、cleandata、数据量、分析软件

国内:

海外:

注意国内的BIF<color #ed1c24>添加隐藏的内部识别缩写</color>:

  G是GATK 的缩写,表示要使用GATK软件进行分析
  S 是sentieon 的缩写,表示要使用sentieon软件进行分析
  Q_F 是质控拼接(flash软件)缩写,目前一直有样品送样
  PC, 意思是pcr-free 类型
  O 表示 其它个性化分析,详细内容可以在 “3. 其他要求”,进行填写

1.2 审核样品名称命名是否规范

<color /yellow>命名要求:</color>请采用字母、数字和下划线 (即_) 表示(不能有空格和—符号),长度控制在8(海外)/15(国内)个字符以内,不能以数字开头,不要使用系统预留的设备名,例如CON、PRN、AUX、CLOCKS、NUL、COM1、COM2、COM3、LPT1等作为样本名或组名。

1.3 审核NovoID是否<color /yellow>唯一</color>,物种名是否正确

1.4 审核确认参考基因组

<color /yellow>参考基因组填写规范:</color>
第1列是物种拉丁名,必须填写(注意:信息搜集表中不能有公式,物种拉丁名必须填写文字);
第2列是参考基因组ID,是内部的参考基因组自动化数据库的Genome ID,可以在信息收集表 提供的列表index.html网址中依据物种拉丁名查找;
<color #ed1c24>如果正确填写了第1、2列,则第3、4列不要填写;</color>
如果是客户自己给的链接,需要填写第1、3、4列,物种拉丁名、FASTA Download Link*、GFF3 / GFF / GTF Download Link*,最好是到文件;如果是没有到文件的网址,也要填写到FASTA Download Link*、GFF3 / GFF / GTF Download Link*对应的单元格

  审核点:
  <1>填写自动化数据库列表的Genome ID,查找到集群路径,检查准备好的文件,可以直接使用;
  <2>如果Genome ID没有填写,直接填写的网址链接,需要确认是否链接到文件,是否可以正常下载;
  如果是网址链接:先到自动化数据库里面进行查找,如果没有,再到部门准备的参考基因组石墨链接里面进行查找;
  如果都没有,可以写邮件申请进行准备;
  可能会遇到没有填写或者填写不规范的,这种情况需要和运营进行沟通。

参考基因组数据库中,小鼠和人的参考基因组提供的是94的版本,如果老师要使用其它版本,辛苦让老师提供到文件的参考文件链接。

1.5 审核个性化分析是否有内容

有些客户会将个性化分析或者特殊要求填在这里,研究背景和目的也注意检查是否有备注个性化相关信息。

1.6 其它注意事项:
(1)、国内混库项目 需填写index列
(2)、T7平台项目 测序策略请填写 T7-PE150
(3)、国内<color #ed1c24>混库是指:多个样品,多个诺禾编号,建立一个文库,数据下机也是一个文库,对应一个图表名称的情况。</color>
混库填写规则:
1、样品名称填写:把要混为一个库的多样品名称,使用英文输入法的逗号分隔,依次填写到同一个单元格,例如:
2,诺禾编号填写:把要混为一个库的多样品对应的诺禾编号,使用英文输入法的逗号分隔,依次填写到同一个单元格,例如:
<color #22b14c>注意:样品名称要和下机单里面的样品名称顺序一致,诺禾编号的顺序要和样品名称的顺序一致。</color>
3、其它列正常填写就好。

2.BSA标准分析BIF审核

基本审核标准同上,此外,需检查以下几点:

2.1 表1中亲子代关系与表型对应。要求:将与父本p1表型性状一致的子代池定为子代池s1;将与母本p2表型性状一致的子代池定为子代池s2。当类型为:1亲本+2子代,亲本须对应表1 第6列 p1;若类型为:2亲本+1子代 或者 1亲本+1子代,子代须对应表1 第6列 s2。


2.2 表3中 子代混池个数(2个子代混池个数取均值)与子代群体类型(杂合选F2,纯合选RIL) 为必填项。


二、项目执行流程

流程说明

主脚本路径:

天津集群:/TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline.py
美国集群:/PUBLIC/source/HW/RESEQ/GB_WGS_pipe/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline.py
英国集群:/PUBLIC/source/RESEQ/WGS/GB_WGS_pipe/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline.py
新加坡集群:/PUBLIC/source/HW/RESEQ/GB_PAG/WGS_manual/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline.py
南京集群:/NJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline.py

高级分析流程:

天津集群:/TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline_v2.0.py
美国集群:/PUBLIC/source/HW/RESEQ/GB_WGS_pipe/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline_v2.0.py
英国集群:/PUBLIC/source/RESEQ/WGS/GB_WGS_pipe/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline_v2.0.py
新加坡集群:/PUBLIC/source/HW/RESEQ/GB_PAG/WGS_manual/gbwgs_pipline_v2/pipline/WGS_reseq_pipeline_v2.0.py

环境变量路径:

天津集群:/TJPROJ5/GB_PAG/USER/yanyoudong/pipline/bashprofile/gbwgs.bash_profile
美国集群:/RLNAS02/GB/GB_PAG/USER/yanyoudong/pipline/bashprofile/gbwgs.bash_profile
英国集群:/UKPROJ4/GB/GB_PAG/USER/yanyoudong/bashprofile/gbwgs.bash_profile
南京集群:/NJPROJ2/GB/GB_PAG/USER/yanyoudong/bashprofile/NJ.bash_profile
新加坡集群:/PUBLIC/source/HW/RESEQ/GB_PAG/WGS_manual/yanshuang_profile

主要参数:

主要参数 值类型 参数说明【default】 是否必须
–project [string] 合同名与分期名,在报告生成及脚本生成过程中需要,要求填写规则:合同号_分期号 Y
–pwd [dir] 项目分析路径,默认为当前路径 N
–samp_list [file] 需要分析的样本信息 Y
–ref [file] 参考基因组文件 Y
–refURL [string] 参考基因组下载路径,用于在报告中体现 N
–speci [string] 样本的物种名称 Y
–gff [file] 参考基因组描述的gff文件 Y
–bed [file] 用于GATK变异检测的bed区间 N
–merge [logic] 是否对同一样本不同lane的raw data进行合并,默认为N(不合并直接分lane交付) N
–cutfq [logic] 是否对raw data 进行截数据,默认不截 N
–analy_array [string] 指明分析内容,默认为1,2.1,进行QC 和mapping (详细见下面模块规划列表) N
–startpoint [string] 指定开始分析的位置,默认为None (一般有ln,bwa_mem,finalbam 选择) N
–sched [string] 流程使用的qsub参数,默认为用户可用队列 N
–karyotype [file] Circos图所需要的染色体说明文件。当-circos 参数为N时,可以不填写 N
–circos [logic] 是否绘制Circos图 N
–snpcompare [string] 确认是否进行SNP genotyping,Y1为基于samtools call后进行genotyping,Y2为基于GATK joint calling 后进行genotyping N
–newjob [string] 生成的job 文件名,默认为year.month.day.job N
–PCRFree [logic] PCR-Free建库的样本需要指定为Y,使用对应的报告模板,默认为N N
–cleandata [logic] 是否释放clean data N
–autoconfig [logic] 是否自动配置sample_list Y
–lenPart [int] samtools群call染色体拆分份数,如不需要拆分 指定为1即可,数目不得超过染色体数目 N
–splitlength [int] GATK群call拆分的长度,低于最长染色体长度时会拆分染色体,尽量选择大于最长的染色体长度,非必须参数,如不需拆分不指定即可。长度不得小于最长染色体长度。 N
–containingN [int] 用指定去N时的含N阈值 N
–maxN [int] 用于指定去N时含N峰值的阈值 N
–T7 [logic] 是否T7测序,默认为N,T7项目注意配置为Y N
–compare_group [file] somatic 分析样本对照关系,注意表头 #normal 在前,tumor在后 N
–byChr_num [int] somatic Indel 分析拆分数目,一般为主染色体的数目 N
–insertfa [file] call外源插入必填参数,插入序列 fasta文件路径 N
–gRNA [file] OffTarget分析的guide RNA序列 fasta文件路径 N
–param [file] 指定过滤VCF参数的文件路径,用于群体进化、GWAS等高级分析 N
–group [file] 样本和亚群的对应关系 group.txt文件路径,注意表头#sample在前,group在后,用于群体进化分析 N
–NT [logic] 是否进行NT比对,默认为Y(当配置–NT N时,QC无NT部分,适应周期短、大项目) N
–category [string] 物种大类,默认从animal,plant,viruses,fungi,bacteria五大类中选择,用于群体进化的功能注释分析 N
–dup [string] Mapping处理dup方法,可从rmdup和markdup中二选一,默认rmdup,若需选择markdup注意改用WGS_reseq_pipeline_v1.0_markdup.py N

模块列表

根据分析顺序,赋予每个分析模块一个编号,简化参数列表,并定义每个分析模块之间的依赖关系,当依赖关系不满足时给出提示信息并退出程序:

代号 模块 说明 依赖于
1 quality_control Rawdata 软链并质控
2 Mapping Clean data 比对到参考基因组 1
2.1 mapping_bwa 使用 bwa_mem 将 clean data 比对到参考基因组 1
3 snpindel_call SNP/InDel 检测并注释 1,2.1
3.1 snpindel_call_samtools 使用 samtools 检测 SNP/InDel 并注释(samtools 1.3.1) 1,2.1
3.2 snpindel_call_GATK 使用 GATK 检测 SNP/InDel 并注释 (GATK v4.0.5.1) 1,2.1
3.3 snpindel_call_GATK_joint 使用 GATK Joint Genotype 检测 SNP/InDel 并注释 1,2.1
3.4 snpindel_call_samtools_joint 使用 samtools群call 检测 SNP/Indel 并注释 1,2.1
4 sv_call SV 检测并注释 1,2.1
4.1 sv_call_breakdancer 使用 breakdancer 检测 SV 并注释 1,2.1
5 cnv_call CNV 检测并注释 1,2.1
5.1 cnv_call_cnvnator 使用 CNVnator 检测 CNV 并注释 1,2.1
5.2 cnv_call_freec 使用 freec 检测 CNV并注释 1,2.1
6 somaticsnpindel somatic SNP Indel并注释(高级分析流程) 1,2.1
6.1 somatic_snpindel_call_MuTect2 使用GATK mutect2检测somatic SNP Indel并注释(高级分析流程) 1,2.1
7 somaticsv somatic SV检测并注释(高级分析流程) 1,2.1
7.1 somatic_sv_call_Delly 使用delly 检测somatic SV并注释(高级分析流程) 1,2.1
8 somaticcnv somatic CNV检测并注释(高级分析流程) 1,2.1
8.1 somatic_cnv_call_Freec 使用freec 检测somatic CNV并注释(高级分析流程) 1,2.1
9 call_insert call外源插入(高级分析流程) 1
9.1 call_insert_virusfinder 使用Virusfinder检测外源插入(高级分析流程,需merge) 1
9.2 call_insert_sv 使用SV方法检测外源插入(高级分析流程) 1,2.1,4.1
9.3 call_insert_bamreads Virusfinder和SV方法均无结果时从bam中提取相关序列(高级分析流程) 1,2.1
9.4 crisper_off_target Crisper检测off-target(高级分析流程) 1,2.1,6.1
10 BSA BSA(高级分析流程) 1,2.1,3.3
10.1 BSA_index 基于GATK群call的BSA分析(高级分析流程) 1,2.1,3.3
11 pop_structure 群体进化的遗传结构分析(高级分析流程) 1,2.1,3.3或3.4
11.1 nj_tree 使用Treebest绘制NJ进化树(高级分析流程) 1,2.1,3.3或3.4
11.4 gcta_pca 使用GCTA分析PCA(高级分析流程) 1,2.1,3.3或3.4
11.6 admixture_structure 使用Admixture分析Structure(高级分析流程) 1,2.1,3.3或3.4
12 selective 群体进化的选择消除分析(高级分析流程) 1,2.1,3.3或3.4,11
12.1 Fst 使用vcftools计算Fst值(高级分析流程) 1,2.1,3.3或3.4,11
12.2 PI 使用vcftools计算π值(高级分析流程) 1,2.1,3.3或3.4,11
12.3 TajimaD 使用vcftools计算Tajima's D值(高级分析流程) 1,2.1,3.3或3.4,11
12.4 Fst_PI 结合Fst和π值结果的联合筛选(高级分析流程) 1,2,3,11,12.1,12.2
13 linkage_disequilibrium 群体进化的连锁不平衡分析(高级分析流程) 1,2.1,3.3或3.4,11
13.1 LD_Haploview 使用Haploview计算LD(高级分析流程) 1,2.1,3.3或3.4,11
13.2 LD_PopLDdecay 使用PopLDdecay计算LD(高级分析流程) 1,2.1,3.3或3.4,11
14 gene_flow 群体进化的基因流分析(高级分析流程) 1,2.1,3.3或3.4,11
14.1 Treemix 使用Treemix分析基因流(高级分析流程) 1,2.1,3.3或3.4,11
15 gene_function 群体进化的功能注释分析(高级分析流程) 1,2.1,3.3或3.4,12.4
15.1 function_annotation 基于选择消除的联合筛选结果进行GO和KEGG功能注释(高级分析流程) 1,2.1,3.3或3.4,12.4
注意:
1、如果需要结果和报告,至少要有snpindel_call(模块3)中任意一个(3.1或3.2或3.3或3.4),没有snpindel_call(例如只有4.1的SV和5.1的CNV,没有3.1)是无法生成结题报告的;
如果snpindel_call(3)、sv_call(4)和cnv_call(5)都没有,只有高级分析模块的话,整理结果文件会报错。
2、call插入的9.1模块暂时停用,原因是Virusfinder软件目前有问题,call没有结果;如有call插入分析需求,优先选9.2,其次9.3
3、call插入的9.2和9.3模块已经包括 插入序列和参考基因组fa的合并及准备基因组 过程,无需手动合并基因组fa,配置--insertfa插入序列fasta文件路径即可
注意严格按照fasta格式配置插入序列文件,第一行">"后为插入序列名称(尽可能不要包含特殊字符如下划线或空格,仅由字母和数字组成为宜)
4、call插入的9.4模块是基于6.1的somatic_snpindel_call_MuTect2进行的,因此需要配置somatic必需的--compare_group和--gRNA参数,也就是需要确定WT对照样本和guide RNA sequence序列,详见上述“主要参数”部分。
5、BSA需要在Config目录下配置BSA_cfg文件,其内容示例如下:
  p1 p2 s1 s2 等号右边填写实际项目 报告中的样本名。有则填写,如只有1亲本1子代,则只写p2=parent2 s2=offspring2。
  p1=parent1(亲本1)[p1报告中的样本名]
  p2=parent2(亲本2)
  s1=offspring1(子代池1,性状与亲本1一致)
  s2=offspring2(子代池2,性状与亲本2一致)
  num=33(子代混池的单株数均值)
  poptype=F2(子代群体类型,杂合选F2, 纯合写RIF)

目录结构

通过选定分析模块对应的编号,流程会自动建立对应模块的分析路径。

路径 说明
Config 存放sample_list project_info.txt 等文件
XJ 存放下机数据的软链接,目录结构同下机目录
RawData 存放每个样本 raw data 的软链接和脚本,子目录以 sampleID 命名
QC 存放每个样本的质控结果(clean data 和质控图表文件)和相应脚本,子目录以 sampleID 命名。目录下包含NT目录,存放每个样本 clean data 的 blast 结果和相应脚本,子目录以 sampleID 命名
Reference 存放参考基因组统计文件和 gff 文件生成的注释文件,karyotype.xls及相应脚本
Mapping 存放每个样本的Mapping结果和相应脚本,子目录以 sampleID 命名。目录下包含Alnstat目录,存放每个样本 比对统计结果和相应脚本,子目录以 sampleID 命名
VarDetect 存 放 每 个 样 本 的SNP、InDel,SV,CNV,变异统计结果。分别对应SnpInDel、SV、CNV、Varstat目录。变异结果目录下以样本名.软件命名。Varstat目录包含各变异类型的统计结果及统计结果的可视化。SnpInDel_somatic、SV_somatic、CNV_somatic包含Somatic分析结果。Varstat_somatic包含somatic分析结果的统计。Insert包含call外源插入分析结果。BSA包含BSA分析结果。
Report 存放任务生成的报告和相应脚本。子目录以运行的任务名命名(job)
Result 存放结果文件的目录。
Release 存放释放文件的目录。
log 以对应 job 名存放流程执行的JOB文件及所有 job 的标准输出和标准错误输出,目录按照 job 名区分,设置为P101SC18113162-01-J005_Primary_20200609、P101SC18113162-01-J005_Mapping_20200609、P101SC18113162-01-J005_QC_20200609类似格式方便区分管理。
script 冗余清理及备份上传脚本
record 指标数据库内容的文件形式
  注意:高级分析如OffTarget、群体进化、GWAS等,会另外建立AdvanceAnalysis分析路径,用于存放高级分析结果。

流程执行

主脚本示例

1. 全基因组重测序基本分析

python WGS_reseq_pipeline.py \
  --project C101SC18113162_P101SC18113162-01-J005 \
  --samp_list ./Config/sample_list \
  --ref /TJPROJ5/GB_PAG/reference_data/Animal/ncbi_Caenorhabditis_Elegans_WBcel235_GCF_000002985_6/Sequence/WholeGenomeFasta/genome.fa \
  --refURL ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/001/735/GCF_000001735.4_TAIR10.1/GCF_000001735.4_TAIR10.1_genomic.fna.gz \
  --speci Caenorhabditis_Elegans \
  --gff /TJPROJ5/GB_PAG/reference_data/Animal/ncbi_Caenorhabditis_Elegans_WBcel235_GCF_000002985_6/Annotation/Genes/genome.gff3 \
  --merge N \
  --cutfq  N \
  --circos Y \
  --snpcompare N \
  --autoconfig N \
  --PCRFree N \
  --cleandata N \
  --analy_array 1,2.1,3.1,4.1,5.1 \
  --karyotype ./Reference/karyotype.xls \
  --newjob P101SC18113162-01-J005

此分析包括 QC,mapping,samtools SNP/InDel,breakdancer SV,CNVnator CNV。

<note important>本脚本参数需要根据不同区域项目具体情况进行调整:
1. 主脚本路径修改为相应集群路径
2. 根据自己项目情况修改merge,cutfq,PCRFree等参数
2. –cleandata 需要设置为Y,不需要设置为N。
3. 若 –circos Y 则 –karyotype 必须指定配置文件
4. –newjob 根据项目情况指定job命名 </note>


2. 样本加测
对于需要加测的样本,需要重新构建 sample_list,该文件只含加测数据,流程会自动识别工作目录下的 qc_list 以判断样本是否为加测,所以加测时,注意保留上批样本的 qc_list。

python WGS_reseq_pipeline.py \
  --project C101SC18113162_P101SC18113162-01-J005 \
  --samp_list ./Config/sample_list_jiace \
  --ref /TJPROJ5/GB_PAG/reference_data/Animal/ncbi_Caenorhabditis_Elegans_WBcel235_GCF_000002985_6/Sequence/WholeGenomeFasta/genome.fa \
  --refURL ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/001/735/GCF_000001735.4_TAIR10.1/GCF_000001735.4_TAIR10.1_genomic.fna.gz \
  --speci Caenorhabditis_Elegans \
  --gff /TJPROJ5/GB_PAG/reference_data/Animal/ncbi_Caenorhabditis_Elegans_WBcel235_GCF_000002985_6/Annotation/Genes/genome.gff3 \
  --merge N \
  --cutfq  N \
  --circos Y \
  --snpcompare N \
  --autoconfig N \
  --PCRFree N \
  --cleandata N \
  --analy_array 1 \
  --karyotype ./Reference/karyotype.xls \
  --newjob P101SC18113162-01-J005

<note tip>注 1:待加测数据量足够后,将上批数据的 sample_list 跟加测的 sample_list 合并成一个新的 sample_list,以 bwa_mem startpoint 进行后续分析。
注 2:生成报告和数据释放时,流程会自动识别 qc_list 中的样本信息进行报告生成和数据释放。如果遇到分批需要分批释放或者分批出报告的情况,则需要更改 qc_list 中的样本信息,再生成报告和数据释放结果。</note>


3. 重测与重建库样本
对于重测与重建库样本,需要在将不要的数据手动在 sample_list 及 qc_list 中删除,之后按加测方法分析新数据即可。

流程操作

1. 配置sample_list

#lane sampleID LibID NovoID Index SeqStra Path Volume PATHFLOWDATE Analysis_type Cleandata Index EQRUNID Sequencing_Platform Insertsize ADDREMARK EQTYPE TESTNO ADDTESTSTYPE
2 VC1760_B3_5 FDSW202139062-1r FKDO202139062-1A 7UDI2350;5UDI2350 PE150 /TJPROJ4/XJ/department_data-nova/2002/200601_A00920_0307_AH5C2TDSXY-new 1 2020-06-04 11:29:29 snpInDel+SV+CNV NO - 200601_A00920_0307_AH5C2TDSXY Illumina 350bp S4 XP Novaseq PE150
4 VC1760_B3_8 FDSW202139063-1r FKDO202139063-1A 7UDI2351;5UDI2351 PE150 /TJPROJ4/XJ/department_data-nova/2002/200602_A00881_0303_BH5CG7DSXY-new 1 2020-06-05 10:23:08 snpInDel+SV+CNV NO - 200602_A00881_0303_BH5CG7DSXY Illumina 350bp 加测 S4 XP Novaseq PE150
1 VC1760_B5_7 FDSW202139064-1r FKDO202139064-1A 7UDI2353;5UDI2353 PE150 /TJPROJ4/XJ/department_data-nova/2002/200604_A00821_0351_AH5GN7DSXY-new 1 2020-06-07 10:11:36 snpInDel+SV+CNV NO - 200604_A00821_0351_AH5GN7DSXY Illumina 350bp S4 XP Novaseq PE150
4 VC1760_B5_7 FDSW202139064-1r FKDO202139064-1A 7UDI2353;5UDI2353 PE150 /TJPROJ4/XJ/department_data-nova/2002/200602_A00881_0303_BH5CG7DSXY-new 1 2020-06-05 10:23:08 snpInDel+SV+CNV NO - 200602_A00881_0303_BH5CG7DSXY Illumina 350bp 加测 S4 XP Novaseq PE150

注:如果第一行是 title,则需要以#号开头,每列的意思如下:
第一列:样本在 FlowCell 上的 Lane 号(Ori_Lane);
第二列:样本的编号(sampleID);
第三列:样本的文库编号(LibID);
第四列:样本的诺禾编号,一个样本有唯一诺禾编号(NovoID);
第五列:构建文库所使用的 Index,与LIMS上QC Index编号一致(Index);
第六列:样本的测序策略,如 PE150(SeqStra);
第七列:样本分析需要使用的数据存储路径,一般是原始下机数据路径(Path);
第八列:数据量(Volume);
第九列:下机路径时间(PATHFLOWDATE);
第十列:分析类型(Analysis_Type);
第十一列:是否需要Cleandata(Cleandata);
第十二列:混库项目需要填写正确的index序列,非混库 -(Index);
第十三列:FC号(EQRUNID);
第十四列:测序平台(Sequencing_Platform);
第十五列:插入片段长度(Insertsize);
第十六列:是否加测(ADDREMARK);
第十七列:上机类型(EQTYPE);
第十八列:测序策略(TESTNO);
第十九列:ADDTESTSTYPE 记录用(ADDTESTSTYPE)

自动配置:
–autoconfig Y。目前自动配置sample_list只支持LIMS下机路径在集群中都存在的分期,下机路径已删除的分期不能自动抓取下载datapath信息。自动配置逻辑:抓取下载BIF 生成project_info.txt、解析BIF、下载datapath信息、合并datapath及解析后的样本信息生成sample_list。配置karyotype.xls逻辑上不依赖于以上步骤。

非自动配置:
先将–autoconfig Y,运行主流程配置脚本,会在Config下生成配置sample_list project_info.txt 文件的脚本getsamplelist.sh。脚本第一行注释为半自动配置生成脚本的一个示例,若BIF自动下载有问题,则将–BIF 设置为 手动上传的BIF的位置,刷新脚本后重新执行配置脚本。

若信息表的解析有问题,可以将样本新及样本信息的头信息行拷贝到纯文本文件中,后将–samples_information设置为该文件的位置,刷新该脚本,后重新执行该脚本。以下为–samples_information文件示例(\t分隔):

#Analysis_Type snpInDel+SV+CNV
#Cleandata NO
#Sample Name Novogene ID Species Name Description Library Type Sequencing Strategy Data Output(G bases) Sample Name in Report Remarks
ML01_gDNA FKDN210367301-1A Arabidopsis thaliana NovaSeq 6000 PE150 4 sco4_2_10_pale
ML02_gDNA FKDN210367302-1A Arabidopsis thaliana NovaSeq 6000 PE150 4 sco4_2_10_green
ML03_gDNA FKDN210367303-1A Arabidopsis thaliana NovaSeq 6000 PE150 4 sco4_2_6

2. 配置karyotype文件

–circos Y时候 会自动配置karyotype.xls文件,生成文件到Reference目录下。具体配置步骤位于Reference/statFa.sh中的Make Circos config步骤中,若参考基因组中存在较多的scaffold不需要生成Circos图,则可以通过Config_Circos.py -r 参数设置为 “.fai,24”,.fai文件后为”,” + 需要绘制Circos图的染色体个数。默认自动配置时,无该数目,若需要修改需要手动执行,如不设置 最多保留160个染色体绘制Circos图,防止组装较差参考基因组直接配置该文件。以下为karyotype.xls示例:

#V1 V2 V3 V4 V5 V6 V7
chr - NC_003279.8 NC_003279.8 0 15072434 chr1
chr - NC_003280.10 NC_003280.10 0 15279421 chr2
chr - NC_003281.10 NC_003281.10 0 13783801 chr3
chr - NC_003282.8 NC_003282.8 0 17493829 chr4
chr - NC_003283.11 NC_003283.11 0 20924180 chr5
chr - NC_003284.9 NC_003284.9 0 17718942 chr6
chr - NC_001328.1 NC_001328.1 0 13794 chr7

第一列:chr 定义一个染色体。
第二列:短线占位符通常用来定义所属关系,对于染色体来说,没有所属。
第三列:ID 是染色体唯一且不能重复的标识。
第四列:LABEL 是将来用于显示在图上的文本。
第五第六列:START 和 END 值定义了染色体的大小。对于染色体组型文件,需要指明的是,这里的START 和 END 应该是染色体本身的大小,而不是你想绘制部分的起止位置。指定绘制部分将由其它文件来定义。
第七列:COLOR 是预定义显示的颜色。对于人类基因组而言,circos 预设了与染色体相同的名字做为颜色名,比如 chr1, chr2, …, chrX, chrY, chrUn。

3. 配置project_info.txt

目前若无法自动配置的时候 不能通过半自动配置来生成,只能手动配置。以下为示例:(实验室、利润中心、合同号、分期号、分期名称、PC邮箱、BI邮箱、Double check邮箱、PC、BI、Double check、分期开始时间、分期结束时间)(1、美国实验室为:Davis实验室;利润中心为2002/2011时会默认为天津实验室,如为南京实验室需要手动修改):

#ProductionBase ProfitCode CONTRACT_NUMBER batchid PJ_NAME PC_EMAIL BI_EMAIL DOUBLE_EMAIL PC BI DOUBLE_CHECK SALES_MAN SDATE EDATE PJ_NAME
天津实验室 1100 H204SC21072744 X204SC21072744-Z02-F002 NVUK2021071425-DE-UniHamburg-Liebers-18-lncRNA-6G-WBI-5-plant WGS-4G-WBI tianguangjing7425@novogene.com yanyoudong@novogene.com yangya6605@novogene.com Guangjing Tian 田光晶 Youdong Yan 闫有东 Ya Yang 杨亚 Movsisyan Naira 2021-11-17 00:00:00 2021-12-25 00:00:00 Plant and Animal Whole Genome Sequencing (WBI)

若不需要该脚本配置或者已半自动配置完成,请将–autoconfig设置为N。

4. sjm 投递
执行完run_WGS.sh后,会将sjm提交的job文件生成到log目录下。
任务会自动切分成 QC、Mapping、Mapping后的分析三部分,在log目录下依据所给出的newjob前缀 生成三部分对应的job。每一部分的任务完成后、依次执行下一部分的任务。

可以sjm直接提交该文件,若流程意外中断需要重新提交可以sjm 最新的*.status,流程中断出可以从*log中查询。

如需人工指定流程提交的断点,通过–startpoint来指定,该参数 必须与主流程目录下的../Config/WGS_memory_config.py中的task名称相同。如出现run_WGS.sh后 job文件中所有任务状态被设置为done的问题,请先检查–startpoint 参数。(正常情况下–startpoint task前的任务会被设置成done。第一次执行QC的时候不要设置–startpoint ln,这个设置会跳过处理参考基因组的statFa步骤。)

5. 意外跑断

意外跑断的话(包括盘满、集群问题引起跑断),找到最新的 job.status 或 job.status.bak文件,判断其中各任务状态是否正确,尤其是 running 状态,但是实际已经完成的任务。重新 sjm 投递 job.status。

<note important>特别注意:
(1)在 sjm 之前,需要确定之前的 sjm 进程已经结束,如果尚未结束,需要 kill 掉之后再 sjm,以免出现任务重复投递的情况。确定 sjm 进程是否结束的方法是:在提交 sjm 任务的节点,使用 top –u yourname 或者使用 ps xf 查看 job 的进程是否存在。上一个 job 的进程可以从它的*.job.status.log 第一行看到,即 sjm process ID: XXXXX。
(2)在 sjm 之前,需要确定之前的 sjm 是否存在已经 qsub 的任务,如果存在需要 qdel掉之后再 sjm。运行命令:sjm job.status 或:sjm job.status.bak</note>

6. 指定从某一部分开始运行

对于需要指定分析起点的情况,提供了一个–startpoint 参数。刷新脚本,再执行新生成的 job 文件即可。数据下机之后一般先做 QC,如果继续 mapping 分析,将 startpoint 设置为 bwa_mem;mapping 完成后,继续分析,则需指定 startpoint 为 finalbam。

7. 数据释放

当项目结题检查无问题后进行数据释放
项目数据释放目录为:
国内:Release/Results_合同号_分期号_部门号_日期

海外:Release/分期号

release_tree:

result_tree:

注意事项

1、标准交付目录追加个性化分析结果操作:

 a、在释放数据路径的上一级:建立05.Customized_Analysis , 命令mkdir 05.Customized_Analysis

 b、在05.Customized_Analysis文件夹下整理个性化分析结果文件,整理完成后压缩文件夹,
 zip -r 05.Customized_Analysis.zip 05.Customized_Analysis;
 c、将05.Customized_Analysis.zip 以相对路径软链到释放数据路径里面;

 d、在总的README.txt里面,追加说明:05.Customized_Analysis.zip:Personalized analysis result files . 
 或者05.Customized_Analysis.zip:个性化分析结果文件。

 c、总MD5.txt增加05.Customized_Analysis.zip的MD5值
 md5sum 05.Customized_Analysis.zip >>MD5.txt

 d、更新release_tree.html:以天津集群为例
  国内:python /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/tools/makeReleaseReadmeHTML.py --release_path . --output ./Readme.html  --content /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/tools/WGS_mode_GN.txt --html_template /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/tools/DataRelease_ReadMe_ZH.html
  海外:python /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/tools/makeReleaseReadmeHTML.py --release_path . --output ./Readme.html  --content /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/tools/WGS_mode_EN.txt --html_template /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/tools/DataRelease_ReadMe_EN.html

 e、重新生成checkSize.xls
 perl /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v2/Uploadandrelease/dirCheckSize.pl .

8. 数据清理

当数据释放无问题后执行数据清理:
step1:
交付完成无问题执行script下r1.byebye_reseq.sh,会进行删除中间文件(NT比对中间文件,mapping深度统计中间文件,若不释放cleandata则删除clean.fq.gz),会生成删除前后总目录大小、各文件大小的日志文件 供查询清理情况。
step2:
转移到冷存后上云前若无问题深度清理,执行r2.byebye_reseq.sh,只保留sh,下机数据和结果文件统计文件等(bam等重要文件会被删除,请确认无误可删除后 方可执行),会生成删除前后总目录大小、各文件大小的日志文件 供查询清理情况。目前清理脚本给定的为原分析目录绝对路径,防止误删,如候选项目备份到冷存目录下需要清理时,将给定项目路径参数改换为冷存目录下的项目路径即可。

9. 天津/南京数据备份冷存

规则:
基本规则:信息负责人自行备份个人项目和下机数据
备份时间:
a、项目交付无问题后,项目备份上云
b、若项目未分析完成或有售后 个性化分析等还暂时用数据,可以酌情备份到冷存

备份说明:
备份需要sample_list,请保证最后的sample_list是完整的
备份完成后一定要检查备份后的记录及是否有报错

注意点:备份冷存前和上云前需要自动清理冗余和该删除文件

执行:
项目备份云存储执行:backup/CMD_PJbackOSS.sh
项目备份冷存执行:backup/CMD_PJbackLC.sh
项目备份完成后执行下机备份,作为lims上依然还存在的数据路径的补充备份
下机路径执行:backup/CMD_XJback.sh

执行后生成记录日志文件:
下机数据转冷存相关文件、脚本:

备份完成后需检查文件:XJback_DONE PJback_DONE PJback_WARNNING XJback_WARNNING BackUP_LOG
备份完成后删除下机路径需要的文件:X101SC21051093-Z01-F002.yanyoudong.PJback.RM_XJ_PATH.sh
X101SC21051093-Z01-F002.yanyoudong.XJback.RM_XJ_PATH.sh

项目备份记录文件:X101SC21051093-Z01-F002.yanyoudong.PJ_BACKUP_LC_INFO.xls

#ProductionBase ProfitCode PJ_TYPE batchid PC_EMAIL BI_EMAIL DOUBLE_EMAIL PJ_CODE PJ_NAME CONTRACT_NUMBER PC BI DOUBLE_CHECK SALES_MAN SDATE EDATPJ_PATH FROM FROM_SIZE PJ_LC_PATH TO TO_SIZE PJ_BACKUP_TIME PJ_BACKUP_MAN
天津实验室 2002 动植物全基因组变异检测 X101SC21051093-Z01-F002 liuchang@novogene.com yanyoudong@novogene.com yanyoudong@novogene.com X101SC21051093 西湖大学200个宏基因组建库测序分析技术服务(委托)合同 H101SC21051093 Chang Liu 刘畅 Youdong Yan 闫有东 Youdong Yan 闫有东 Wenjuan Xie谢文娟 None None /TJPROJ5/GB_PAG/PJ_GB/reseq/WGS/2002/yanyoudong/X101SC21051093-Z01-F002.unknown.20211008 /TJPROJ5/GB_PAG/PJ_GB/reseq/WGS/2002/yanyoudong/X101SC21051093-Z01-F002.unknown.20211008/backup/data_release 337.14G /TJNAS01/GB/GN_RESEQ/BackUP/PJ/TJPROJ5/GB_PAG/PJ_GB/reseq/WGS/2002/yanyoudong/X101SC21051093-Z01-F002.unknown.20211008 /TJNAS01/GB/GN_RESEQ/BackUP/PJ/TJPROJ5/GB_PAG/PJ_GB/reseq/WGS/2002/yanyoudong/X101SC21051093-Z01-F002.unknown.20211008/backup/data_release 337.14G 2021-10-11 13:23:21
#ProductionBase ProfitCode CONTRACT_NUMBER batchid PJ_NAME PC_EMAIL BI_EMAIL DOUBLE_EMAIL PC BI DOUBLE_CHECK SALES_MAN SDATE EDATE PJ_PATH PJ_PATH_SIZE PJ_LC_TIME PJ_LC_PATH
天津实验室 2002 C101SC18113162 P101SC18113162-01-J005 浙江西湖高等研究院4个线虫WGS-seq变异检测分析技术服务(委托)合同 danghuijie@novogene.com danghuijie@novogene.com danghuijie@novogene.com Kevin Pham danghuijie danghuijie test 2020-05-27 23:57:30 2020-05-27 /TJPROJ5/GB_PAG/USER/yanyoudong/test/v2_WGS_test/compare 2.8G 2020/06/19 17:04:34 /TJNAS01/GB/GN_RESEQ/GB_PAG/PJ_GB/reseq/WGS/yanyoudong/compare/compare

流程逻辑

(1)run_WGS.sh阶段完成
sample_list、project_info.txt、karyotype.xls配置(若设置autoconfig Y),生成结果位于Config下。 校验fastq文件,生成下机数据目录结构,并将fastq文件按原目录结构链接到XJ目录下(只链接fastq文件)。
按照配置生成各个需要的目录结构。

(2)sjm提交job文件后执行逻辑

先执行RawData下 ln*sh:链接,md5*sh:生成MD5值, dup*sh:统计Rawdata dup值。(若需要merge、cutfq也在此阶段提交) 提交QC下的qc*sh:质控脚本,现为fastp质控软件,质控生成统计数据,作图,并convert。gzip*sh:压缩可能存在的未压缩clean fastq,生成cleandata 的MD5值。NT目录:抽取reads NT比对。

Mapping下的:bwa_mem*sh:比对,samtools_sort*sh bam排序,picard_merge*sh: merge bam(若为merge模式 则缺失这一步),filter_rmdup*sh:去dup,finalbam*sh:生成最终的bam。

VarDetect下为各类型的call变异及统计:SnpInDel下为SNP、InDel,根据GATK、samtools不同。SV下为breakdancer的SV结果。CNV下为cnvnator的CNV结果。Varstat下为各类型的变异统计结果可视化结果,结果分布于对应的目录下,Circos图和密度图位于Circos目录下。

Report目录下为各个阶段的报告,具体报告类型取决于run_WGS.sh中的–analy_array,报告的位置取决于run_WGS.sh中的–newjob。国内海外报告类型取决于project_info.txt 中的利润中心,2002/2011时为国内报告,否则为海外报告。海外报告脚本:HW_reseq_Report.py,具体类型取决于报告脚本的–analy_array参数。国内QC报告脚本:GN_reseq_QC_report.py,国内Mapping报告脚本:GN_reseq_Mapping_report.py,国内结题报告脚本:GN_reseq_Primary_report.py。

Result目录下为各个阶段的结果目录,Release目录下为最终的释放目录


注意事项

1、报告生成和结果释放中的样本是根据自动生成的 qc_list 判断的,如果需要拆分样本,只需要提供新的 qc_list 文件即可。
2、流程默认不释放 cleandata,如果需要只需将–cleandata 指定为 Y。
3、PCR-free 建库的样本,需要指定–PCRFree 参数为 Y,使用 PCR-free 对应的报告模板。
4、某些参考基因组的 gff 文件由于格式问题,流程可能会识别不了。需要检测 Reference 目录下 refGeneMrna.fa 和 refGene.txt 是否为空,如果为空文件,则需要手动修改 gff。
5、karyotype 文件是生成 Circos 图所必须的,里面只需要包括要展示的染色体即可(流程默认展示最长的前24条染色体)。
6、流程默认不进行 SNP genotyping,如果需要只需将–snpcompare 指定为 Y1 或 Y2。
7、byebye 脚本会清除项目路径下冗余文件,需待项目结题后根据数据清理规则执行。

出错处理

1) 如果执行生成 job 文件的 shell 时报错,注意检查 sample_list 中的内容和格式是否正确,检查 qc_list 是否包含错误信息。
2) 若流程运行完毕,而结果未产生,则先查看xx.job.status.log中哪些任务failed,再查看 log 中这个任务的报错信息,寻找原因。当脚本修改完毕后,可用 startpoint 参数定点重新提交。

三、报告审核与上传

QC报告审核

1. 数据量:数据量不足反馈运营加测
2. 测序质量:Q20一般大于90%,Q30一般大于80% ,含N/低质量一般小于2% , Effective 高于 95%, 错误率一般低于0.1,质量较差反馈运营,建议调参或重测
3. 接头率一般低于5% ,GC 无大幅度分离,若超过标准反馈运营调参或重建库
4. NT比对:排名前10的物种是近缘物种,无明显污染,出现异常,反馈运营确认

Mapping报告审核

1. mapping rate:一般高于90%,若普遍较低,一般要求样本间差异不大,同批次样本间正常≤1%。
2. dup rate:一般小于15% ,超过15%进行反馈(美国集群需要检查,体现在报告中),PCR-Free 文库需要小于10%。
3. 检查GC%是否与参考基因组偏离:要求偏离不超过3%,GC%偏离需要进行反馈,进行污染排查,GC Bias 排查和Genome Coverage 排查。
4. coverage:与物种、测序深度、基因组组装情况有关,深度相近的样本间≤5%。
5. 检查样本图片是否可以正常查看

结题报告审核

1. 检查物种名,项目名,项目号是否一致
2. 检查图片是否可以正常查看,查看统计表格数值,是否出现异常
3. SNP&INDEL&SV&CNV检出数同批次同类样本间差异不大
4. 检查Circos 图:染色体数目、长度、顺序都要合乎规范

报告上传与double check

当报告生成后需要向LIMS上传QC,Mapping及结题报告,上传时需要备注To 运营 的报告审核信息 及 To double check 的信息

To 运营内容主要为报告审核及问题说明建议

To check内容包括不限于:

1. 样本数 
2. 目标数据量
3. 是否加测,重测,重建库
4. 是否有特殊处理(去低质量,去dup,去接头,污染处理,更换注释文件等及必要的路径或目录说明)
5. 项目执行路径及数据释放路径
6. 报告审核和建议等

脚本上传报告 释放数据

上传报告:对应报告目录下生成Upload_*_Report.sh,检查报告无误后,运行上传。海外报告与数据释放逻辑均分离。国内QC项目、带分析项目结题报告上传需要与数据释放同时执行。在此之前需要线下发送doublecheck检查,可执行对应报告目录下生成Doublecheck_*_Report.sh。

释放数据:Release目录下生成datarelease_*sh,用于释放最终数据。国内数据释放与报告上传同时执行。海外项目注意在上传报告后还需要再执行释放数据。

目前报告上传及数据释放都有自动生成的report_memo.txt,线下发送check或者上传lims前需要补全report_memo.txt内备注信息。


四、数据库路径

分析指标数据库

天津:/TJPROJ2/GB/PUBLIC/database/GB_PAG/LibStat
南京:/NJPROJ2/GB/PUBLIC/database/GB_PAG/LibStat
美国:/PUBLIC/database/HW/LibStat
英国:/PUBLIC/database/GB_PAG/LibStat

上述指标库路径中的文件更新到2021年10月,在此之后执行的WGS项目指标库文件均生成在过程目录下的record目录中。

五、特殊说明

1、注释文件内容统计说明:

SNP:Total为变异总数,等于vcf文件中的数目。注释类型数加和不等于Total。(存在多等位位点,等位位点有可能会因为突变类型不一样 导致注释到不同的类型,导致注释的数目多于Total)
Indel:Total为变异总数,等于vcf文件中的数目。注释类型数加和不等于Total。(存在多等位位点,等位位点有可能长度不同,类型不同,导致不同的等位位点可能注释到不同注释类型,长度不同可能有的注释到移码突变 有的是非移码突变,插入缺失类型不同也会造成不一样的注释类型,导致注释的数目多于Total)
SV:Total为变异总数。注释的内容只有INS DEL INV三种类型,故注释内容总数小于 变异总数。
CNV:Total为变异总数。注释内容总数等于Total。

六、相关工具

1、WGS自动转手动脚本
路径:/TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v1/toolsmanual/autotomanual.py

注意事项:
执行脚本前,需要先手动配置并执行run.sh,刷出手动目录后再执行。
run.sh中的–newjob必须含Mapping或Primary字样。

参数说明:

  1. -autoprjdir auto project path,自动目录路径
  2. -manualprjdir manual project path,手动目录路径
  3. -endpoint End position of the linkage of auto project,指定结束分析的位置,默认为statVariation;如果做到mapping,可选择finalbam
  4. -circos circos exist or not,是否有圈图,y or n,默认为None
  5. -report make final report and release data,是否生成报告和释放目录,y or n,默认为None

示例:
#软链到call变异,没有圈图,完成后需手动生成结题报告和释放目录
python /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v1/toolsmanual/autotomanual.py –autoprjdir /TJPROJ5/GB_PAG/PJ_AI/reseq/projects/GN/gn_005/2002/X101SC2108/X101SC21081362-Z01/J001 –manualprjdir .
#软链到call变异,有圈图,直接生成结题报告和释放目录
python /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v1/toolsmanual/autotomanual.py –autoprjdir /TJPROJ5/GB_PAG/PJ_AI/reseq/projects/GN/gn_005/2002/X101SC2108/X101SC21081362-Z01/J001 –manualprjdir . –circos y –report y
#软链到mapping,完成后需手动生成Mapping报告和释放目录
python /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v1/toolsmanual/autotomanual.py –autoprjdir /TJPROJ5/GB_PAG/PJ_AI/reseq/projects/GN/gn_005/2002/X101SC2108/X101SC21081362-Z01/J001 –manualprjdir . –endpoint finalbam
#软链到mapping,直接生成Mapping报告和释放目录
python /TJPROJ2/GB/PUBLIC/source/GB_PAG/WGS_manual/gbwgs_pipline_v1/toolsmanual/autotomanual.py –autoprjdir /TJPROJ5/GB_PAG/PJ_AI/reseq/projects/GN/gn_005/2002/X101SC2108/X101SC21081362-Z01/J001 –manualprjdir . –endpoint finalbam –report y

脚本逻辑:按照 rawdata,cleandata,qc,nt,mapping,call变异等分部分软链