使用Minimac进行基因型填充

2023-10-17 04:10

本文主要是介绍使用Minimac进行基因型填充,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注”生信修炼手册”!

Minimac是一款经典的基因型填充软件,该软件也是以内存消耗小,运行速度快而著称,历经了MaCH, minimac, minimac2, minmac3多个版本的更新换代,目前最新版本为v4, 网址如下

https://genome.sph.umich.edu/wiki/Minimac4

源代码保存在github上,网址如下

https://github.com/statgen/Minimac4

为了减少内存消耗,和beagle软件类似,minimac提出了一种名为M3VCF的格式,用来存储referenc panel的单倍型信息,将单倍型划分为不同的block, 示意如下

上图表示的是9个SNP位点构成的8种单倍型,minimac会根据染色体位置划分成不同的block区间,识别block区间内的unique haplotypes。两个邻近的block区域必须有一个重叠的位点,图中的9个位点划分成了两个block, 1-6号位点对应block B, 6到9号位点对应block B+1。在block B中,有3种唯一的单倍型,对应三种不同颜色。

M3VCF的内容示意如下

和VCF格式类似,在每个blcok的开头会有一行用于显示block的信息,包含的变异位点数VARIANTS,unique haplotype的个数REPS等,详细的介绍请参考以下链接

https://genome.sph.umich.edu/wiki/M3VCF_Files

相比VCF格式,该格式磁盘占用小,读取速度更快,内存消耗小。官网提供了1000G的reference panel供下载,链接如下

https://genome.sph.umich.edu/wiki/Minimac4#Reference_Panels_for_Download

该软件推荐的基因型填充pipeline步骤如下

  1. study样本分型结果的质量控制,参考GWAS的质控条件

  2. 对质控后的分型结果进行pre-phasing, 支持MACH和shapeit两个软件的结果

  3. 将pre-phasing的结果转化成VCF格式

  4. 选择reference panel,推荐1000G或者HRC

  5. 进行填充

实际操作中典型的用法如下

1. pre-phasing

以MACH为例,用法如下

mach1 \
-d Gwas.chr20.Unphased.dat \
-p Gwas.chr20.Unphased.ped \
--rounds 20 \
--states 200 \
--phase \
--interim 5 \
--sample 5 \
--prefix Gwas.Chr20.Phased.Output

MACH要求输入的分型结果格式为dat和ped格式,详细的解释参见以下链接

http://csg.sph.umich.edu/abecasis/Merlin/tour/input_files.html

2. convert to vcf

通过MACH2VCF进行格式转换,用法如下

mach2VCF \
--haps Gwas.Chr20.Phased.Output.hap \
--snps Gwas.Chr20.Phased.Output.snps \
--prefix Gwas.Chr20.Phased.Output.VCF.Format

该脚本可以从以下链接下载

ftp://share.sph.umich.edu/minimac3/Mach2VCF.v1.Source.Binary.tar.gz

3. impute

采用minimac4进行填充,用法如下

minimac4 \
--refHaps refPanel.m3vcf \
--haps Gwas.Chr20.Phased.Output.VCF.Format.vcf \
--prefix testRun \
--cpus 5

minimac4会自动将染色体拆分成不同的区间,在结合多线程,可以大大提高运行速度。

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

这篇关于使用Minimac进行基因型填充的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/222848

相关文章

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl