从gaf文件中删除偏见

debias的Python项目详细描述


#Debiaser根据注释信息内容、GO证据、注释源、从给定源注释的蛋白质数量、日期从[GAF]文件(http://www.geneontology.org/page/go-annotation-file-formats)中移除偏差。Debiaser接受一个或多个GAF文件作为输入。GAF的动机在于观察到许多生物体注释由于高透彻的实验研究而有偏差([1](http://journals.plos.org/ploscopbiol/article?id=10.1371/journal.pcbi.1003063)。消除这种注释偏差有助于呈现给定生物体或蛋白质组的蛋白质注释的更平衡的图像。



大多数GNU/Linux发行版或其各自的网站都提供了模块。

*[networkx](https://networkx.github.io/)

*[matplotlib](https://matplotlib.org/)

*[numpy](http://www.numpy.org/)

*[biopython](http://biopython.org/)

*[xlsxwriter](http://xlsxwriter.readthedocs.io/)

根据您的需要,这通常是[go basic.obo](http://purl.oboboblibrary.org/obo/go/go-basic.obo)或[go.obo](http://purl.oboboblibrary.org/obo/go.obo)之一。要了解更多详细信息并下载最新的每日版本或最新版本,请访问[基因本体网站](http://gene ontology.org/page/download ontology)。

<;!--
软件包中提供了Debias_prep.py程序。这个程序为每个本体构建图形,并将它们放在三个不同的文件中。因此不需要.obo文件。提供此程序的目的是,如果层次结构发生更改,则可以使用此程序重新生成文件。除了三个本体的三个层次图之外,它还生成了交替go-id到实际go-id的映射,并生成了从一个go-id到其所有祖先的映射。
-gt;

git+git://github.com/rinoahu/debias
```


`debias_prep-i data/gofile.obo`

gofile通常是'go.obo'或'go basic.obo`

三个文件对应于三个本体。三个文件对应于每个gou术语与其各自本体中的祖先之间的映射。最后一个文件包含从备用go-id到实际go-id的映射。请在释放新的go.obo文件时使用此命令。
```
1。./data/alt_to_id.graph:需要获得从备用go_id到实际go_id的映射
2。./data/mf.graph:mfo本体图
3。./data/bp.graph:bpo本体图
4。./data/cc.graph:cco本体图
5。./data/mf_祖先.map:mfo祖先映射
6。./data/bp_祖先.map:bpo祖先映射
7。./data/cc_u祖先.map:cco祖先映射
````

从http://www.geneontology.org/ontology/

2下载最新的go.obo文件。运行"debias_prep"程序并提供下载的
.obo文件。请参阅下面的用法详细信息。只有在需要使用新的.obo文件时,才需要运行此程序。

3。运行程序"debias`


``
用法:debias[-h][--前缀前缀][--cutoff_prot cutoff_prot]
[--cutoff_attn cutoff_attn][--输出]
[--证据证据[证据…]--证据逆
证据逆[证据相反...]--input输入
[输入…][--aspect aspect[方面…]]
[--assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由assigned由[--info_threshold_wyatt_clark_percentile info_threshold_wyatt_percentile--info_threshold_wyatt_clark info_threshold_wyatt_clark]
[--info_threshold_phillip_lord_percentile info_threshold_phillip_lord_信息阈值菲利普勋爵]
[--详细详细信息][--日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于日期早于|--选择"引用""逆选择""引用""逆
[选择引用""逆…][--报告报告]
[-直方图]


>可选参数:
-h,--帮助显示此帮助消息并退出
--前缀前缀,-pref前缀
在输出文件的名称中添加前缀。
--cutoff_prot cutoff_prot,-cprot cutoff_prot
决定消除来自注释
的引用的注释的阈值级别超过给定的"阈值"蛋白质数-cattn cutoff_attn
决定消除
注释的阈值级别,这些注释来自注释
超过给定"阈值"注释数的引用
--输出,-odir输出
将最终输出写入此
路径中的目录。
--证据证据[证据…],-e证据[证据……]
接受
http://geneontology.org/page/guide go证据代码中概述的标准证据代码。
每个标准证据的所有3个字母代码都可以接受。除此之外,expec还接受
,它将从实验中提取所有
注释。compec将提取所有计算完成的注释
。类似地,
authec和curec也被接受。无法提供
如果提供了-einv
--证据反证据反[证据反…],-einv证据反[证据反…]
忽略了提供的证据代码。如果提供-e,则不能提供
--方面方面方面[方面…],-方面[方面…]
为生物过程输入p、c或f,细胞
组分或分子功能分别
--按[assigned_by…]分配,-assgn assign assigned_by[assigned_by…]
仅选择已由提供的数据库列表注释的注释。如果提供了-assgninv,则不能
提供-assgninv由提供的数据库列表注释。如果提供-assgn,则不能提供
对于每个go项,
计算信息增长是很费时的。因此,如果要对旧数据执行重新运行,请将其保持为零。然后,程序将

文件中读取它在程序的前一次运行中写入的信息增值值
--info_threshold_clark_percentile info_threshold_clark_percentile,-wcthreshp info_threshold_wyatt_clark_percentile
提供百分比p。所有信息内容低于p的注释都将被丢弃
--info_threshold_wyatt_clark info_threshold_wyatt_clark,-wcthresh info_threshold_wyatt_clark
提供阈值t。所有信息内容低于t的注释都将被丢弃
--info_threshold_phillip_lord_percentile info_threshold_phillip_lord_percentile,-plthreshp info_threshold_phillip_lord_percentile
提供百分比p。所有信息内容低于p的注释都将被丢弃。因此,如果提供5个,由得分在前5%的术语注释的蛋白质将被保留,其余的将被丢弃。-plthresh info_threshold_phillip_lord
提供一个值t。所有信息内容低于t的注释都将被丢弃
--详细详细,-v verbose
如果希望在控制台上查看每个操作的结果,请将此参数设置为1
--date-before-date-before-date-before,-dbfr-date-before
此处输入的日期将由解析器解析
从DateUtil包。有关
可接受日期格式的更多信息,请访问
https://github.com/dateutil/dateutil/。在此日期之前生成的所有注释
都将被提取
--date\u after date\u after,-daftr date\u after
此处输入的日期将由解析器从dateutil包中解析
。有关
可接受日期格式的更多信息,请访问
https://github.com/dateutil/dateutil/。在此日期之后所做的所有注释都将被提取到单个文件,-单个单一参考文件
设置为1,以便在单个文件中输出每个
单个物种的结果。
--选择参考选择参考[选择参考…],-选择参考选择参考[选择参考…]
提供指向包含要选择的引用的文件的路径。如果您希望选择由少量引用生成的注释,则可以包含
引用。这将提示程序
将具有关键字
"go-ref"、"pmid"和"reactome"的字符串解释为go引用。
不包含该关键字的字符串将被
解释为程序将
的文件路径,除了包含go引用列表外。程序将接受go-ref和文件名的混合。
还可以选择特定
类别的所有引用以及其他类别的少量引用。对于
示例,如果您希望选择所有pmid re引用,
只需输入pmid。然后程序将选择所有pmid
引用。目前,程序可以接受pmid,
go_ref and reactiome
--选择参考逆选择参考逆[选择参考逆…],-selRefInv选择参考逆[选择参考逆…],
工作方式与-selRef类似,但是不选择作为输入提供的引用
--report report,-r report
提供存储报表文件的路径。
如果提供路径,请确保路径
以"/"结尾。否则,程序将假定
最后一个字符串在最后一个"/"之后作为
报告文件的名称。将生成单个报告文件。
每个物种的信息将放入
单个工作表中。
--直方图,-历史直方图
如果要查看直方图,请将此选项设置为1根据
蛋白质或注释的数量,相对于截止值,去骨前后的go_项频率是
。如果要保存文件
,请输入文件路径。如果您提供的是
路径,请确保路径以"/"结尾。
否则程序将假定最后一个字符串
在最后一个"/"之后作为图像文件的名称。
将为每个
物种生成直方图。


所需参数:
--输入输入[input…],-i输入[input…]
输入文件路径。请记住
文件的名称必须以前面的goa开头,用下划线分隔的物种名
``


注意:文件夹"temp"中的文件是通过执行下面的命令生成的文件<;br>;
` debias-prep-i data/go.obo`

此命令总共将生成七个文件。三个文件对应于三个本体论。三个文件对应于
每个gou术语与其各自本体中的祖先之间的映射。最后一个
文件包含从备用go_id到实际go_id的映射。请在每次更新go file时使用
此命令。

2.` debias-cprot 100-i data/goa_yeast.gaf data/goa_dicty.gaf-a c-wcthresh p 2-recal 1`

此命令从两个输入文件中读取,一个用于酵母,另一个用于
dicty。-a c只选择cco注释。
-wcthreshp参数指定wyatt-clark阈值为2
百分位数,这意味着所有具有wyatt-clark信息
内容低于2%的注释都将被删除。除了提供百分比
值,还可以使用参数
-wcthresh提供阈值。除此之外,那些注释将被删除,这些注释已经被引用注释了,而引用注释的蛋白质又超过了100个。输出将放在当前目录中。此命令中必须有-recal 1,因为要创建ic的go_项。在不提供参数recal的情况下,可以使用不同的阈值和所有其他
参数fised进行后续运行。
此命令将生成3个输出文件。两个有机体各有一个
,第三个有机体是两个有机体结合的地方。

3.` debias-i data/goa嫒u酵母.gaf data/goa嫒dict.gaf-a c p-plthresp 30-e expec iba-odir data/output-single 1`

此命令将从两个输入文件中读取,选择cco和bpo
注释。此外,它将**只选择**那些
通过实验或计算注释为
"iba"(从祖先的生物学方面推断)的注释。除此之外,
它还将丢弃所有包含菲利普勋爵信息
内容小于30%的注释。除了提供百分比值,还可以使用参数-plthresh提供阈值。最后的
输出将放在data/output目录中。您可以包含不存在的路径。如果存在
所需的权限,程序将尝试创建文件夹。这将只导致一个文件,因为已经提供了-single参数,它将包含来自两个有机体的所有
选择的注释。

4.` debias-cattn 1000-i data/goa_yeast.gaf data/goa_dicty.gaf-a c p-einv compec-pref testing-selrefinv reactome`

此命令将从两个输入文件读取,选择cco和bpo
注释。此外,它将**放弃**那些已经在计算上做了
的注释。程序进一步过滤掉所有由"reactome"生成的
注释。所有文件都将以
字符串"testing"作为前缀。由于程序为每个
文件创建了一个有意义的名称,因此用户有机会给出一个前缀。


您可以在tests目录中运行名为test.sh的shell脚本。

````
git clone https://github.com/rinoahu/debias
cd./debias/tests
bash test.sh
```

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

推荐PyPI第三方库


热门话题
关于如何将spring mvc重构为普通servlet或jetty处理程序的java建议   java循环和处理数据输入错误   使用java获取更改内容   java试图向一个数组中添加5张不同的“卡”,但它正在添加5张相同的卡   Java函数在Matlab类中变得未定义   多线程Java使用对象作为监视器,那个对象不是太重了吗?   将MySQL日期转换为Java日期:Android   java ResourceBundle在哪里。getBundle(“ResourceFile”,新语言环境(“us”,“us”))查找该文件?   java第一人称摄影机卷   如何在java中交替使用两个字符   addActionListener上下文中的java“this”   几天后,java Grails和Jasig CAS重定向循环   JavaAnt如何在javac中使用exclude、excludesfile?   java如何设置单行RecyclerView上的文本?