go注释r语言 go功能注释流程
GO(Gene Ontology)
Ontology 首先是出现于哲学领域的一个词汇,后来广泛用于计算机领域,发挥了很重要的作用,再后来这个概念被引入生物领域。
创新互联公司专注于企业成都营销网站建设、网站重做改版、台江网站定制设计、自适应品牌网站建设、HTML5建站、商城开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为台江等各大城市提供网站开发制作服务。
gene Ontology 是生物中Ontology中一个重要应用。go项目最初是由研究三种模式生物(果蝇、小鼠和酵母)基因组的研究者共同发起。是生物信息分析中很重要的一个方法
go是在生物领域应用非常广,可以帮助生物学家对基因产物进行准确的定义(功能、位置),节省时间。
因为在最开始的时候,生物学家们更多是专注于自己研究的物种/课题,而且每个生物学家对功能等的定义是存在差异的,导致不同实验室/物种不能实现直接的对接(比如A物种内的x基因的功能使用的是a这个词汇进行注释,而B物种内的x基因的功能却使用的是与a同义的词汇b进行注释,这种情况计算机无法识别),就像讲两种语言的人,无法直接进行语言交流。这种情况导致的问题是,出现了一种阻碍,让问题复杂化了。所以就有了Ontology在生物领域中的应用,实现“书同文”。
go定义了基因/基因产物的功能(通过术语)且定义了它们各自之间功能是怎样联系的(关系)。它组成了一个具有大量term的词汇库,并定义各种term之间的关系(is_a part_of R)。
GO通过三个方面的术语对基因/基因产物的功能进行描述:分子功能(molecular function) -由基因/基因产物行使的分子水平上的功能; 细胞组件(cellular component)-基因/基因产物产生功能时其在细胞结构上的位置;生物学过程(biological process)-在哪个生物学通路/生物过程发挥作用。
目前,GO 注释主要有两种方法:
(1)序列相似性比对(BLAST):例如blast2go(将blast结果转化为GO注释)
(2)结构域相似性比对(InterProScan)
blast2go的本地化教程:
在blast2go软件正确安装的情况下,使用blast2go进行go注释,出现无法得到注释结果的问题:
另外还有可能出错的原因是,blast2go无法识别blast高的版本号,当使用高版本的blast的时候,直接将版本号给修改为低版本的就行了,例如(BLASTX 2.2.25+)
GO 的图形是一个有向无环图
Go语言基础语法(一)
本文介绍一些Go语言的基础语法。
先来看一个简单的go语言代码:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法。
go语言中格式化输出可以使用 fmt 和 log 这两个标准库,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包。
log包实现了简单的日志服务,也提供了一些格式化输出的方法。
执行结果:
下面来介绍一下go的数据类型
下表列出了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值。
常量是在程序编译时就确定下来的值,程序运行时无法改变。
执行结果:
执行结果:
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符。
算术运算符:
关系运算符:
逻辑运算符:
位运算符:
赋值运算符:
指针相关运算符:
下面介绍一下go语言中的if语句和switch语句。另外还有一种控制语句叫select语句,通常与通道联用,这里不做介绍。
if语法格式如下:
if ... else :
else if:
示例代码:
语法格式:
另外,添加 fallthrough 会强制执行后面的 case 语句,不管下一条case语句是否为true。
示例代码:
执行结果:
下面介绍几种循环语句:
执行结果:
执行结果:
也可以通过标记退出循环:
--THE END--
什么是聚类分析和GO注释分析
你这个问题~~
有点无厘头~
聚类分析,我们可以简单的理解成为中国人可以聚成一类,美国人聚成另一类,这些都是根据他们不同的各自属性来聚类的。
GO注释分析,翻译成中文好像是基因本体论分析,也就是gene ontology annotation,按照了三个大的标准(相当于前面所说的属性)将每个基因聚类(分别是根据基因的功能,参与代谢的过程,以及这个基因产物的定位)
字都打错了,可见你很不严谨呀。
一般两种方法,一是你自己来测,不过很花钱的(具体实验方法步骤可以到Google里通过gene sequencing来搜索)。
如果别人已经测好了,或者现在数据库里有了,你可以到NCBI上找到。
R语言:clusterProfiler进行GO富集分析和Gene_ID转换
ID转换用到的是 bitr() 函数,bitr()的使用方法:
org.Hs.eg.db包含有多种gene_name的类型
keytypes() :keytypes(x),查看注释包中可以使用的类型
columns() :类似于keytypes(),针对org.Hs.eg.db两个函数返回值一致
select() :select(x, keys, columns, keytype, ...) eg.
函数enrichGO()进行GO富集分析,enrichGO()的使用方法:
举例:
2021-09-24 关于超几何检验的一些理解
生物信息里面常见的就是KEGG GO 等通路富集时候用到的 超几何检验知识,为了便于理解 这里举个例子:
目前有200个基因具有GO注释,其中60个是GO04
我们得到20个差异基因,其中有11个是GO04,想问GO04这个通路是否在这20个基因中得到了富集??
(即公式中的,N=200,n=20,M=60,i=11);
我们先算抽取从200个基因里面抽20个基因,其中有11个基因具有GO04的概率:
即0.0093
下面为p值的计算公式:即 p-value=1-(p0+p1+p3+...+p10),可以看到如果括号里面的值越大,说明从200个基因里面抽20个,从抽到0个到抽10个基因是GO04通路里面的基因的概率很大,1-累加值就很小,说明我们的结果显著富集(越不可能发生的事情,我们却发生了)。
拓展R语言计算p值:
phyper(11-1,60,140,20,lower.tail = F)=0.0125还是蛮显著的。
如果还不好理解,你可以试试极端的例子,
总共有10个基因,其中5个基因是GO04,我们现在得到5个差异基因,刚好这5个基因都是GO04(不言而喻这绝对很显著了,p值理论上会趋近于0)
1-(p0+p1+p2+p3+p4) = 1-(1/252+25/252+100/252+100/252+25/252)=1/252=0.003968254很显著!
R语言实现:
phyper(5-1,5,5,5,log.p = F,lower.tail=F)
GO注释和富集分析
GO注释是对某个特定基因功能的描述。每一条GO注释由一个基因和相应的GO term组成。这些描述一起构成了当前的生物学认知的“快照”。关于基因功能的碎片化的认知可能建立在不同的等级之上,这就是为什么每条GO注释总是会引用其基础的证据。证据以GO“证据码”的形式呈现,具体可能是一个已发表的文献或者创建这条注释的方法。
所有的GO注释,最终都会被科学文献支持。GO证据码描述了证据并且粗略的反应了这条注释与直接的实验证据相距多远,以及这条注释是否被专家评估过。
网站名称:go注释r语言 go功能注释流程
分享链接:http://hbruida.cn/article/dodehci.html