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具体算法的更多相关文章

  1. 关联规则算法Apriori的学习与实现

    转自关联规则算法Apriori的学习与实现 首先我们来看,什么是规则?规则形如"如果-那么-(If-Then-)",前者为条件,后者为结果.关联规则挖掘用于寻找给定数据集中项之间的 ...

  2. Frequent Pattern 挖掘之一(Aprior算法)(转)

    数据挖掘中有一个很重要的应用,就是Frequent Pattern挖掘,翻译成中文就是频繁模式挖掘.这篇博客就想谈谈频繁模式挖掘相关的一些算法. 定义 何谓频繁模式挖掘呢?所谓频繁模式指的是在样本数据 ...

  3. 【机器学习实战 第九章】树回归 CART算法的原理与实现 - python3

    本文来自<机器学习实战>(Peter Harrington)第九章"树回归"部分,代码使用python3.5,并在jupyter notebook环境中测试通过,推荐c ...

  4. Mahout推荐算法之SlopOne

    Mahout推荐算法之SlopOne 一.       算法原理 有别于基于用户的协同过滤和基于item的协同过滤,SlopeOne采用简单的线性模型估计用户对item的评分.如下图,估计UserB对 ...

  5. Aprior算法

    在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库.于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效 ...

  6. 关联分析Apriori算法和FP-growth算法初探

    1. 关联分析是什么? Apriori和FP-growth算法是一种关联算法,属于无监督算法的一种,它们可以自动从数据中挖掘出潜在的关联关系.例如经典的啤酒与尿布的故事.下面我们用一个例子来切入本文对 ...

  7. python数据分析算法(决策树2)CART算法

    CART(Classification And Regression Tree),分类回归树,,决策树可以分为ID3算法,C4.5算法,和CART算法.ID3算法,C4.5算法可以生成二叉树或者多叉树 ...

  8. 03机器学习实战之决策树CART算法

    CART生成 CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支.这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有 ...

  9. 机器学习(Machine Learning)算法总结-决策树

    一.机器学习基本概念总结 分类(classification):目标标记为类别型的数据(离散型数据)回归(regression):目标标记为连续型数据 有监督学习(supervised learnin ...

  10. 机器学习算法 --- Pruning (decision trees) & Random Forest Algorithm

    一.Table for Content 在之前的文章中我们介绍了Decision Trees Agorithms,然而这个学习算法有一个很大的弊端,就是很容易出现Overfitting,为了解决此问题 ...

随机推荐

  1. AI For Everyone_Week_1 By Andrew NG 课程英文

    AI For Everyone__Week__1 By Andrew NG 1 Introduction Welcome to AI for everyone. AI is changing the ...

  2. C语言之常量

    常量 常量,常量表达式和const关键字修饰的只读变量都存储在.rodata只读数据段中 1.字面值常量 literal 整形字面值 123, 0xff00ff 字符常量,类型总是 int, 'a', ...

  3. Problem K. Master of Sequence(二分)

    Problem K. Master of Sequence(二分) 补补题,人太菜了,一个题解看了两个小时才看明白(当然也可能是比赛的时候这个题完全不知道怎么下手qwq) 题目链接:http://ac ...

  4. TypeError: fs.existsSync is not a function | import { ipcRenderer } from 'electron'

    在electron的渲染进程中导包会发生TypeError: fs.existsSync is not a function node_modules/electron/index.js:6 var ...

  5. Nuxt.js 应用中的 schema:resolved 事件钩子详解

    title: Nuxt.js 应用中的 schema:resolved 事件钩子详解 date: 2024/11/13 updated: 2024/11/13 author: cmdragon exc ...

  6. XSS跨站脚本之portswigger labs练习

    目录 1 什么是XSS 2 XSS的类型有哪些 3 XSS攻击的过程和原理 4 XSS的防御 5 可能会用到的XSS Payload资源 6 靶场训练 portswigger labs 6.1 没有任 ...

  7. js+jquery实现贪吃蛇经典小游戏

    项目只使用到了html,css,js,jquery技术点,没有使用游戏框架,下载本地直接双击index.html 运行即可体验游戏效果. 项目展示 进入游戏 游戏开始 游戏暂停 html文件 < ...

  8. 曲线救国--访问dockerhub仓库

    前言 由于dockerhub也被墙了,导致基础镜像没法拉取.后面解封了,又被墙了... 在这次被墙之前,访问国外的速度也是堪忧,甚至访问不了k8s的镜像,基于此,分享一下笔者经验 使用Daocloud ...

  9. Linux中的文件属性和 文件类型

    文件类型及属性 文件属性 每列的含义 ​ [root@oldboyedu ~]# ll -i ​ 33575029 -rw-r--r--. 1 root root 337 Nov 2 10:26 ho ...

  10. Java虚拟机深入研究

    文章来自:http://www.qqread.com/java/w872354600.html Java技术与Java虚拟机  说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一 ...