生信软件37 - 基于测序reads的变异进行单倍型分型工具WhatsHap

news2024/12/25 14:28:20

1. WhatsHap简介

WhatsHap是一种使用DNA测序reads的基因组变异进行定相(分型)的软件,即基于reads的定相或单倍型组装,特别适用于长reads (三代测序数据),但也兼容短reads的定相

Whatshap特点:

  1. 定相结果准确;
  2. 适用于Illumina、PacBio、Oxford Nanopor等测序reads数据;
  3. 支持对SNV、indel甚至复杂变异(如TCGAGAA)进行定相;
  4. 谱系定相模式使用来自相关个体(例如家系三人组)的reads来改善结果并降低覆盖要求;
  5. 较容易安装;
  6. 易于使用:输入1个VCF文件和一个BAM文件或多个BAM文件,输出一个定相的VCF;

2. Whatshap安装

支持conda安装和python安装,但python安装不能安装依赖,推荐conda安装。

# 直接conda安装
conda install whatshap -y


# conda 创建新环境并安装whashap
conda create -n whatshap-env whatshap

# 激活
conda activate whatshap-env

# 查看版本
whatshap --version

# 获取子命令帮助信息
whatshap SUBCOMMAND --help

Whatshap子命令:

![[子命令]]

3. 基于reads的定相和用WhatsHap分析定相变异

文献: https://doi.org/10.1007/978-1-0716-2819-5_8

在线文档:https://whatshap.readthedocs.io/

github地址: https://github.com/whatshap/whatshap.git

![[文献]]

4. 定相基本用法

建议使用高质量的短reads进行变异识别,然后使用长reads进行定相。WhatsHap可以对SNVs(单核苷酸变异)、插入、缺失、MNP(多个相邻SNVs)和“复杂”变异进行定相。软件将输入VCF中标记为杂合(基因型0/1)且具有适当覆盖度的变异作为核心定相算法的输入信息。

如果输入VCF是多样本VCF,WhatsHap将单独对所有样本进行单倍型分型。如果要对家系相关个体的样本进行定相,可以使用谱系定相模式来改进结果。

建议使用--reference提供FASTA参考基因组序列文件,特别是对于易出错的reads(PacBio,Nanopore),以便软件能实现重新比对变异检测算法。如果未提供参考序列文件,则仅可对SNV、插入和缺失进行定相。

# -o: 输出定相vcf文件
# --reference: 参考基因组路径
# input.vcf: 输入相同个体的vcf文件
# input.bam: 输入相同个体的bam文件

whatshap phase \
-o phased.vcf \
--reference=reference.fasta \
input.vcf \
input.bam

5. 谱系定相

Whatshap只使用ped文件的第2列(个体ID)、第3列(父亲ID)、第4列(母亲ID)。
谱系模式需要使用获取重组事件的成本,默认情况下,WhatsHap将假设要定相的染色体上的重组率恒定,可以通过提供选项--recombrate来改变重组率(以cM/Mb为单位)。默认值1.26 cM/Mb适用于人类基因组。

# --ped: PINK格式的ped文件, 至少有六列,#开头内容被忽略
# 示例如下:

# Fields: family, individual_id, paternal_id, maternal_id, sex, phenotype
FAMILY01 child father mother 0 1

whatshap phase \
--ped pedigree.ped \
--reference=reference.fasta \
-o phased.vcf \
input.vcf \
input.bam

6. 统计相位信息

# 打印单个VCF文件的定相统计信息
whatshap stats input.vcf

7. 可视化分型结果

借助IGV 基因组浏览器可视化定相结果。WhatsHap可以从描述单倍型块的定相VCF文件创建GTF文件,只需要使用phased.vcf中的定相结果作为输入。使用打开IGV中的phased.vcfphased.gtf以检查单倍型块。

whatshap stats \
--gtf=phased.gtf \
phased.vcf

如果配对或双端PE读段用于定相,则单体型块可以是交错的或嵌套的。

![[可视化]]

8. 通过单体型标记读数以实现可视化

# -o: 输出单倍型标记BAM文件
# 在BAM文件中根据其属于哪种单倍型用`HP:i:1`或`HP:i:2`标记每个reads

whatshap haplotag \
-o haplotagged.bam \
--reference reference.fasta \
phased.vcf.gz \
alignments.bam
8.1 可视化单倍型块

IGV右键单击BAM轨迹并选择Color Alignments by → tag, 然后键入PS并单击“确定”。

![[haplotagged-PS.webp]]

8.2 可视化单倍型分配

IGV选择Color Alignments by → tag并键入HP

红色的读数属于一种单倍型,而蓝色的读数属于另一种单倍型。灰色读数是那些无法标记的读数,通常是因为它们不覆盖任何杂合变异。

![[haplotagged-HP.webp]]

9. 对变异进行基因分型

给定包含变异位置的VCF文件,它计算所有三种基因型(0/0,0/1,1/1)的基因型可能性,并将它们与基因型预测一起输出到VCF文件中。

定相时强烈建议提供参考序列,以启用重新对齐模式。

# -o: 输出包含分型结果的vcf文件

whatshap genotype \
--reference ref.fasta \
-o genotyped.vcf \
variants.vcf \
reads.bam

如果没有输入VCF文件可用,WhatsHap可以产生候选SNV位置,这些位置可以用作上述基因分型命令的输入。以下命令来实现:

whatshap find_snv_candidates \
ref.fasta \
input.bam \
-o variants.vcf


# 如果Nanopore读取用于调用SNP,需将选项-nanopore添加到上述命令中
whatshap find_snv_candidates \
ref.fasta \
input.bam \
-o variants.vcf \
-nanopore

10. 二倍体定相

除了二倍体定相,WhatsHap还通过不同的算法支持多倍体定相。命令与phase模式命令类似。

# --ploidy: 倍性,人类为2倍体

whatshap polyphase \
input.vcf \
input.bam \
--ploidy p \
--reference ref.fasta \
-o output.vcf

11. 比对变异VCF文件

whatshap compare主要根据切换误差(switch errors)来评估差异,但它也计算翻转误差和汉明距离(flip errors and Hamming distance)。

# --names用于将名称“truth”分配给第一个输入文件,将“whatshap”分配给第二个输入文件。
# --tsv-pairwise: \t分割的结果文件

whatshap compare \
--names truth,whatshap \
--tsv-pairwise eval.tsv \
truth.chr1.vcf \
phased.chr1.vcf

12. 使用haplotaged BAM文件对VCF文件进行分型

给定一个单倍标记的BAM文件(haplotagged.bam)、一个VCF文件和一个bam index,此命令序列输出一个分型的VCF文件。

# 常见vcf.gz索引
tabix input.vcf.gz

samtools index haplotagged.bam

# -o: 输出分型的vcf文件

whatshap haplotagphase \
-r reference.fasta \
input.vcf.gz \
haplotagged.bam \
-o output.vcf.gz

生信软件文章推荐

生信软件1 - 测序下机文件比对结果可视化工具 visNano

生信软件2 - 下游比对数据的统计工具 picard

生信软件3 - mapping比对bam文件质量评估工具 qualimap

生信软件4 - 拷贝数变异CNV分析软件 WisecondorX

生信软件5 - RIdeogram包绘制染色体密度图

生信软件6 - bcftools查找指定区域的变异位点信息

生信软件7 - 多线程并行运行Linux效率工具Parallel

生信软件8 - bedtools进行窗口划分、窗口GC含量、窗口测序深度和窗口SNP统计

生信软件9 - 多公共数据库数据下载软件Kingfisher

生信软件10 - DNA/RNA/蛋白多序列比对图R包ggmsa

生信软件11 - 基于ACMG的CNV注释工具ClassifyCNV

生信软件12 - 基于Symbol和ENTREZID查询基因注释的R包(easyConvert )

生信软件13 - 基于sambamba 窗口reads计数和平均覆盖度统计

生信软件14 - bcftools提取和注释VCF文件关键信息

生信软件15 - 生信NGS数据分析强大的工具集ngs-bits

生信软件16 - 常规探针设计软件mrbait

生信软件17 - 基于fasta文件的捕获探针设计工具catch

生信软件18 - 基于docker部署Web版 Visual Studio Code

生信软件19 - vcftools高级用法技巧合辑

生信软件20 - seqkit+awk+sed+grep高级用法技巧合辑

生信软件21 - 多线程拆分NCBI-SRA文件工具pfastq-dump

生信软件22 - 测序数据5‘和3‘端reads修剪工具sickle

生信软件23 - Samtools和GATK去除PCR重复方法汇总

生信软件24 - 查询物种分类学信息和下载基因组TaxonKit和ncbi-genome-download

生信软件25 - 三代测序数据灵敏比对工具ngmlr

生信软件26 - BWA-MEM比对算法性能更好的bwa-mem2

生信软件27 - 基于python的基因注释数据查询/检索库mygene

生信软件28 - fastq与bam的reads数量计算与双端fastq配对检测工具fastq-pair

生信软件29 - 三代数据高效映射精确的长读段比对工具mapquik

生信软件30 - 快速单倍型分析工具merlin

生信软件31 - Bcftools操作VCF/BCF文件高级用法合集

生信软件32 - 变异位点危害性评估预测工具合集

生信软件33 - Wgsim生成双端(PE) fastq模拟数据

生信软件34 - 大幅提升Python程序执行效率的工具Pypy

生信软件35 - AI代码编辑器Cursor

生信软件36 - SAM/BAM/CRAM文件插入SNV/INDEL/SV工具Bamsurgeon

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2170195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu22.04安装cudnn详细步骤

下载指定版本的cudnn https://developer.nvidia.com/rdp/cudnn-archive#a-collapse804-111 安装 sudo dpkg -i cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb 根据上步提示: sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-08A7D361-…

【C++】STL标准模板库容器set

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Visual Studio 2022 目录 📌关联式容器set(集合)简介 📌set(集合)的使用 🎏set(集合)的模板参数列表 🎏set(集合)的构造函数 🎏set(集合)的迭代…

【算法题】72. 编辑距离-力扣(LeetCode)

【算法题】72. 编辑距离-力扣(LeetCode) 1.题目 下方是力扣官方题目的地址 72. 编辑距离 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符删除一个字符替换一个…

哈希算法以及容器实现

哈希 一,哈希算法1.什么是哈希2.哈希产生的原因3.常见哈希算法4.闭散列( 哈希表)1.线性探测2.二次探测 5.开散列(哈希桶)1.开散列插入2.开散列扩容 二,代码实现1.哈希表2.哈希桶1.迭代器的实现2.底层容器的…

C++ --- 模板为什么不能分离编译?

模板为甚么不能分离编译,但普通函数却可以? 一、前置知识二、普通函数能分离编译的原因三、模板不能分离编译的原因 一、前置知识 编译阶段: 源代码到目标代码: 编译器首先将源代码(如C/C文件)翻译成汇编语言&#x…

初学51单片机之I2C总线与E2PROM

首先先推荐B站的I2C相关的视频I2C入门第一节-I2C的基本工作原理_哔哩哔哩_bilibili 看完视频估计就大概知道怎么操作I2C了,他的LCD1602讲的也很不错,把数据建立tsp和数据保持thd,比喻成拍照时候的摆pose和按快门两个过程,感觉还是…

CentOs-Stream-9 设置静态IP外网访问

CentOs-Stream-9 设置静态IP,实现外网访问。这里面有些需要注意的地方,比如IP网段跟我们的宿主机不一样,需要查看具体的网络适配器网段,这样可以快速实现网络互通;另外它的网络配置文件也是不一样的。网络适配器对应的…

放弃 startActivityForResult,Activity Result API 优雅使用

放弃 startActivityForResult,Activity Result API 优雅使用 Activity Result API 是 androidx 中的一个新 api,旨在替代原有的 startActivityForResult 方法,用于在两个 Activity 或 Fragment 交换数据、获取返回结果。 过去如果 Activity…

了解独享IP的概念及其独特优势

在网络世界中,IP地址是用来识别和定位设备的标识符。独享IP是一种服务模式。使用代理服务器时,用户拥有一个不与其他用户共享的专用独立IP地址。与共享IP相比,独享IP为用户提供了更高的独立性和隐私保护。下面详细介绍独享IP的定义、工作原理…

OJ在线评测系统 后端 代码沙箱原生实现 初始化项目

代码沙箱Java原生实现 之前我们完成了快速的前端页面开发 重点是在后端 历史问题修复 Java原生代码沙箱实现 docker代码沙箱实现 解决历史遗留问题 代码编辑器切换语言失败 监听language属性 动态更改编辑器的语言 我们在这里实现的是一个线程形式的监听 watch(() > …

总结拓展十一:S4 HANA和ECC区别

第一节 S/4 HANA系统简介 SAP系统的产品线 R/1版本——主要财务模块R/3版本——基本实现全模块ECC6.0——2005年推出(ECC是2004年推出)HANA——数据库产品——属于内存数据库BW on HANA——HANA与数据分析相结合 拓展: 数据库类型&#x…

易盾滑块验证码

前言 这玩意我就搞定get请求和check请求,那个b接口的d参数还是有点问题,还有就是b接口的返回参数怎么用,是不是只是加了cookie我也不确定,所以有高手的话希望可以指导一下。我的虽然能够成功,但是只有前2次成功&#x…

ARM V8 A32常用指令集

文章目录 1. 算术指令1.1 加法命令ADD\ADDS1.2 带进位加法命令ADC\ADCS1.3减法命令SUB\SUBC1.4带借位减法命令SBC\SBCS 2.逻辑运算指令2.1逻辑与指令AND、ANDS2.2位清零指令BIC2.3逻辑或指令ORR\ORRS2.4逻辑异或指令2.5 逻辑左移LSL2.6逻辑右移LSR 3.比较指令3.1直接比较指令CM…

2024年华为杯研究生数学建模竞赛C题 波形机理建模+GBDT 完整文章代码|进阶可视化

2024年华为杯研究生数学建模竞赛C题 波形机理建模GBDT 完整文章代码|进阶可视化 全部问题已经更新完成,可视化图表20余张,代码量千余行,实在累到了… 由于篇幅原因,此处放出部分内容供参考~ 完整内容可以从底部名片的群中获取~ …

vue3监听子组件的生命周期

1.Vue3使用vue&#xff0c;vue2使用hook template:<compG vue:mounted"doSomething"></compG>script://监听子组件生命周期let doSomething (e: any) > {console.log("没有啊11", e);}; 2.打印结果

昇思MindSpore进阶教程--轻量化数据处理

大家好&#xff0c;我是刘明&#xff0c;明志科技创始人&#xff0c;华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享&#xff0c;如果你也喜欢我的文章&#xff0c;就点个关注吧 正文开始 在资源条件允许的情况下&#…

【趣学Python算法100例】数制转换

问题描述 给定一个M进制的数x&#xff0c;实现对x向任意一个非M进制的数的转换。 问题分析 要搞定这道题&#xff0c;关键在于学会不同数制之间的转换&#xff0c;主要是二进制、八进制、十六进制和十进制这几种。理解下面这几个概念非常重要&#xff1a; 基数&#xff1a;…

Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring

基础介绍 单向链表中的每个节点包含数据和指向下一个节点的指针。其特点是每个节点只知道下一个节点的位置&#xff0c;使得数据只能单向遍历。 示意图如下&#xff1a; 双向链表中的每个节点都包含指向前一个节点和后一个节点的指针。这使得在双向链表中可以从前向后或从后…

Docker仓库搭建

目录 一、Docker Hub 二、私有Registry仓库搭建 1、下载并开启仓库镜像registry 2、Registry加密传输 3、建立一个registry仓库 4、为客户端建立证书 5、测试 6、为仓库建立登录认证 三、Harbor仓库搭建 Docker 仓库&#xff08;Docker Registry&#xff09; 是用于存…

8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征

特征工程是机器学习流程中的关键步骤&#xff0c;在此过程中&#xff0c;原始数据被转换为更具意义的特征&#xff0c;以增强模型对数据关系的理解能力。 特征工程通常涉及对现有数据应用转换&#xff0c;以生成或修改数据&#xff0c;这些转换后的数据在机器学习和数据科学的…