goseq
goseq是一个R包,用于寻找GO terms,即基因富集分析。
GO terms是标准化描述基因或基因产物的词汇,包括三方面,cellular component,molecular funciton,biological process。
每个GO term都有一个GO ID,比如 GO:006260,每个GO term背后都有一系列的相关基因。
GO分析的目的:在差异性基因分析后,我们可能得到很多差异基因,这些基因里的一部分可能跟某个生物过程相关,或几个生物过程相关。经过GO分析后,我们就能将差异性基因具体的生物功能展示出来,为下一步研究做准备。
GOseq需要输入的文件:
1.所有有count的genes。
2.差异性表达的genes。
3.genome信息,基因长度信息。#对于许多模式基因组来说,这些内容都被做成了独立的R包。
4.GO terms包。
>source("http://bioconductor.org/biocLite.R")
>biocLite("goseq")
>biocLite("geneLenDataBase")#genome,genes信息
>biocLite("org.Dm.eg.db")#果蝇的GO categories, (org,<Genome>,<GeneID>,db)
>library("goseq")
>library("geneLenDataBase")
>library("org.Dm.eg.db")
>DEG<-read.table("DEG",header=FALSE)
>ALL<-read.table("ALL",header=FALSE)
#DEG:差异性基因表 ALL:所有基因表(数据框格式)
>DEG.vector<-c(t(DEG))
>ALL.vector<-c(t(ALL))
#把数据格式转化为vector,便于下步操作
>gene.vector=as.integer(ALL.vector%in%DEG.vector)
#生成二进制的gene vector(1代表差异性基因,0代表非差异性基因)
>names(gene.vector)<-ALL.vector
>pwf=nullp(gene.vector,"dm3","ensGene")
#生成probability weighting function."dm3"是基因组,"ensgGene"是基因IDs。
>GO.wall=goseq(pwf,"dm3","ensGene")
#生成GO terms ID 。这边的疑问:genes 没有mapping 到GO categories。 goseq函数有一个选项:gene2cat,如果gene2cat=NULL,则goseq会自动调用getgo函数实现mapping功能,并将输出值gene2cat。
>enriched.GO=GO.wall$category[GO.wall$over_represented_pvalue<.05]
#生成差异性 GO terms ID
>library(GO.db)
>capture.output(for(go in enriched.GO[1:length(enriched.GO)]){
print(GOTERM[go])
cat("___________")
}
,file="SigGo.txt")
#生成具体的GO TERM详解
goseq的更多相关文章
- 文献导读 | Single-Cell Sequencing of iPSC-Dopamine Neurons Reconstructs Disease Progression and Identifies HDAC4 as a Regulator of Parkinson Cell Phenotypes
文献编号:19Mar - 11 2019年04月23日三读,会其精髓: 相信这种方法的话,那么它的精髓是什么,如何整合出这个core gene set. 首先要考虑样本的选择,样本里是否存在明显的分层 ...
- go语言项目汇总
Horst Rutter edited this page 7 days ago · 529 revisions Indexes and search engines These sites prov ...
- Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目
Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...
随机推荐
- 把world转成html
本来用php转的 效果不太理想 很不稳定 最后试了下java 效果不错 只记录java的方法好了 其实他们的原理都是一样的啊,都是用到了微软的com 首先是准备工作 下载(明确dll的版本是64位的还 ...
- Node Embedding
1.Kipf, Thomas N., and Max Welling. "Semi-supervised classification with graph convolutional ne ...
- Java NIO(1):迟迟登场的NIO
Java NIO的出现 Java语言发展至今,优点大家有目共睹:面向对象的语言.简洁有效.高移植性等等.但是同样也存在很多缺点,C语言程序员口中Java太慢了,.net程序员口中Java太开放了,ph ...
- php+redis秒杀
啥都不说了,看代码 前台: 包括开始和结束的秒杀时间,倒计时插件,统一看一遍再去写代码,思路会更清晰. js文件引入一个.min.js和一个插件js(在下面,自己复制吧) // JavaScript ...
- [JAVA · 0基础]:19.容器类
概述 容器 就是存放数据的一个集合 (java提供了一个接口专门去约束我们容器的实现类) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L ...
- dos下查找进程,如果找到echo find并结束该进程
@echo offset var=chromedriver.exetasklist | findstr "%var%" && echo findtaskkill / ...
- coreData笔记
1. CDVehicle *vehicle = (CDVehicle *)[[NSManagedObject alloc] initWithEntity:entity insertIntoMan ...
- poj1840
Eqs Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 15133 Accepted: 7426 Description ...
- Balala Power!(大数+思维)
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 通过spring boot提供restful api
1 将返回设置为produces = "application/json" 返回给客户端json格式的response. 2 对各种异常的处理 各种异常如何返回给客户端? 各种异常 ...