如何用软件模拟NGS数据

为了评价一个工具的性能,通常我们都需要先模拟一批数据。这样相当于有了参考答案,才能检查工具的实际表现情况。因此对于我们而言,面对一个新的功能,可以先用模拟的数据测试下不同工具的优缺点。有如下几个工具值得推荐一下:

  • 'wgsim/dwgsim': 从全基因组中获取测序reads
  • 'msbar': EMBOSS其中一个工具,能够从单个序列中模拟随机突变
  • 'biosed': EMBOSS的一个工具,可以按照我们给定突变位点模拟
  • 'ReadSim': 专门用于模拟PacBio/Nanopore这类仪器产生的long read
  • 'Art': 目前最复杂的模拟工具,能够模拟测序仪测序引入的错误位点
  • 'Metasim': 用于模拟宏基因组得到的reads
  • 'Polyester': 用于模拟RNA-seq

值得注意的是,这些工具模拟效果是有限,比如建库操作中超声破碎会出现的误差就很难模拟。但是最好的用途就是看看不同生物学事件在数据的情况,比如说发生了“大规模倒置”的基因组得到的数据比对到参考基因组上会是什么情况。

使用dwgsim进行模拟

wgismdwgsim能够根据参考基因组模拟出测序reads,主要是二倍体基因组的SNPs和插入缺失(INDEL)多态位点。wgism容易安装,但是参考答案是以简单的文本格式保存,不容易可视化。dwgsimwgism启发,虽然安装稍微麻烦了点,但是参考答案是以VCF格式保存,很方便可视化。

# 请先安装好ncurse
# 安装dwgsim
mkdir -p ~/scr
mkdir -p ~/.local/bin
cd ~/src
git clone --recursive https://github.com/nh13/DWGSIM.git
cd DWGSIM
make
ln -s ~/src/DWGSIM/dwgsim ~/.local/bin/dwgsim
ln -s ~/src/DWGSIM/dwgsim_eval ~/.local/bin/dwgsim_eval

简单地模拟一批数据

# efetch 需要用到conda安装启动
# conda create -n entrez entrez-direct
# conda activate entrez
# 获取参考基因组
efetch -db=nuccore -format=fasta -id=AF086833 > genome.fa
# 模拟数据
~/.local/bin/dwgsim genome.fa data

会得到如下数据

|-- data.bfast.fastq.gz # 用于bfast
|-- data.bwa.read1.fastq.gz # 用于BWA的R1
|-- data.bwa.read2.fastq.gz # 用于BWA的R2
|-- data.mutations.txt
|-- data.mutations.vcf # VCF形式擦

随后将这批数据用BWA比对,以bcftools检测变异和参考答案比较一下。

# conda install bwa samtools bcftools
bwa index genome.fa
bwa mem genome.fa data.bwa.read1.fastq.gz data.bwa.read2.fastq.gz | samtools sort -o data.bwa.bam
samtools mpileup -uf genome.fa data.bwa.bam | bcftools call -mv -o data.bwa.vcf
samtools index data.bwa.bam

利用使用IGV可视化,检查分析结果和真集的一致性

说明samtools+bcftools找变异这个组合其实还是靠谱的,至少在动植物领域研究里应该够用。

如何用软件模拟NGS数据相关推荐

  1. GetOrganelle软件从ngs数据中组装线粒体、叶绿体基因组;GeSeq网站注释细胞系基因组

    GetOrganelle安装 conda install -c bioconda getorganelle or download from github unzip GetOrganelle-mas ...

  2. biostar handbook|如何模拟NGS测序结果

    如何用软件模拟NGS数据 为了评价一个工具的性能,通常我们都需要先模拟一批数据.这样相当于有了参考答案,才能检查工具的实际表现情况.因此对于我们而言,面对一个新的功能,可以先用模拟的数据测试下不同工具 ...

  3. 接口 同花顺_Fiddler模拟接口数据(mock)

    我们在测试过程中,经常会遇到查看不同接口数据前端页面展示的场景,今天我们就一起来看下如何用Fiddler模拟接口数据(mock). 01 mock定义 mock测试就是在测试过程中,对于某些不容易构造 ...

  4. 一文搞懂——软件模拟SPI

    关于stm32通信协议:软件模拟SPI.软件模拟I2C的总结(fishing_8)_To_be_a_fisher的博客-CSDN博客_stm32 软件spi 发现一篇写的软件模拟SPI的比较容易理解的 ...

  5. STM32F0 HAL库软件模拟串口发送数据

    试验STM32F0官方提供的例程的时候,希望看到程序中某些变量的值,但是程序中往往没有串口发送部分,自己加又非常麻烦. 而点亮LED的程序基本上每个例程都有.所以用点亮LED引脚模拟串口发送数据就很方 ...

  6. MAX31855电路和程序,实现SPI和软件模拟时序两种方式读取数据

    1. 概述 MAX31855为热电偶至数字输出转换器,内置14位模/数转换器(ADC).器件带有冷端补偿检测和修正.数字控制器.SPI兼容接口,以及相关的控制逻辑,在温度控制器.过程控制或监测系统中设 ...

  7. 如何用iMazing软件将苹果手机数据备份及功能详解

    如今手机俨然成为沟通交流的重要工具,里面存储了很多重要信息.但是如果不及时将数据备份,一旦丢失手机或损坏数据,后果将非常严重.苹果手机的数据备份是件非常复杂的事,但是有了iMazing软件之后则不一样 ...

  8. PCF8591 ---AD\DA转换器的使用(IIC通信的软件模拟与应用) (by 51单片机)

    依旧是借着蓝桥杯的机会,来学习一些模块,和软件模拟一些通信方式. 今天学习的模块是PCF8591,一款AD\DA转换器,使用IIC通信方式. 芯片的内部框图如下所示: 各引脚作用如下表所示: 仍旧和之 ...

  9. NGS数据的Error correction方法

    NGS数据的Error correction方法 发表评论 2,371 A+ 所属分类:Genomics 现在进行error-correciton的算法有三种: k-spectrum-based.Su ...

最新文章

  1. 隐私数据在隐私AI框架中的安全流动
  2. 计算机应用基础专科作业二,电子科大18秋《计算机应用基础(专科)》在线作业2...
  3. 哪里学php开发,哪里学web开发
  4. 【POJ - 1511】 Invitation Cards(Dijkstra + 反向建图 多源到单源最短路的处理)
  5. 可视化大屏设计指南,附20份可直接套用的实用模板
  6. java 复制文本内容_基于java文本复制的7种方式总结
  7. c++ -- 重载、重写(覆盖)和隐藏的区别
  8. linux 合并csv文件 cat,Python:将两个CSV文件合并为多级JSON
  9. java 图形化编程_JavaSE——Java图形化编程
  10. Linux 2.6.19.x内核编译配置选项简介
  11. Windows部署WSUS补丁服务器
  12. Java的Exception异常机制(一)
  13. 华为MateBookX i5 2017款 8G+256G win10系统触摸板失灵解决办法
  14. Outlook无法启动一直显示“正在启动”的解决方法
  15. 浏览器网页缩放对页面的影响
  16. 光猫批量自动化测试——交换机vlan划分
  17. JAVA时间存储类Period和Duration
  18. PHP快速入门-基础语法及面向对象
  19. 如何生成qq邮箱的授权码
  20. SUSCTF2022的tttree逆向wp

热门文章

  1. 关于 “<”运算符是为将来使用而保留的。 的解决办法
  2. Flutter-实现图片圆角的几种方式
  3. 喜马拉雅三战IPO: “声“意难做、4年累亏近30亿
  4. 876计算机大纲,876水力学考大纲.doc
  5. 中央一号文件力推乡村振兴,VR全景如何构建数字乡村?
  6. 数字图像处理matlab实践
  7. Https证书制作方法
  8. 1 个月吐血准备,我吃透了300道Java大厂面试题,这次绝对稳了!
  9. 正态分布的前世今生——如何发现的?
  10. JB开发之问题汇总 [jailbreak,越狱技术]