通过吸管快速从Juicebox HIC文件中提取数据

hic-straw的Python项目详细描述


吸管

straw允许对.hic文件进行编程访问。 .hic文件存储hi-c实验的接触矩阵和 规范化和期望向量,以及头中的元数据。

主要函数straw接受规范化、文件名或URL, 染色体1(可选范围)、染色体2(可选范围) 所需的bin是以片段还是以基对分隔,以及bin大小

然后读取报头,跟随各种指向所需矩阵的指针 和标准化向量,存储为[x,y,count]

Usage: straw <NONE/VC/VC_SQRT/KR> <hicFile(s)> <chr1>[:x1:x2] <chr2>[:y1:y2] <BP/FRAG> <binsize>

有关更多文档,请参见https://github.com/theaidenlab/straw/wiki/Python

安装

Straw使用requests library来支持url确保已安装

示例

  • 在本地文件“hic001.hic”中以1MB分辨率提取X染色体上的所有读取,不进行规范化

    fromstrawimportstrawresult=straw.straw('NONE','HIC001.hic','X','X','BP',1000000)# the values returned are in x / y / countsforiinrange(len(result[0])):print("{0}\t{1}\t{2}".format(result[0][i],result[1][i],result[2][i]))
  • 从Rao和Huntley等人的MAPQ 30组合图中提取500KB分辨率下的所有读取数据,并进行VC(覆盖率)标准化2014年

    fromstrawimportstrawresult=straw.straw('VC','https://hicfiles.s3.amazonaws.com/hiseq/gm12878/in-situ/combined_30.hic','4','4','BP',500000)# the values returned are in x / y / countsforiinrange(len(result[0])):print("{0}\t{1}\t{2}".format(result[0][i],result[1][i],result[2][i]))
  • 用KR(平衡)规范化以25KB分辨率提取1号染色体上介于1MB和7.5MB之间的读取并写入文件:

    fromstrawimportstrawstraw.printme("KR","HIC001.hic","1:1000000:7500000","1:1000000:7500000","BP",25000,'out.txt')
  • 用VC(香草覆盖率)标准化,以500片段分辨率提取5号染色体和12号染色体之间的所有染色体间读数:

    fromstrawimportstrawresult=straw.straw("VC","HIC001.hic","5","12","FRAG",500)# the values returned are in resultsforiinrange(len(result[0])):print("{0}\t{1}\t{2}".format(result[0][i],result[1][i],result[2][i]))

有关如何将结果打印到文件的示例,请参见脚本straw.py

读取标题

有关读取hic文件头并输出信息(包括分辨率)的python脚本,请参见文件read_hic_header.py

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

推荐PyPI第三方库


热门话题
未使用Thymeleaf解析java消息参数   java试图为应用程序的每个实例创建一个具有唯一名称的表   eclipse如何用moduleinfo替换VM参数。java文件   java如何使JTextField不接受后缀字符串中的空格   Android中的java序列化文件   java如何缓存hibernate集合?   Android Eclipse导航抽屉中的java标头ImageView   java StreamTokenizer将001_到003拆分为两个令牌;我如何防止它这样做?   java应用程序必须只有一个DBHelper类,还是可以有多个DBHelper类?   java通过使用键作为值来反序列化Jackson   java JPA/Hibernate如何定义实体上的自定义联接子句?   JavaJunit/对Junit方法的误解   java JSP文件未加载到浏览器白标签错误页面   在Java构造函数中设置数据时出现NullPointerException   如果Java中的数组已满,如何将值传递给类中的另一个方法?   java如何在try/catch语句中返回字符串?   java需要以hh:mm格式获取两个日期之间的时差