biostar handbook|如何模拟测序结果

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

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

  • '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
cd ~/src
git clone --recursive https://github.com/nh13/DWGSIM.git
cd DWGSIM
make
ln -s ~/src/DWGSIM/dwgsim ~/bin/dwgsim
ln -s ~/src/DWGSIM/dwgsim_eval ~/bin/dwgsim/dwgsim_eval

简单地模拟一批数据

# 获取参考基因组
efetch -db=nuccore -format=fasta -id=AF086833 > genome.fa
# 模拟数据
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检测变异和参考答案比较一下。

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

使用IGV可视化如下

img_4803dbc074b5b4dbd9760ff6ce5093bc.jpe
IGV可视化变异

说明samtools+bcftools找变异这个组合肯定靠谱。

目录
相关文章
|
7月前
|
人工智能 自然语言处理 数据可视化
Agentic Reasoning:推理界RAG诞生!牛津大学框架让LLM学会『组队打怪』:动态调用搜索/代码代理,复杂任务准确率飙升50%
Agentic Reasoning 是牛津大学推出的增强大型语言模型(LLM)推理能力的框架,通过整合外部工具提升多步骤推理、实时信息检索和复杂逻辑关系组织的能力。
277 1
|
存储 自然语言处理 搜索推荐
分布式搜索引擎ElasticSearch
Elasticsearch是一款强大的开源搜索引擎,用于快速搜索和数据分析。它在GitHub、电商搜索、百度搜索等场景中广泛应用。Elasticsearch是ELK(Elasticsearch、Logstash、Kibana)技术栈的核心,用于存储、搜索和分析数据。它基于Apache Lucene构建,提供分布式搜索能力。相比其他搜索引擎,如Solr,Elasticsearch更受欢迎。倒排索引是其高效搜索的关键,通过将词条与文档ID关联,实现快速模糊搜索,避免全表扫描。
549 88
|
存储 算法 Linux
.bz2是什么格式的文件?Linux如何解压这种类型的文件?
【8月更文挑战第3天】.bz2是什么格式的文件?Linux如何解压这种类型的文件?
1805 1
|
10月前
|
人工智能 监控 物联网
探索信息技术的前沿:推动社会进步与创新的强大力量
探索信息技术的前沿:推动社会进步与创新的强大力量
262 3
|
Java Linux Android开发
给TV添加一个投屏热键:基于MTK9269 android 9.0
本文介绍了在基于MTK9269 Android 9.0系统的电视上添加投屏热键的方法,包括配置红外遥控器按键映射、在PhoneWindowManager.java中添加按键响应代码,以及创建一个接收Intent的Android应用程序来处理热键触发的动作。
411 1
给TV添加一个投屏热键:基于MTK9269 android 9.0
|
JavaScript 小程序 Java
基于微信小程序的家政服务预约系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的家政服务预约系统的设计与实现(源码+lw+部署文档+讲解等)
172 1
|
前端开发 JavaScript 数据库
饿了么ui自带的两种远程搜索(模糊查询)用法讲解
饿了么ui自带的两种远程搜索(模糊查询)用法讲解
653 0
|
Android开发
如何在Eclipse中显示空格(space)和制表符(tab)
在ECLIPSE开发中,我们有时无法区分空格(SPACE)和制表符(TAB),通过下面的选择设置就能很好区分 Window->Preferences->General->Editors->Text Editors->Show whitespace characters ...
1240 0