在校正基因长度和聚类的同时,测试全基因组统计数据在基因(或其他)类别中的丰富性。

enrichme的Python项目详细描述


丰富

全基因组评分或p值的富集试验 在基因分类中。 py实现了一个方法,该方法自然地为 基因长度、连锁不平衡与基因聚类 随机旋转分数得到零分布 与他们的基因组位置相反。

如果你有全基因组关联研究(gwas)的结果, 全基因组选择扫描或任何类型的分析 在整个基因组中的位置上的得分,可能是多少或者p值, py测试是否在特定的基因类别中丰富了高分。

安装

使用pip或简易安装:

pip install enrichme==0.1.1

测试

您可以使用以下命令运行单元测试:

python setup.py test

浓缩测试实施

程序目前实现三种方法:

  1. 候选人(enricme.py-m候选人–帮助)
    比较候选基因列表和背景基因列表。 这是一个标准的函数,它是由许多丰富的 分析工具。基因长度或ld无修正。
  2. 表层岩芯(enrichme.py-m表层岩芯–帮助)
    检查排名靠前的分数是否在基因内或接近基因 富含特定的基因种类。 这种方法自然地校正了基因长度和ld。 如果期望只有分数高于 阈值包含与生物学相关的信息。 不使用通过分数排名的信息 阈值。
  3. 摘要(enricme.py-m summary–help)
    类似于表层岩芯,但不定义阈值 在分数上,计算每个基因的分数汇总 类别。作为一个例子,对于每个基因类别,程序可以 计算横跨最大得分类别的平均值 这一类中的每一个基因。 如果一个人认为分数包含信息,这个方法是有用的 低至低值或分数的相对值是否重要 除了定义一个简单的阈值之外。

如何使用

./enrichme.py --help

带有进一步解释和示例数据的示例脚本可以在./examples/

在围棋类别中,测试gwas分数是否超过3分(p值<;10^-3):

cd ./examples/
../enrichme.py  -M TopScores \
                --feature_to_category example_gene_to_category.csv \
                --feature_to_category_cols gene_id go_identifier  \
                --rod example_GWAS_result.csv \
                --rod_cols chrom pos score  \
                --features example_gene_annotation.csv \
                --feature_cols chrom start end gene_id \
                --name minimal_test_TopScores  \
                --n_permut 10 \
                --top_type threshold \
                --top 3 \
                --descending \
                --max_dist 5000 \

对于每个基因,计算该基因内的最大gwas得分。然后,测试go分类中这些基因得分的平均值是否丰富:

cd ./examples/
../enrichme.py -M Summary \
               --feature_to_category example_gene_to_category_40_cats.csv \
               --feature_to_category_cols gene_id go_identifier  \
               --category_to_description example_go_to_name.csv \
                --category_to_description_cols go_identifier go_name \
                --rod example_GWAS_result.csv \
                --rod_cols chrom pos score  \
                --features example_gene_annotation.csv \
                --feature_cols chrom start end gene_id \
                --name minimal_test_Summary  \
                --feature_summary max \
                --category_summary mean \

输入文件

  1. 特征到类别映射(输入参数–特征到类别)

    此文件将遗传特征(通常是基因)映射到特征类别 比如基因列表。这可以是go术语或自定义的基因列表。 文件可以是制表符分隔(.tsv)或逗号分隔(.csv)

    $head examples/example_gene_annotation.csv
    gene_id,go_identifier
    AT1G01010,GO:0005634
    AT1G01010,GO:0006355
    AT1G01010,GO:0003677
    AT1G01010,GO:0007275
    AT1G01010,GO:0003700
    AT1G01010,GO:0043090
    AT1G01010,GO:0006888
    AT1G01020,GO:0016125
    AT1G01020,GO:0016020
    
  2. 功能(输入参数–功能)

    这个文件给出了特征的位置(例如基因) 整个基因组。通常这就是基因 注解。列pos给出了特性的开始。

    $head examples/example_gene_annotation.csv
    chrom,start,end,gene_id
    1,3631,5899,AT1G01010
    1,5928,8737,AT1G01020
    1,11649,13714,AT1G01030
    1,23146,31227,AT1G01040
    1,28500,28706,AT1G01046
    1,31170,33153,AT1G01050
    1,33379,37840,AT1G01060
    1,38752,40944,AT1G01070
    1,44677,44787,AT1G01073
    
  3. 整个基因组的得分(输入参数-rod)

    这可能是snps和 与之相关的分数或p值。 rod代表参考顺序数据。

    $head examples/example_GWAS_result.csv
    chrom,pos,score
    1,3102,0.09305379
    1,4648,0.30615359999999997
    1,4880,0.35306350000000003
    1,5975,0.9596856
    1,6063,0.23715001
    1,6449,0.019213928
    1,6514,0.43630862
    1,6603,0.23235813
    1,6768,0.58977395
    
  4. [可选]将类别映射到类别描述(输入参数–类别描述)

    这可能是一个csv,带有go category id和描述。

    $head examples/example_go_to_name.csv
    go_identifier,go_name
    GO:0000001,mitochondrion inheritance
    GO:0000002,mitochondrial genome maintenance
    GO:0000003,reproduction
    GO:0042254,ribosome biogenesis
    GO:0044183,protein binding involved in protein folding
    GO:0051082,unfolded protein binding
    GO:0000006,high-affinity zinc uptake transmembrane transporter activity
    GO:0000007,low-affinity zinc ion transmembrane transporter activity
    GO:0003756,protein disulfide isomerase activity
    

输出

不同的模式提供不同的输出文件。主输出文件对所有模式都是通用的,称为<;name>;.pvals.tsv。这是一个排名表,最重要的是丰富的类别:

go_identifier   out_of  rank    score_summary   p_value benjamini_hochberg      go_name
GO:0000165      2000    1943    0.8731354255802085      0.02898550724637683     27.014492753623205      MAPK cascade
GO:0000041      2000    1825    0.8348620634942308      0.08795602198900554     27.32500416458439       transition metal ion transport
GO:0000160      2000    1800    0.9736749697560976      0.1004497751124438      23.404797601199405      phosphorelay signal transduction system
GO:0000164      2000    1698    1.0469719100000001      0.15142428785607198     28.225487256371814      protein phosphatase type 1 complex
GO:0000096      2000    1692    0.8680123230000001      0.15442278860569714     23.987006496751622      sulfur amino acid metabolic process
GO:0000145      2000    1685    0.9976431777777778      0.15792103948025982     21.02605839937174       exocyst
GO:0000159      2000    1562    0.9504652303750003      0.21939030484757627     25.558970514742636      protein phosphatase type 2A complex
GO:0000156      2000    1558    0.9427544812820514      0.22138930534732637     22.92609250930091       phosphorelay response regulator activity

平行支架

有两种方法可以在paralle运行这个程序l.默认情况下,程序使用主机上可用的尽可能多的内核。这可以通过–ncpus选项进行控制。想要在计算集群的多个节点上并行的高级用户可以使用内置的map/reduce框架来自动合并多个独立运行的结果。请参见

examples/run_permute_reduce_examples.sh

举个例子。

更改日志

enrichme跟在semantic versioning后面。这个 使用稳定api的第一个版本将是1.0.0(很快)。在那之前,你 鼓励在依赖项中显式指定版本 工具,例如:

pip install enrichme==0.1.1
  • 0.1.1初始发布。

历史

0.0.1

  • 初始签入

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

推荐PyPI第三方库


热门话题
java变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常