TAD calling 之 insulation score 分析

1. 导读

本文主要对insulation score 的提出与计算方法进行简要的介绍,并展示一个计算insulation score 的过程。

2. 定义

insulation score 是dekker实验室在2015年发表于Nature上的Condensin-driven remodelling of X chromosome topology during dosage compensation文章中提出的,其主要用于TAD相关的分析与表征,目前insulation score主要用于识别TAD

3. 计算方法

3.1. 计算insulation score

	在给定的区域内,沿着互作矩阵的对角线,以一个正方形的滑动窗口,从上至下滑动,计算每个窗口内互作程度值的总和。
	这些`bin`之间存在这很强的`insulation`现象,例如在`TAD`的边界,这些区域的`insulation score` (根据`insulation square测定`)很低。
	那些互作程度较高,比如`TAD`内部的区域,它们的`insulation score` 很高。
	这些`insulation score` 很低的区域,可能就是潜在的`TAD`边界。

3.2. insulation score标准化

ISavg: 是所有IS值的平均值

3.3. 计算每个bindelta

	将每个`bin`的互作强度值作为`value`,画出其在染色体上的波动曲线,波谷处就是需要识别的边界。为了识别出黑色曲线中的波谷,方法中又定义了一个`window`,对每个`bin`内的`insulation`值计算`delta`值,最终红色曲线中经过X轴的坐标即为`insulation score`值曲线的波谷,也就是TAD边界的位置(从上图可以看到,红色曲线穿过0刻度线的点,对应的就是黑色波动曲线的波谷)。

3.4. 计算TAD边界

	由于该方法计算的是`TAD`的边界位置,因此`TAD domain`的位置区域,需要进一步的转换,才能得到。

4. 公式总结

5. 实战

下面介绍如何用FAN-C计算insulation score

5.1 install

pip install fanc -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 推荐使用conda进行安装
conda create -n fanc python=3.7
conda activate fanc
conda install fanc

5.2. example

  • 计算

利用不同的windows size计算insulation score

fanc insulation ./example.hic ./example.insulation \
-w 1000000 1500000 2000000 2500000 3000000 3500000 4000000 \
-o bed  # 输出bed 格式
  • TAD强度变化图

TAD边界强度变化图,大体上可以反映TAD之间隔绝情况,绝缘系数越低,TAD之间交互越弱。

  • 绘图
fancplot -o ./insulation.png chr18:18mb-28mb \
-p ./example.hic -m 4000000 -vmin 0 -vmax 0.05 \
-p ./example.insulation

  • 曲线图
fancplot --width 6 -o ./example.png \
chr18:18mb-28mb -p triangular ./example.hic -m 4000000 \
-vmin 0 -vmax 0.05 -p line ./example.insulation_1mb.bed \
./example.insulation_2mb.bed -l "1mb" "2mb"

本文转载于网络 如有侵权请联系删除

相关文章

  • 云存储技术硬核内幕(33) ——旧制度与大革命

    上回说到,子虚在方老师的桌上发现了一本厚厚的书,这是什么书呢?刚才回答是《金瓶梅》的同学请自觉出去面壁5分钟。这本手册是《Intel64andIA-32ArchitecturesSoftwareDeveloper'sManual》,全书共4卷,学习之后可以对x86计算机的工作机制有庖丁解牛一般的深入理解。那么,研究云计算的存储系统,为什么要读这本书呢?方老师回答了子虚两个词:SPDK,PMDK。这,又要从存储硬件的发展说起了。计算机的存储器最初是磁带、磁鼓、磁芯和软盘等容量小,性能低下的介质,直到这个家伙的出现——没错,这个体积像冰箱一样的东西就是最早的硬盘——IBM305,容量为5MB,1956年正式面世。1973年,IBM3340面世,容量为30MB,由于当年流行的西部影片中的常见的元素“温彻斯特来福枪”,这款硬盘被起了个绰号“温彻斯特”,从此,使用同轴盘片,并与磁头密封在一个盒子里的磁盘被称为“温彻斯特硬盘”。人们也经常用和同轴盘片性状类似的圆柱体图形来指代硬盘。数十年来,温彻斯特硬盘的容量从30MB发展到了14TB,但由于机械结构的缘故,其读写性能受制于两个因素:1、

  • 输出好看的表格,就用这个 Python 库!

    #1.前言最近在用Python写一个小工具,这个工具主要就是用来管理各种资源的信息,比如阿里云的ECS等信息,因为我工作的电脑使用的是LINUX,所以就想着用python写一个命令行的管理工具,基本的功能就是同步阿里云的资源的信息到数据库,然后可以使用命令行查询。因为信息是展现在命令行中的,众所周知,命令行展现复杂的文本看起来着实累人,于是就想着能像表格那样展示,那看起来就舒服多了。prettytable库就是这么一个工具,prettytable可以打印出美观的表格,并且对中文支持相当好(如果有试图自己实现打印表格,你就应该知道处理中文是多么的麻烦)#2.安装prettytable并非python的内置库,通过pipinstallprettytable即可安装。#3.示例我们先来看一个示例:#!/usr/bin/python #**coding:utf-8** importsys fromprettytableimportPrettyTable reload(sys) sys.setdefaultencoding('utf8') table=PrettyTable

  • 日志服务器(13)

    指定数据源修改数据源为数据库(也可以为文件,默认是文件)指定正确的数据库连接参数点击【Next】完成点击【Finish】进入了首页,由于我们配置中启用了弹出信息,所以鼠标指到哪条信息上,就有一个小窗口显示日志概要,点击进一条信息可以查看详细信息Tip:如果想修改配置可以清空config.php重来[root@h105loganalyzer]#pwd /var/www/html/loganalyzer [root@h105loganalyzer]#>config.php [root@h105loganalyzer]#复制查看日志统计点击【Statistics】选项卡Note:统计的图形界面需要php-gd如果没有会产生如下空白和报错Tip:解决办法是安装php-gd,切换加载环境,重启httpd服务Inthisreleasei686-mingw32hostedcrosscompilersAArch32bare-metaltarget(arm-eabi)gcc-arm-8.2-2018.08-i686-mingw32-arm-eabi.tar.xzgcc-arm-8.2-2018.0

  • ES 基础知识点总结

    为什么使用ES?在传统的数据库中,如果使用某列记录某件商品的标题或简介。在检索时要想使用关键词来查询某个记录,那么是很困难的,假设搜索关键词"小米",那么sql 语句就是 select*fromproductwheretitlelikeconcat("%","小米","%")复制这样即使title 列上包含索引,索引也会失效。而如果使用全文索引,因为B+ 树不支持全文索引,所以选择了全文索引就失去了B+ 遍历高效的优点。所以ES 就登场了,ES 之所以能高效检索,主要原因就是其倒排索引的特点。常规的索引,也就是正向索引,查询的过程是获取整条数据,然后从整条数据中来匹配关键词,如果包含就返回。而倒排索引是将数据拆分成多个关键词,每个关键词都作为一个倒排索引,然后查询时直接判断匹配,如果存在就返回该数据。这样因为使用了索引效率就极大的提高了。概念索引:相当于MySQL 的库概念。类型:相当于MySQL 的表概念,在ES7被移除。文档:相当于MySQL 的行记录概念。字段:相当于MySQL 的列概念。分片:将某一

  • 10分钟了解啥是数仓

    随着互联网及物联网等技术发展,越来越多的数据被生成,如何有效利用这些数据就成为了企业决胜的法宝了。大型公司会基于数据做出BI、推荐系统、决策支持、统计分析、报表等业务。 其中数据存储涉及众多知识点,本文目的就是对这些名词术语及内涵进行解析,便于读者对数据平台相关的概念有全面的认识。1OLTPVSOLAP1970年随着关系数据库理论的提出,诞生了一系列经典的RDBMS,如MySQL、Oracle、SQLServer、DB2等。这些RDBMS为社会信息化的发展做出的重大贡献。然而随着数据库使用范围的不断扩大,它被逐步划分为操作型数据库OLTP跟分析型数据库OLAP。1.1OLTP操作型数据库OLTP(On-LineTransactionProcessing联机事务处理)也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对记录进行CRUD。OLTP模式下用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。1.2OLAP分析型数据库OLAP(On-LineAnalyticalProcessi

  • 模块机制

    模块机制CommonJS规范CommonJS规范模块引用模块定义模块标识规范涵盖了模块二进制Buffer字符集编码I/O流进程环境文件系统套接字单元测试Web服务器网关接口包管理Node的模块实现模块核心模块文件模块Node对引入过的模块都会进行缓存,以减少二次引入时的开销Node缓存的是编译和执行之后的对象模块标识符分析核心模块路径形式的文件模块自定义模块模块路径分析Node在定位文件模块的具体文件时制定的查找策略,具体表现为一个路径组成的数组逐个尝试模块路径中的路径,直到找到目标文件为止沿路径向上逐级递归,直到根目录下的node_modules目录文件定位文件扩展名分析·Node会按.js、.json、.node的次序补足扩展名,依次尝试目录分析和包·require()通过分析文件扩展名之后,可能没有查找到对应文件,得到一个目录Node会将目录当做一个包来处理模块编译Node会新建一个模块对象,然后根据路径载入并编译.js文件。通过fs模块同步读取文件后编译执行.node文件。这是用C/C++编写的扩展文件,通过dlopen()方法加载最后编译生成的文件.json文件。通过fs模块

  • FastJson 1.1.26升级到1.2.58后出现的问题及解决方法

    astjson曝出代码执行漏洞,恶意用户可利用此漏洞进行远程代码执行,入侵服务器,漏洞评级为“高危”。风险:高风险 方式:黑客通过利用漏洞可以实现远程代码执行 影响:1.2.24及之前版本 安全版本:>=1.2.28集团强制要求更新jar包版本,然后各个系统出现各种错误参考:https://www.cnblogs.com/shoren/p/fastjson.html参考:https://www.v2ex.com/t/348227参考:https://blog.csdn.net/weixin_34049948/article/details/85203048参考:https://blog.csdn.net/heidou_2016/article/details/89210436以上都看了一下因为自身项目特殊性,controller层和service层这两层分别部署在不同的服务器,所以问题和上面都不一样但是看出来了,是有关序列化和反序列化的问题,因为无论service层还是controller层都没有问题,本地开发环境也没有问题,只有到了两台测试服务器(controller,serv

  • 万元AI机皇!华为mate 20系列发布:搭载麒麟980,还能当充电宝,稳!

    新智元编辑部【新智元导读】余承东刚刚在英国伦敦发布华为下半年最重要的手机——Mate20系列,包括四款手机:Mate20、Mate20Pro、Mate20X和Mate20RS保时捷设计。价格上,华为Mate系列已经超过了苹果最高配的价格。震撼!AIWORLD2018世界人工智能峰会开场视频双NPU手机终于出现了!余承东刚刚在英国伦敦发布华为下半年最重要的手机——Mate20系列,包括四款手机:Mate20、Mate20Pro、Mate20X和Mate20RS保时捷设计。Mate20系列是华为首款搭载7nm制程工艺麒麟980芯片手机,双NPU带来AI算力大幅提升。价格上,最贵的Mate20RS保时捷设计最高售价2095欧元(约合16770人民币),超越了最高售价的iPhoneXSMax(12799元人民币),高出4000元左右。在发布会上,余承东还一口气发布了多款手表、手环等产品,亮点颇多,一起来看。内核:双NPU加持,AI相机性能更强大今年8月底,余承东在柏林发布华为麒麟980芯片,这款AI芯片创造了6个世界第一: 全球最早商用的台积电7nm工艺的手机SoC芯片全球首次实现基于

  • 用一句话总结常用的机器学习算法

    广而告之SIGAI-AI学习交流群的目标是为学习者提供一个AI技术交流与分享的平台。导言浓缩就是精华。想要把书写厚很容易,想要写薄却非常难。现在已经有这么多经典的机器学习算法,如果能抓住它们的核心本质,无论是对于理解还是对于记忆都有很大的帮助,还能让你更可能通过面试。在本文中,SIGAI将用一句话来总结每种典型的机器学习算法,帮你抓住问题的本质,强化理解和记忆。下面我们就开始了。贝叶斯分类器核心:将样本判定为后验概率最大的类贝叶斯分类器直接用贝叶斯公式解决分类问题。假设样本的特征向量为x,类别标签为y,根据贝叶斯公式,样本属于每个类的条件概率(后验概率)为:分母p(x)对所有类都是相同的,分类的规则是将样本归到后验概率最大的那个类,不需要计算准确的概率值,只需要知道属于哪个类的概率最大即可,这样可以忽略掉分母。分类器的判别函数为:在实现贝叶斯分类器时,需要知道每个类的条件概率分布p(x|y)即先验概率。一般假设样本服从正态分布。训练时确定先验概率分布的参数,一般用最大似然估计,即最大化对数似然函数。贝叶斯分分类器是一种生成模型,可以处理多分类问题,是一种非线性模型。决策树核心:一组嵌套

  • Nagios监控系统

    Nagios是一款开源的免费网络监视工具,可以监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员。流量监控不是他的强项,流量监控建议使用cacti(可以绘制非常直观的图形)一、nagios主要可以监控以下方面:主机是否宕机(通过ping命令,如果ping不通会认为主机属于宕机状态,但不影响所监控的其他服务)服务器资源(cpu使用率、硬盘剩余空间等)网络服务(smtp\pop3\http\)监控网络设备(路由器、交换机等)二、nagios工作原理Nagios本身不包括监控主机和服务的功能。所有的监控、监测功能都是通过各种插件来完成的。安装完nagios之后,在nagios主目录下的/libexex里面放有nagios自带的插件,如:check_disk是检查磁盘空间的插件,check_load是检查cpu负载的插件,每一个插件可以通过运行./check_xxx-h命令来检查其使用方法和功能。三、nagios的四种监控状态Nagios可以识别四种状态返回信息。0(OK)表示状态正常(绿色显示),1(

  • 机器学习中的基本数学知识

    机器学习中的基本数学知识注:本文的代码是使用Python3写的。机器学习中的基本数学知识线性代数(linearalgebra)第一公式矩阵的操作换位(transpose)矩阵乘法矩阵的各种乘积内积外积元素积(element-wiseproduct/point-wiseproduct/Hadamardproduct加低等数学几何范数(norm)拉格朗日乘子法和KKT条件微分(differential)表示形式法则常见导数公式统计学/概率论信息论香农熵(ShannonEntropy)博弈论不知道放到哪儿机器学习激活函数损失函数附录希腊字母的含义和发音数学符号的含义和发音参照线性代数(linearalgebra)第一公式f(x)=xw^T+b 这是在机器学习中,最常见的公式。我把这个称为机器学习的第一公式,实际上就是线性分类函数(linearclassifier)。 训练分类器的目标就是求出(w,b)。 其中: x是一个一行矩阵[[x_1,x_2,...,x_n]]。 w是一个一行矩阵[[w_1,w_2,...,w_n]]。 x和\(w\)的维度相同。 b是一个数。 xw^T=\sum_{i

  • 三部委联合印发最新机器人产业发展规划,谁将受益?

    工信部网站6日消息,工信部、发改委、财政部等三部委近日联合印发了《机器人产业发展规划(2016-2020年)》,引导我国机器人产业快速健康可持续发展。规划提出了产业发展五年总体目标,其中包括:形成较为完善的机器人产业体系。技术创新能力和国际竞争能力明显增强,产品性能和质量达到国际同类水平,关键零部件取得重大突破,基本满足市场需求。并从产业规模持续增长、技术水平显著提升、关键零部件取得重大突破、集成应用取得显著成效等四个方面提出了具体目标。规划也要求,实现我国机器人产业的“两突破”、“三提升”,即实现机器人关键零部件和高端产品的重大突破,实现机器人质量可靠性、市场占有率和龙头企业竞争力的大幅提升。长远来看,三部委共同印发的新规划必将对机器人产业的发展起到明显的积极作用。而从现实层面来看,机器人产业的发展依然面临着一系列的问题。从数量上来看,在过去短短两年时间里,国内市场机器人企业就已达到近千家。但从发展质量上来看,70%以上企业的机器人业务处于亏损状态。从技术水平来看,中国机器人厂商主要扎堆于中低端、缺少核心技术,九成企业规模在1亿以下,但主要集中在三轴、四轴的中低端机器人,高端机器人主

  • Linq 和DefaultView两种方法去掉DataTable 里的重复行

    在做项目的时候经常会遇到DataTable里的数据重复,或者合并两个DataTable后有数据重复一般我们是想把重复的删除掉,还有其它的方式实现比如用Linq和DataTable的DefaultView来去掉重复的行做了一个小例子,很简单的大家可以看一下,最后有完整的代码也可以直接下载工程:RemoveDupRowDemo.rar先看一下效果先写一个数据源DataTable_dt=newDataTable(); _dt.Columns.Add("id",typeof(int)); _dt.Columns.Add("name",typeof(string)); _dt.Columns.Add("address",typeof(string));DataRow_dr=_dt.NewRow(); _dr["id"]=1; _dr["name"]="lipeng"; _dr["address"]="DongXiaoKou"; _dt.R

  • 腾讯云云压测删除定时任务api接口

    1.接口描述接口请求域名:pts.tencentcloudapi.com。 删除定时任务 默认接口请求频率限制:20次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:DeleteCronJobs。 Version 是 String 公共参数,本接口取值:2021-07-28。 Region 否 String 公共参数,本接口不需要传递此参数。 ProjectId 是 String 项目ID CronJobIds.N 是 ArrayofString 定时任务ID数组 3.输出参数 参数名称 类型 描述 RequestId String 唯一请求ID,每次请求都会返回。定位问题时需要提供该次请求的RequestId。 4.示例示例1删除定时

  • 设计模式 14 模板模式

    参考 https://www.bilibili.com/video/BV1u3411P7Na?p=22&vd_source=299f4bc123b19e7d6f66fefd8f124a03 模板模式(TemplatePattern)属于行为型模式 概述 在生活中常常会遇到这样的情况,做某一件事情,有些步骤是固定的,有些步骤的变化的。 比如去医院看病,挂号和排队这两个步骤是固定的,不管是什么病到了医院都得遵循这两个步骤;但是后续的检查和治疗这两个步骤是变化的,不同的病需要采用不同的检查方式,然后采取不同的治疗手段。 针对这一情况,在设计去医院看病这一程序时可以这样实现:定义一个抽象类,固定的步骤用普通方法实现,变化的步骤定义为抽象方法,由子类继承实现。这样就可以根据不同的子类来实现不同的变化步骤,这就是模板模式。 代码实现 这里以去医院看病来介绍模板模式: 1、定义抽象疾病 /** *疾病 */ publicabstractclassDisease{ /** *治病 */ publicvoidcure(){ //1、挂号 registered(); //2、排队 q

  • Nginx用作反向代理服务器

    Nginx作为反向代理服务器时转发请求的流程   客户端请求处理 当客户端请求来时,Nginx并不会立刻转发到上游服务器,而是想完整的接收到Nginx所在的服务器, 然后再把缓存的客户端的请求转发到上游服务器。 优缺点 缺点:请求处理延迟 优点:降低上游服务器的负载 由于网络,以及TCP分包的原因;一个大的数据包,很可能需要多个TCP连接来接受,这样如果一接受到就转发,那么传完一个请求就需要多个TCP连接,对并发性提出考验。 Nginx先把整个请求都放到自己的内存或硬盘中,等待这个请求的所有包都过来了,然后一次性传到上游服务器,这样降低了对上游服务器的并发要求,而且由Nginx于上游服务器时内网,传输速度更快。     使用场景     非模式匹配定义--uri不带入上游   location/bbs{ proxy_passhttp://www.magedu.com:8080/; } 访问www.localhost.com/bbs--> 代理到www.mageedu.com:8080

  • 条件表达式的三元操作符x if 条件 else y

    三元运算符语法: 成立做的事:条件?不成立做的事 x,y=4,5ifx<y:small=xelse:small=yprint(small)#三元操作符语法:xif条件elseysmall=xifx<yelseyprint(small)复制

  • [BJOI2018] 链上二次求和

    一、题目 点此看题 二、解法 把答案转化成前缀和的形式,设\(s_i\)表示原数组的一阶前缀和,那么答案是: \[\sum_{i=l}^{r}\sum_{j=i}^ns_j-s_{j-i} \]设\(ss_i\)表示原数组的二阶前缀和(也就是对前缀和再做一次前缀和),答案可以写成: \[\sum_{i=l}^{r}ss_n-ss_{n-i}-ss_{i-1} \]所以我们只需要拿一棵线段树维护原数组的二阶前缀和即可。考虑区间修改\([l,r]\)对于二阶前缀和的影响,通过贡献法可以计算出变化为(设\(G(n)=\frac{n(n+1)}{2}\)): 如果\(i\in[l,r]\),\(ss_i\)会增加\(G(i-l+1)\cdotd\) 如果\(i\in(r,n]\),\(ss_i\)会增加\([G(r-l+1)+(i-r)\cdot(r-l+1)]\cdotd\) 令\(ss_i=a_i\cdoti^2+b_i\cdoti+c_i\),在线段树上维护这三项即可,所有修改操作都可以转化成对于这三项的修改。 比如第一种操作,\(G(i-l+1)=\frac{(i-l+1)(i-l

  • python项目代码部署centos7服务器上

    一. linux_centos7python3并与python2环境共存 (根据自己需求用2or3) 1.查看是否已经安装Python CentOS7.2默认安装了python2.7.5因为一些命令要用它比如yum它使用的是python2.7.5。 使用python-V命令查看一下是否安装Python 然后使用命令whichpython查看一下Python可执行文件的位置 可见执行文件在/usr/bin/目录下,切换到该目录下执行llpython*命令查看 python指向的是python2.7 因为我们要安装python3版本,所以python要指向python3才行,目前还没有安装python3,先备份,备份之前先安装相关包,用于下载编译python3 yuminstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmake 不能忽略相关包,我之前就没有安装readline-devel导致执行python模式无法使用键盘的上下左右键

  • AutoCAD.net支持后台线程-Socket通讯

    最近因为公司项目的需求,CAD作为服务端在服务器中常驻运行,等待客户端远程发送执行任务的指令,最终确认用Socket-tcp通讯,CAD需要实时监听客户端发送的消息,这时就需要开启线程执行Socket的监听任务。 这样问题就来了,CADAPI不支持多线程,您只能从主线程调用API函数,如果您处于不同的线程,则必须将调用集中到主线程上。 最后查了半天的资料发现,最简单的实现方式,是建立在主线程system.windows.forms.control对象并调用它的启动功能,做最后处理invoke()功能。 下面分别是客户端和服务端的demo 1classProgram 2{ 3privatestaticbyte[]result=newbyte[1024]; 4staticvoidMain(string[]args) 5{ 6//设定服务器IP地址 7IPAddressip=IPAddress.Parse("10.19.10.237"); 8//IPAddressip=IPAddress.Parse("127.0.0.1"); 9SocketclientSocket=newSocket(

  • 文件创建与文件格式的修改

    string[]file=Directory.GetFiles("E://VSProject//Url_Filter//Url_Filter//bin//Debug");//先创建几个文件stringtype="mp3|mp4|doc|rmvb|txt|xls|exe|avi";stringpath=System.AppDomain.CurrentDomain.BaseDirectory;if(!Directory.Exists(path)){Directory.CreateDirectory(path);}Randomrand=newRandom();string[]ts=type.Split('|');for(inti=0;i<1;i++){File.Create(Path.Combine(path,Path.ChangeExtension(i.ToString(),ts[rand.Next(ts.Length)])));}string[]files=Directory.GetFiles(path,"*.dll");foreach(stringsinfiles){Consol

相关推荐

推荐阅读