将ucsc的编码元数据转换为pandas数据帧

encode-dataframe的Python项目详细描述


我想要一种更好的方法来探索和下载编码中的原始数据 项目。

例如,我想获取在 未导入的MEL单元(来自MM9程序集)。

一种策略是单独通过每个轨道枢纽(如组蛋白 来自licr的mods,http://genome.cit.nih.gov/cgi-bin/hgFileUi?db=mm9&g=wgEncodeLicrHistone),分别过滤数据和下载文件。

另一个策略是直接进入下载页面 (http://hgdownload.cse.ucsc.edu/goldenPath/mm9/encodeDCC/wgEncodeLicrHistone/) 并提取以.bam结尾的文件。

这个小软件包利用了files.txt文件(这里有一个example) 它描述了下载页面上的所有元数据。

files.txt文件从程序集中的每个编码磁道集线器下载 感兴趣的。然后这些文件被解析并连接成一个 bigpandas.dataframe可用于查找您关心的数据。

安装

pip install encode-dataframe

用法

镜像文件。这可能需要一分钟左右。如果你克隆了Git repo,你已经有mm9文件的副本了。

>>> import encode_dataframe as edf
>>> edf.mirror_metadata_files('mm9')

创建大数据帧:

>>> df = edf.encode_dataframe('mm9')
>>> len(df)
5865

有了数据帧,我们现在可以切片和骰子得到我们关心的数据 关于。最后我想对mel细胞进行chromhmm分割,但是 我需要先得到数据…

选择单元格类型

>>> interesting = df.cell == 'MEL'

只有BAM文件

>>> interesting &= df.type == 'bam'

只有芯片或数据序列

>>> interesting &= df.dataType.isin(['ChipSeq', 'DnaseSeq'])

只有未经治疗(在本例中,未经诱导)的细胞:

>>> interesting &= df.treatment != 'DMSO_2.0pct'

只有一个复制(有些有2个或3个)

>>> interesting &= df.replicate == '1'

只有那些没有问题的(看起来像老版本 在objstatus字段中输入一些文本:

>>> interesting &= df.objStatus.isnull()

我们要和多少人一起工作?

>>> m = df[interesting]
>>> len(m)
60

其中有些是控件(input或igg),有些是重复的(looks 就像h3k4me3芯片seq使用了两个不同的对照;ctcf是由不同的 小组)。有多少独特的抗体?

>>> len(m.antibody.unique())
46

下面是我应该下载的文件:

>>> urls = m.url.values

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

推荐PyPI第三方库


热门话题
java如何从通知中获取图像?   java按住按钮将循环一个动作,直到它被释放   JavaJavassist:如何将动态生成的类添加到特定的包中?   java我需要获取一个字符串并输出字符串中出现最多的单词   java合并排序堆栈溢出错误   java如何使用spring boot配置hibernate   Android中带选择器的Java TCP服务器NIO   java对于长度急剧变化的输入,什么是最佳的StringBuffer初始容量?   java SpringBoot:REST endpint中@RequestParam参数的自定义验证   JavaJPaQuery。fetchResults()已弃用,应如何替换它?   JavaJNA结构创建带来麻烦   java创建只包含响应中某些元素的POJO   java巨大的Perm Gen与应用程序大小相比,是否正常?   JavalibgdxMoveToAction。将setPosition()设置为负坐标,以将演员移出舞台