VarBen:NGS变异数据模拟软件

VarBen(Variant Benchmark)

2021年3月3号,来自 国家卫生健康委临床检验中心、中国科学院计算技术研究所等单位的研究人员开发了肿瘤突变数据模拟软件VarBen,包括SNV、InDel、CNV、SV等多种变异形式的模拟。同时该软件支持目前临床上常用的测序平台,包括Illumina、华大智造MGISEQ以及Ion torrent测序平台。

据介绍,VarBen采用的是比对到参考基因组特定位点的测序reads进行编辑的方式来进行突变模拟,该方法可保留测序过程“湿实验”部分核酸提取、靶向捕获、文库制备以及测序过程中产生的错误分布模式,从而保证模拟数据更加的接近真实。研究人员根据不同高通量测序平台的原理以及不同种类基因变异的特点,使得VarBen能够对几乎所有的变异类型进行模拟,包括SNV、Indel、Complex insertion-deletion、CNV以及SV。此外,VarBen同时支持全基因组、全外显子组以及靶向panel测序数据的模拟,并且适用于多个测序平台。

文献名称:VarBen: Generating in Silico Reference Data Sets for Clinical Next-Generation Sequencing Bioinformatics Pipeline Evaluation
期刊名称:The Journal of Molecular Diagnostics (国际分子诊断领域权威期刊) ( IF 5.553 )(JMD)
发表时间:2020-12-18
文章介绍1:https://www.x-mol.com/paper/1340047108494508032
文章介绍2:https://www.sohu.com/a/453971998_120054289
github:https://github.com/nccl-jmli/VarBen
数据路径:SRP171108
软件亮点(和其他软件相比):

  • BAMSurgeon不支持complex variants,也不支持 Ion Torrent system 测序仪测序数据
  • insiM 只能在PE Illumina测序数据中添加 SNV,InDel
  • MutationMaker 能模拟 SNV,substitutions和小的InDel,但属于非开源软件
  • VarBen可以引入更全面的变体集,包括SNV、InDels、复杂的删除-插入变体和大型结构变体(deletions, duplications,translations, and inversions)

测试软件:

  • 1)Somatic SNV 检测软件:Mutect2 version 4.0.8.0; Strelka2 version 2.9.2;Varscan2 version 2.3.9
  • 2)Somatic SV 检测软件:novoBreak version 1.1 ; Manta version 1.3.1;Lumpy version 0.2.13
  • 3) Germline SNV 检测软件: HaplotypeCaller; VariantRecalibrator; ApplyRecalibration (GATK version 4.0.3.0的三款工具)

下载和安装:

wget https://github.com/nccl-jmli/VarBen/archive/master.zip
unzip master.zip
cd VarBen-master
python2 bin/muteditor.py -h  ### 模拟小的变异:SNV、InDel、Complex variation
python2 bin/sveditor.py -h    ### 模拟大的变异:SV、CNV

使用:

注意:bwa、samtools、bedtools 要加入环境变量中,流程里面直接使用的时bwa,samtools、bedtools,没有给传软件路径的参数
最终生成的bam文件存储在 outdir/edit.sorted.bam

1. muteditor.py
python2 VarBen-master/bin/muteditor.py \
    --mutfile mutsnv.tsv \
    --bamfile test.bam \
    --reffasta ucsc.hg19.fasta \  ###参考基因组路径,输入和--alignerIndex一样,不知有什么意义?
    --aligner bwa \      ###这里一定是写bwa,而不是bwa的路径
    --alignerIndex  path/ucsc.hg19.fasta \  
    --seqer illumina \
    --mindepth 100 \
    --minmutreads 10 \
    --process 8 \
    --outdir snv_out 
2. sveditor.py
python2 VarBen-master/bin/sveditor.py \
    --svfile mutcnv.tsv \
    --bamfile test.bam \
    --reffasta ucsc.hg19.fasta \  ###参考基因组路径,输入和--alignerIndex一样,不知有什么意义?
    --alignerbwa \  ###这里一定是写bwa,而不是bwa的路径
    --alignerIndex  ucsc.hg19.fasta \
    --seqer illumina \
    --mindepth 100 \
    --minmutreads 10 \
    --readlength 100 \      ### muteditor.py 不需要这个参数
    --process 8 \
    --outdir cnv_out

解析:持续进行中

1. muteditor.py
SNV/InDel模拟步骤:

i)从BAM文件中根据用户指定的变异等位基因分数(VAF)的指定位置或区域随机选择Read;
ii)根据指定的变体类型(包括)修改、插入或删除重叠位置或区域的Reads中的SNV和InDel;
iii)编辑后的Reads被重新映射到参考基因组以获得适当的比对信息并与从原始输入BAM中剩下的的Read进行合并。

SNV/InDel脚本处理步骤:

1) 获得单倍型 "step1: deal with mutfile and get haplotypes":varben.deal_mut.checkMutInput.get_haplotypes
① 判断突变类型 varben.deal_mut.checkMutInput.check_haplotype -> varben.deal_mut.checkMutInput.check_mut_info

2)获得序列: "step2: deal haplotypes and get total_chosen_reads, total_chosen_reads_muts"
varben.deal_mut.dealHaplotype.deal_haplotype_multi

2. sveditor.py
SV变异模拟步骤:

1)读取结构变化(SV)模拟的类型分类:
类型1:Read2与断点A重合或者Read1与断点B重合
类型2:Read1与断点A重合或者Read2与断点B重合
类型3:断点落在配对Reads中间
类型4: 配对Read完全落在两个断点之间
类型5:断点同时与Read1和Read2重合

2)SV变异模拟:
i)根据BAM文件中指定的VAF,选择与指定断点有Overlap的Read;
ii)选择的Read根据删除区域分为五种类型,这些Read被编辑以产生 soft-clipper Reads和另一端Read;
iii)编辑后的Reads重新进行比对;
iv)合并重新比对的Read和的原始BAM中的剩余Read;


SV脚本处理步骤:

0)检测输入文件格式 "step0: prepare sv list" :varben.deal_sv.checkSVInput.check_sv_file

1)获得插入序列 "step1: get insert size of paired reads":varben.common.methods.get_insertSize_range
都是 [100, 1000]

2)获得编辑序列:"step2: deal with sv and get total edited reads"
①varben.deal_sv.dealSVType.deal_sv -->
②varben.deal_sv.dealSVType.deal_cnv -->
③varben.deal_sv.getReadsType.pos_type_classify --> ###里面设置了process=20,
④varben.deal_sv.getReadsType.posType_sub_paired -->
varben.deal_sv.dealSVType.get_write_reads --> ###输出需要增加或者删除或者修改的序列ID

3)将需要处理的序列写入Bam :"step3: get reads by region bed and write bam file"
①varben.deal_sv.getReadsByRegion.get_reads_by_region -->
②varben.common.bamconvert.getRegionReads --> ###生成bam
samtools view raw.bam -b -h
-o cnv_out/tempDir/used_tmp.bam
-U cnv_out/tempDir/exclude_tmp.bam
-L cnv_out/tempDir/consider_region.bed
③varben.common.bamconvert.bamIndex ---> ###创建bam索引
④varben.deal_sv.writeBamByChr.write_sub_bam

4)合并编辑后的read到原始文件中,并重新比对生成新的bam文件:"step4: merge edited reads and remap to new bam, consider about the tag, RG, life reads"
varben.deal_sv.mergeEditBam.merge_edit_bam

5)合并bam文件:"step5: remapped edit reads and merge"
varben.common.bamconvert.remap --> varben.common.bamconvert.bamToFastq
(edit.bam -> fq1,fq2 -> edit.rmap.bam -> edit.remap.sort.bam -> edit.sort.bam)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341