用python丰富内容——pandas与networkx相遇

goenrich的Python项目详细描述


戈恩里奇

https://badges.gitter.im/Join%20Chat.svghttps://readthedocs.org/projects/goenrich/badge/?version=latesthttps://travis-ci.org/jdrudolph/goenrich.svg?branch=master

python提供的方便go enrichments。用于python项目。

  1. 构建go本体图
  2. 在图形中向上传播go注释
  3. 对所有类别执行充实测试
  4. 执行多次测试更正
  5. 允许导出到pandas进行处理,并允许导出到graphviz进行处理 可视化

安装

从pypi安装包并下载本体和所需的注释。
pip install goenrich
mkdir db
# Ontology
wget http://purl.obolibrary.org/obo/go/go-basic.obo -O db/go-basic.obo
# UniprotACC
wget http://geneontology.org/gene-associations/goa_human.gaf.gz -O db/gene_association.goa_human.gaf.gz
# Yeast SGD
wget http://downloads.yeastgenome.org/curation/literature/gene_association.sgd.gz -O db/gene_association.sgd.gz
# Entrez GeneID
wget ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/gene2go.gz -O db/gene2go.gz

运行go浓缩

importgoenrich# build the ontologyO=goenrich.obo.ontology('db/go-basic.obo')# use all entrez geneid associations form gene2go as background# use annot = goenrich.read.goa('db/gene_association.goa_human.gaf.gz') for uniprot# use annot = goenrich.read.sgd('db/gene_association.sgd.gz') for yeastgene2go=goenrich.read.gene2go('db/gene2go.gz')# use values = {k: set(v) for k,v in annot.groupby('go_id')['db_object_symbol']} for uniprot/yeastvalues={k:set(v)fork,vingene2go.groupby('GO_ID')['GeneID']}# propagate the background through the ontologybackground_attribute='gene2go'goenrich.enrich.propagate(O,values,background_attribute)# extract some list of entries as example query# use query = annot['db_object_symbol'].unique()[:20]query=gene2go['GeneID'].unique()[:20]# for additional export to graphviz just specify the gvfile argument# the show argument keeps the graph reasonably smalldf=goenrich.enrich.analyze(O,query,background_attribute,gvfile='test.dot')# generate htmldf.dropna().head().to_html('example.html')# call to graphvizimportsubprocesssubprocess.check_call(['dot','-Tpng','test.dot','-o','test.png'])

使用graphviz生成png图像:

dot -Tpng example.dot > example.png

或者直接从python:

importsubprocesssubprocess.check_call(['dot','-Tpng','example.dot','-o','example.png'])
https://cloud.githubusercontent.com/assets/2606663/8525018/cad3a288-23fe-11e5-813c-bd205a47eed8.png

查看文档以了解所有可用参数

许可证和贡献者

这项工作是根据麻省理工学院的许可证颁发的

欢迎投稿!

特别感谢

  • @lukauskas用于实现对类文件对象的I/O支持。
  • @zfrenchee用于在测试统计量的计算中修正bug。
  • @pommy1用于实现对networkx >= 2.0.0的支持。

建立文档

sphinx-apidoc -f -o docs goenrich goenrich/tests

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

推荐PyPI第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素