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并执行以下操作:
"<;平铺名称>;"-->;"配置系列"--->;"转换"--->;"<;规范>;"
更新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
- pinned
pandas==0.24.2
因为较新版本不支持python 2
0.7.2
- 来自
hic2cool\u utils.parse\hic的警告现在将输出色度名称,而不是索引
0.7.1
- 将
format
和format 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日出版。