svtools prune具体算法
svtools具有不同的子命令以实现不同的功能,其中一个就是lmerge。根据其help信息(cluster and prune a BEDPE file by position based on allele frequency)可以看出,它是对BEDPE文件内的变异进行聚类和修剪的。
zcat ${input_vcf_gz} | svtools afreq | svtools vcftobedpe | svtools bedpesort | svtools prune -s -d 100 -e 'AF' | svtools bedpetovcf
这里是svt-pipeline所用的命令,一共分为afreq、vcftobedpe、bedpesort、prune、bedpetovcf几个步骤。这对这几个步骤分别进行解释。
(1) afreq
这一步主要是对vcf文件添加一个等位频率的信息,即AF。我们这里所输入vcf文件是没有等位频率信息的,prune的修剪又是基于等位频率的,所以这里首先加上等位频率的信息。

图1.afreq执行之后的vcf INFO信息
上图所示,是afreq执行之后的vcf文件INFO信息,其中标红的位置是新加信息。添加了AF、NSAMP和MSQ信息。它们的含义可以在vcf文件的header部分找到,它们所代表的含义为:
AF, Description="Allele Frequency, for each ALT allele, in the same order as listed“
NSAMP, Description="Number of samples with non-reference genotypes"
MSQ, Description="Mean sample quality of positively genotyped samples"
这就是afreq所要做的。
(2) vcftobedpe
vcftobedpe即把vcf文件转换为bedpe文件,这两个文件在变异描述的格式上有所不同,而prune是针对bedpe文件进行变异聚类和修剪的,所以要把文件格式进行转换。

图2. 输入vcf文件

图3. 转换后的BEDPE文件
从图中可以看出,这里输入的vcf文件使用两行表示了同一个变异,使用1_1和1_2进行区分,但是在BEDPE文件中把这两行合并到了一行。
(3) bedpesort
bedpesort是对bedpe文件的排序。下图是对bedpe文件进行排序的方法,可以看出是按前6列逐次进行的排序,即左侧染色体、左侧起始位置、左侧终止位置、右侧染色体、右侧起始位置、右侧终止位置。

图4. Bedpe排序方法
(4) prune
接下来就是对已排序的bedpe文件进行聚类和修剪。在prune命令中会有三个常用的参数:-s,指定输入文件是经过排序的;-d指定一个碱基长度范围,用于后续聚类;-e指定一个指标,用于评估一个聚类内最优变异记录。
在把vcf文件转换为bedpe文件后,每个变异记录会有左侧起始位置、左侧终止位置和右侧起始位置、右侧终止位置,所有就构成了两个区间。Prune命令会按照-d参数指定的长度对这两个区间左右进行扩展,然后把这两个区间同时有重叠的变异记录放在一起成为一个聚类。然后遍历每个聚类内的记录,选择AF最大的那个记录作为最优记录,然后把其他记录里的SNAME信息添加到最优记录里,再把其他记录删除掉,作为修剪。
(5) bedpetovcf
最后就是把bedpe文件重新转换为vcf文件。
svtools prune具体算法的更多相关文章
- 关联规则算法Apriori的学习与实现
转自关联规则算法Apriori的学习与实现 首先我们来看,什么是规则?规则形如"如果-那么-(If-Then-)",前者为条件,后者为结果.关联规则挖掘用于寻找给定数据集中项之间的 ...
- Frequent Pattern 挖掘之一(Aprior算法)(转)
数据挖掘中有一个很重要的应用,就是Frequent Pattern挖掘,翻译成中文就是频繁模式挖掘.这篇博客就想谈谈频繁模式挖掘相关的一些算法. 定义 何谓频繁模式挖掘呢?所谓频繁模式指的是在样本数据 ...
- 【机器学习实战 第九章】树回归 CART算法的原理与实现 - python3
本文来自<机器学习实战>(Peter Harrington)第九章"树回归"部分,代码使用python3.5,并在jupyter notebook环境中测试通过,推荐c ...
- Mahout推荐算法之SlopOne
Mahout推荐算法之SlopOne 一. 算法原理 有别于基于用户的协同过滤和基于item的协同过滤,SlopeOne采用简单的线性模型估计用户对item的评分.如下图,估计UserB对 ...
- Aprior算法
在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库.于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效 ...
- 关联分析Apriori算法和FP-growth算法初探
1. 关联分析是什么? Apriori和FP-growth算法是一种关联算法,属于无监督算法的一种,它们可以自动从数据中挖掘出潜在的关联关系.例如经典的啤酒与尿布的故事.下面我们用一个例子来切入本文对 ...
- python数据分析算法(决策树2)CART算法
CART(Classification And Regression Tree),分类回归树,,决策树可以分为ID3算法,C4.5算法,和CART算法.ID3算法,C4.5算法可以生成二叉树或者多叉树 ...
- 03机器学习实战之决策树CART算法
CART生成 CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支.这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有 ...
- 机器学习(Machine Learning)算法总结-决策树
一.机器学习基本概念总结 分类(classification):目标标记为类别型的数据(离散型数据)回归(regression):目标标记为连续型数据 有监督学习(supervised learnin ...
- 机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm
一.Table for Content 在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现Overfitting,为了解决此问题 ...
随机推荐
- Pandas 空值数据的索引 位置 行号
前言 先说一下什么是pandas, 这个东西其实就是一个处理表格数据的一个库.可以把它看做是一个没有图形化界面的Excel. Pandas中的空值是非常多的,这体现了数据搜集的一个不可避免的方面.由于 ...
- 实现.NET 4.0下的Task类相似功能组件
实现 .NET 4.0 下的 Task 类相似功能:TaskExCum 组件详解 引言 随着 .NET 技术的发展,异步编程模型逐渐成为现代应用程序开发中的标准实践之一..NET 4.5 引入了 Ta ...
- Postman 免登录测试后端接口
今天跟测试同学学习了下用Postman免登录测试后端接口,测试同学除了会对我们系统前端测试外,一些后端接口涉及危险操作也会使用Postman 对接口进行测试,这个时候就需要解决一个接口免登录的问题,他 ...
- 2、oracle数据库基本概念
基本概念 一.数据库启动.监听启动.判断数据库是否可以连接的过程.感知实例的存在 虚拟机ip地址:192.168.56.12 这里需要修改一个地方:就是把本地主机Host-Only的ip地址修改为:1 ...
- java公式解析器学习与开发(1)
public class Evaluate { public static void main(String[] args) { Stack<String> ops = new Stack ...
- vue父组件向子组件传递一个对象,使用一个对象绑定多个 prop
如果你想要将一个对象的所有属性都当作 props 传入,你可以使用没有参数的 v-bind,即只使用 v-bind 而非 :prop-name.例如,这里有一个 post 对象: export def ...
- vue中使用百度地图
vue-cli创建的项目中使用百度地图,样式如下: 根据后台返回的不同的信息,展示不同的标记以及对应的标记信息,点击鼠标后展示弹窗 首先,引入vue-baidu-map,以展示地图,对应的命令是 np ...
- python之发送邮件(smtplib)
我们在测试完成后,都会发一份邮件也就是我们的测试报告,那么既然要自动化,是不是也可以通过python帮助我们发送邮件?当然这么强大的python可以帮助你完成这个需求 SMTP SMTP(Simple ...
- JDBC【4】-- jdbc预编译与拼接sql对比
在jdbc中,有三种方式执行sql,分别是使用Statement(sql拼接),PreparedStatement(预编译),还有一种CallableStatement(存储过程),在这里我就不介绍C ...
- Linux C/C++编程之静态库
[图书推荐]<Linux C与C++一线开发实践(第2版)>_linux c与c++一线开发实践pdf-CSDN博客 <Linux C与C++一线开发实践(第2版)(Linux技术丛 ...