HIC文件(来自榨汁机)与单分辨率或多分辨率Cool文件(用于Cooler)之间的转换器。hi c和cool文件都描述了hi-c接触矩阵。为了轻量级,它可以作为导入的包或独立的Python工具用于命令行转换。

hic2cool的Python项目详细描述


hic2cool

生成状态

HIC文件(来自榨汁机)与单分辨率或多分辨率Cool文件(用于Cooler)之间的转换器。hi c和cool文件都描述了hi-c接触矩阵。这是轻量级的,可以用作导入的包或用于命令行转换的独立python工具

hic解析代码基于neva c.durand和yue wu的straw项目。用于cooler文件写入的基于hdf5的结构基于cooler存储库中的代码。

重要

  • hic2cool目前支持python 2.7和python 3.x。对python 2的支持将于2020年1月1日结束。有关详细信息,请访问官方倒计时时钟。

  • 如果您使用低于0.5.0的hic2cool版本转换了hic文件,请使用新的更新功能更新您的cooler文件

使用python包

$ pip install hic2cool

安装包后,主要方法是hic2cool_convert。它采用与hic2cool.py相同的参数,将在下一节中介绍。python脚本中的示例用法如下或test.py所示。

from hic2cool import hic2cool_convert
hic2cool_convert(<infile>, <outfile>, <resolution (optional)>, <warnings (optional)>, <silent (optional)>)

使用命令行转换文件

hic2cool的主要用途是使用hic2cool convert在文件类型之间进行转换。如果使用pip安装hic2cool本身,则可以在命令行中使用它:

$ hic2cool convert <infile> <outfile> -r <resolution>

您还可以直接下载代码并自己运行安装程序。首先确保已安装依赖项:

$ pip install -r requirements.txt

您也可以使用:

$ python setup.py install

然后,使用以下命令从根目录执行python代码:

$ python -m hic2cool convert <infile> <outfile> -r <resolution>

hic2cool convert的参数

infile是一个.hic输入文件。

outfile是一个.cool输出文件。

-r或--resolution是HIC文件支持的整数BP分辨率。请注意只能使用原始HIC文件中包含的分辨率。如果给定0,将使用所有分辨率生成多分辨率文件。默认值为0。

-w或--warnings会将警告显式打印到控制台。这在默认情况下是错误的,尽管在某些情况下,hic2cool会根据输入的hic文件退出并出现错误。

-s或--silent,在静默模式下运行并隐藏程序的控制台输出。默认为False。

-v或--version,打印出HIC2工具包版本并退出。

-h或--help,打印有关程序包/特定运行模式的帮助并退出。

从命令行运行hic2cool将导致有关hic文件的一些有用信息打印到stdout,除非使用-s标志。

输出文件结构

如果选择使用所有分辨率,将生成多分辨率.mcool文件。这将更改文件的hdf5结构,而不是典型的.cool文件。也就是说,一个完整的cooler文件所需的所有信息都存储在由各个分辨率命名的单独hdf5组中。HDF5层次结构的组织方式如下:

文件-->;"分辨率"--->;"35;"(其中是BP中的分辨率)。 例如,请参阅下面的代码,该代码生成一个多分辨率文件,然后访问10000 bp的特定分辨率。

from hic2cool import hic2cool_convert
import cooler
### using 0 triggers a multi-res output
hic2cool_convert('my_hic.hic', 'my_cool.cool', 0)
### will give you the cooler object with resolution = 10000 bp
my_cooler = cooler.Cooler('my_cool.cool::resolutions/10000')

当只使用一个分辨率时,.cool文件producted在顶层存储所有必要的信息。因此,不需要多res格式的组织。下面的代码生成一个分辨率为10000 bp的文件,并用较冷的对象打开它。

from hic2cool import hic2cool_convert
import cooler
### giving a specific resolution below (e.g. 10000) triggers a single-res output
hic2cool_convert('my_hic.hic', 'my_cool.cool', 10000)
h5file = h5py.File('my_cool.cool', 'r')
### will give you the cooler object with resolution = 10000 bp
my_cooler = cooler.Cooler(h5file)

希格拉斯

hi2cool生产的多分辨率冷却器可以使用higlass可视化。请注意,单分辨率冷却器与Higlass不兼容(为-r使用非零值时创建)。如果您在hic2cool 0.5.0之前创建了一个冷却器,希望在higlass中查看,强烈建议您在higlass上查看之前升级它,以确保正确的规范化行为。

要在higlass中应用hic规范化转换,请右键单击tileset并执行以下操作:

"<;平铺名称>;"-->;"配置系列"--->;"转换"--->;"<;规范>;"

高阶img

更新HIC2冷却器

从hic2cool版本0.5.0开始,hic规范化向量在生成的cooler文件中的处理方式发生了重大变化。在0.5.0之前,hic2cool对hic规范化向量进行了反转。这样做的理由是hic使用除数归一化值,而cooler使用乘法值。然而,higlass和4dn分析管道专门处理除数规范化值,因此hic2cool现在以相同的方式处理它们。

在不久的将来,将有一个冷却器软件包版本,以便在平衡时正确处理分裂的HIC标准化值。

要更新Hic2Cool冷却器,只需运行:

hic2cool update <infile> <outfile (optional)>

如果只提供infile参数,则冷却器将直接更新。如果您提供了一个可选的文件路径,那么将创建一个新的更新的Cooler文件,并且原始文件将保持不变。

提取HIC标准化值

从hic2cool 0.5.0开始,您可以轻松地将hic规范化向量提取到现有的cooler文件中。只有指定的Cooler文件共享HIC文件中的分辨率时,此操作才有效。为此,只需运行:

$ pip install hic2cool
0

您还可以提供可选的-e标志,这将导致从提取中自动忽略线粒体染色体。这是按名称找到的;代码专门查找['m','mt','chrm','chrmt'](以不区分大小写的方式)。就像使用hic2cool convert一样,您还可以提供-s-w参数

更改日志

0.7.3

  • pinnedpandas==0.24.2因为较新版本不支持python 2

0.7.2

  • 来自hic2cool\u utils.parse\hic的警告现在将输出色度名称,而不是索引

0.7.1

  • formatformat version添加到hic2cool编写的多分辨率冷却器集合中
  • 运行hic2cool\u update将这些属性添加到用以前的hic2cool版本生成的mcool文件中
  • 修复了在使用Python2时将DateTime派生元数据作为ByTestring写入的问题

0.7.0

  • 修复了与Python2相关的包问题
  • 修复了使用Python2时某些较酷的元数据被编写为非Unicode的问题

0.6.1

  • 修正了使用python 2时hic2cool update的输入问题

0.6.0

  • 增加了格式版本和存储类型o输出冷却器的属性,以更新冷却器模式v3
  • 运行hic2cool update将这些属性添加到使用先前hic2cool版本生成的文件中

0.5.1

通过添加manifest.in和进行一些文档/pypi编辑修复了打包问题

0.5.0

更改Hic2Cool运行方式的大版本

  • hic2cool现在使用hic2cool<;mode>;执行,其中mode是:[转换、更新、提取规范]
  • 添加了两种新模式:更新(更新由hic2cool根据版本制作的冷却器)和提取规范(将hic规范化向量提取到预先存在的冷却器文件)
  • 删除了旧的hic2cool_extractNorms脚本(现在使用hic2cool extract norms运行此脚本)
  • 为了与4dn omics处理管道和higlass保持一致,将hic规范化向量添加到输出冷却器时不再反转
  • 丢失的hic规范化向量现在由nan向量表示(以前是零向量)
  • 改进运行hic2cool时的帮助消息,并更改运行程序的参数
  • 测试更新

0.4.2

  • 修复了HIC文件丢失规范化向量时无法转换的问题

0.4.1

  • 修复了从版本6的HIC文件读取计数时的错误
  • 染色体名现在直接取自hic文件(除"all"之外)

0.4.0

大修补程序,可以修复大多数内存问题并改善运行时:

  • 已更改运行参数。删除-n和-e;添加-v(--version)和-w(--warnings)
  • 提高了内存使用率
  • 改进了运行时(这多亏了nezar abdennur)
  • hic2cool现在执行文件的"直接"转换,并且在缺少chr chr联系人或缺少规范化向量时不会失败。发现这些问题将导致打印警告(由-w标志控制)
  • 不再使用"weights"列,该列是为cooler保留的
  • 不再接受规范化类型参数。HIC文件中的所有规范化向量都会自动添加到输出中的bin表中。cool
  • 许多其他小错误修复/代码改进

0.3.7

修正了bin1_偏移量不包含最终分录(长度应为nbins+1)的问题。

0.3.6

修复pip执行的简单版本。

0.3.5

自述文件更新,在测试中切换较冷的语法,并在使用命令行工具时添加了有帮助的HIC文件头信息打印。

0.3.4

修复了"all"与"all"的染色体名设置不正确的问题。

0.3.3

拆下成圆固定件。现在,允许py2和py3权重具有不同数量的有效数字(它们非常接近)。

0.3.2

更改了单分辨率文件的输出文件结构。解决了python 2和3之间权重舍入不同的问题。

0.3.1

添加travis.yml用于自动测试。更改了命令行运行方案。python3在hic2cool实用程序中修复。

0.3.0

添加了多分辨率格式以输出酷文件。设置argparse。提高了速度。添加了新分辨率格式的测试。

贡献者

作者:Carl Vitzthum(1)、Nezar Abdennur(2)、Soo Lee(1)和Peter Kerpedjiev(3)。

(1)哈佛医学院公园实验室DBMI

(2)麻省理工学院米尔尼实验室

(3)哈佛医学院Gehlenborg实验室DBMI

最初于2017年1月26日出版。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Admob不使用webview   Java Wicket表单:序列化对象类“myClassName”时出错   java googledriveapi更新文件与我的帐户管理员   java简单框架未知xml标记解析   java如何使用主类和用户获取Spark应用程序ID   java如何更改自定义属性的值?   java有没有办法在jMock中找到未使用的期望值?   gradle运行任务的java文档?   java通过使用数组来存储文本文件的行,通过覆盖来删除文本文件中的行   用于表达式语言注入的java利用负载   java IDEStyle程序运行   java在运行时启用/禁用Springws   爪哇芦苇。formatNumber NullPointException   java为什么我的代码无法检测两个动态实体之间的碰撞?