正文
go语言统计检验 golang 参数检验
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
go算法用的是哪种统计学模型
GO富集分析。
go算法用go语言统计检验的是GO富集分析统计学模型go语言统计检验,GO富集分析的统计学基础是超几何分布go语言统计检验,简单而言就是根据Fisher精确检验对每个GOterm计算一个P值。
差异基因GO分析的关键是用统计学方法进行基因富集go语言统计检验,分析这些基因参与go语言统计检验了何种生物学功能、生物进程以及亚细胞定位,目前常用的基因富集分析法是基于超几何分布。
GO富集分析
GO富集是组学数据分析常用go语言统计检验的手段go语言统计检验,通常用来挖掘差异基因中GO term的富集程度。Fisher's exact test是常用的统计检验方法go语言统计检验,但这种方法存在明显的缺点。很多公司提供的测序分析结果都普遍使用这样的方法go语言统计检验,导致很多后续的分析与实验结果不一致的情况。对于这种情况,目前还有其go语言统计检验他算法来弥补这些缺点。(文中例子来源于《the Gene Ontology handbook》)
fisher's exact test是基于超几何分布来计算的,单边检验就是超几何检验。通常用来检验两组分类是否有显著差异。
m:研究物种的基因数;
n:研究的样本中基因数;
mt:总体中被注释到term t(GO 词条t)的基因数;
nt:样本中被注释到term t的基因数。
随机变量Xt表示样本中被观察到的term t 的数目,所有根据超几何分别,观察到k个term t 的概率P(Xt)是:
零假设H0:样本中出现的term t 的数目与总体中总的term t数目没有正关联。也就是说样本中的term t数目的比例与总体中term t的接近。
为了拒绝H0,使用单尾检验:
一个简单的例子:假设总体中有18个基因,其中有5个被注释到binding这个term,转录组分析发现有5个差异表达的基因,其中有3个被注释到binding这个term,为了说明binding这个term是否是overrepresentation,用上面的Fisher's exact test计算p值:
在现实中,我们不可能只对某一个term进行检验,而是对很多term进行检测,即多重检验,但这样就会导致假阳性的term数目非常高。所以我们需要对p值进行校正。通常是使用Benjamini-Hochberg校正方法来控制预期的错误发现率(false discoveries rate-FDR)进行校正。( 如何通俗地解释错误发现率(FDR) )。尽管多重检验的校正可以减少假阳性,但并不能从根本上解决GO(或KEGG)富集的问题。
GO富集的根本问题在于一个基因对应的GO term有多个,一个term对应多个gene,同时还有层级关系。这样导致如果一个term显著富集,那和它共享很多基因的term也会显著富集。
有很多其他的算法来试图解决这个问题,其中包括parent-child approach、topology-based algorithms、model-based approaches和gene set enrichment analysis。下面是对这些算法的简单介绍:
该算法还是基于Fisher's exact test,只不过考虑了term的父节点。在计算概率时,不再是在总体m中取样,而是从term的父节点中取样,所以计算公式变成了:
当一个term有多个父节点时计算就变得复杂了,具体方法还得参考原始文献(improved detection of overrepresentation of Gene-Ontology annotatins with parent child analysis)
这两种方法原理反正我没看懂,有兴趣的可以看原始文献:
1、Improved scoring of functional groups from gene expression data by decorrelating GO graph structure.
2、GOing Bayesian: model-based gene set analysis of genome-scale data
该算法首先根据感兴趣的特征(比如差异基因的表达量)对基因进行排序,形成一个列表。零假设是某个基因集(genes encoding products in a metabolic pathway, located in the same cytogenetic band, or sharing the sam GO category)里基因顺序与这个列表没有关联,即排序是随机的。对应的备择假设是它们之间有关联。如果基因集里的基因都聚集在基因列表的前端或底端或者非随机分布,我们就倾向于相信它们之间有关联。
S:想研究的基因集;
L:整个排序的基因列表;
统计量:Kolmogorov-Smirnov(KS)
step 1:计算富集得分(Enrichment Score)。按顺序从头到尾逐个比较L中的基因与S中的基因,加和统计量,如果两者相同就增加KS统计量,反之就减少KS统计量。增加的多少与这个基因和表型的相关性有关。最后ES就是KS的最大方差值。
step 2、检验ES的显著性。重复k次随机选择的大小为nt的基因集(Nt1,...,Ntk),p值计算公式为:
step3、使用FDR进行多重检验的校正。
相关软件:GSEA-P software
1、Benjamini Y, Hochberg Y. Controlling the false discovery rate: a practercal and powerful approch to multiple testing.
2、
3、Gene set enrichment analysis: A knowledge-based approach for interpreting genome-wide expression profiles
4、 《the Gene Ontology handbook》
Grafana的介绍与使用
Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用grafana的公司有很多,如paypal、ebay、intel等。
①可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。
②报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。
③通知:警报更改状态时,它会发出通知。接收电子邮件通知。
④动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。
⑤混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。
⑥注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。
⑦过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。
Dashboard的建立都是基于某一个数据源的,所以要先加一个数据源。
可视化方式有很多种,不过Graph、Table、Pie chart 这三种基本就已经满足数据展现要求了。
把这个Graph折线图Copy一份,改一下展现方式即可。
注意:默认添加完table后,如果有数字,会以K为单位,比如将300000展示位30k。
数字展示方式修改,Add column style:
当表格中出现数据后,需要通过筛选条件进行筛选,grafana提供了模板变量用于自定义筛选字段。
Type:定义变量类型
Query:这个变量类型允许您编写一个数据源查询,该查询通常返回一个 metric names, tag values or keys。例如,返回erver names, sensor ids or data centers列表的查询。
interval:interval值。这个变量可以代表时间跨度。不要按时间或日期直方图间隔硬编码一个组,使用这种类型的变量。
Datasource:此类型允许您快速更改整个仪表板的数据源。如果在不同环境中有多个数据源实例,则非常有用。
Custom:使用逗号分隔列表手动定义变量选项。
Constant:定义一个隐藏常数。有用的metric路径前缀的dashboards,你想分享。在dashboard export,期间,常量变量将作为一个重要的选项。
Ad hoc filters:非常特殊类型的变量,只对某些数据源,InfluxDB及Elasticsearch目前。它允许您添加将自动添加到使用指定数据源的所有metric查询的key/value 过滤器。
上面的Table和Graph分别使用了interval和query来定义变量进行筛选,不再重复。
grafana只有graph支持告警通知。
grafana的告警通知渠道有很多种,像Email、Teams、钉钉等都有支持。
在grafana.ini中开启告警:
要能发送邮件通知,首先需要在配置文件grafana.ini中配置邮件服务器等信息:
Grafana是个功能强大、展现层很漂亮的数据可视化监控工具,本篇主要介绍了Grafana基于MySQL数据源的安装及常用姿势,也支持其他数据源如ElasticSearch、InfluxDB等。更多内容可看 官网
用topGO进行GO富集分析
topGO是一个半自动的GO富集包,该包的主要优势是集中了好几种统计检验的方法,目前支持的统计方法如下:
BiocManager::install('topGO')
需要R的版本为=2.10,但biocmanager安装需要的R版本更高,现在应该是3.6。
富集工作主要包括3个步骤:
1、准备相关数据;
2、进行富集统计检验;
3、分析结果。
所以最重要的工作就是数据的准备。需要的数据包括包含全部geneID(背景基因名,一般是研究物种的全部基因)的文件,需要进行富集分析的geneID(差异表达基因或感兴趣的基因)文件,还有gene-to-GO的注释文件。
物种全部的geneID和差异基因ID比较容易获得,比较费劲的是gene-to-GO文件。
topGO提供了一些函数来帮助我们自动获取注释信息:
annFUN.db :用于Bioconductor上有注释包的物种的芯片数据;
annFUN.org :用于Bioconductor上有“org.XX.XX”注释包的数据;
annFUN.gene2GO :用户自己提供gene-to-GO文件;
annFUN.GO2gene :用户提供的GO-to-gene文件也可以;
annFUN.file :读取有gene2GO或GO2gene的txt文件。
一般Bioconductor提供的注释物种并不多,我的方法主要是用AnnotationHub的select函数或biomaRt的getBM函数来获取,具体操作见:
自己提供gene2GO文件时,格式应该为:
gene_IDTABGO_ID1, GO_ID2, GO_ID3, ....
这样就定义了一个topGOdata对象。
结果可以作气泡富集图。
showSigOfNodes(GOdata, score(resultWeight), firstSigNodes = 10, useInfo = "all")
关于go语言统计检验和golang 参数检验的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。