本教程问题:
1.mmGO.rdata文件的制作,是否不需要这一步,更改一下脚本即可实现呢?
2.这样的图形美化,目前的图还不是很满意,需要进行美化。
这些问题,需要我们大家一起解决,切分享哦!
我们在做组学时,常常遇到多多个处理进行差异分析,获得差异基因或差异代谢物。此后,是对这些差异结果进行GO或KEGG富集分析。这是一个很普遍的结果,但是这样一弄后,我们对多个组合差异基因进行富集分析后,获得多个GO或KEGG富集分析结果,图很多,但是重复的term也是很多,那如何阐述就是个问题,以及很多图列在论文中也不是很美观,只能间部分图放在附件中。

那么,我们是不是可以间多个GO或KEGG的term进行合并绘图呢?这个想法在很久以前就像做,但是一直没找到相关的教程。今天,突发奇想,无意间看到这样的教程,那就重复一下吧。
PS:在这个教程中,自己很多的参数还是没有很好的了解,如果你看过或是已经可以深入了解,希望你可以分享一下哦。

这是最终图形的效果,总体来说,还是基本满足我们的需求,但是很多细节还是需要调整。
## 导入R包
library(plyr)
library(stringr)
library(ape)
library(GOSemSim)
library(ggtree) ## 进化树
library(scales)
library(cowplot) ## 合图
library(ggplot2)
setwd("D:\\小杜的生信筆記\\20220605GO富集聚类")
导入GO富集结果,这些结果在外面前期的教程中可获得:clusterProfiler包 |GO、KEGG功能富集分析 | 值得收藏 ,GO、KEGG功能富集分析 | 功能富集网络图、热图绘制(代码重新)
多组富集分析结果的文件名统一命名,便于导入
fnames <- Sys.glob("enrichGO*.csv")
fnames


# GO term的合集
ego.ID <- unique(ego.all[,c(2:4)])
head(ego.ID)
> head(ego.ID)
ID Description BgRatio Bg
1 GO:0046777 protein autophosphorylation 235/23239 235
2 GO:0034329 cell junction assembly 200/23239 200
3 GO:0034330 cell junction organization 248/23239 248
5 GO:0098742 cell-cell adhesion via plasma-membrane adhesion molecules 199/23239 199
11 GO:0034332 adherens junction organization 121/23239 121
12 GO:0043405 regulation of MAP kinase activity 293/23239 293
```
## 3.3 GO term过滤
```
#删掉超过300个基因的GO term
#如果不想删除,可以注释掉下面这段
ego.ID$Bg <- as.numeric(str_split_fixed(ego.ID$BgRatio, "/",2)[,1]) #提取GO term包含的基因数量
ego.ID <- ego.ID[ego.ID$Bg < 300,]
dim(ego.ID)
#删掉少于100个基因的GO term
#具体怎样筛选,要根据你自己的数据灵活设置
ego.ID <- ego.ID[ego.ID$Bg > 100,]
dim(ego.ID)
head(ego.ID)
```
## 3.4 横向合并多组富集结果,用于画热图
```
## 横向合并多组富集结果,用于画热图
MyMerge <- function(x, y){
df <- merge(x, y, by= "ID", all.x= TRUE, all.y= TRUE)
return(df)
}
ego.m <- Reduce(MyMerge, fdataset)
head(ego.m)
```
```
#只保留GO term ID和各组的p.adjust
ego.m <- ego.m[,c(1,4,7,10)] #此处有三组,如果有更多组,要在后面继续加
#提取筛选过的GO term
ego.m <- merge(ego.ID[,1:2], ego.m, by= "ID", all.x= TRUE)
rownames(ego.m) <- ego.m$Description
ego.m$ID <- NULL
ego.m$Description <- NULL
```
```
#把列名改为组名
#colnames(ego.m)<- str_remove(fnames, ".csv")
colnames(ego.m) <- paste0("G", seq(1:length(fnames)))
head(ego.m)
> head(ego.m)
G1 G2 G3
tissue homeostasis NA 0.008364684 0.004178739
regulation of cell-matrix adhesion NA 0.003506443 0.003381501
hematopoietic progenitor cell differentiation 0.007418708 0.002188681 NA
myeloid cell homeostasis 0.012630541 NA NA
myeloid leukocyte differentiation 0.003034455 NA NA
regulation of leukocyte migration 0.005619600 NA 0.012970792
mmGO.rdata文件是这样获得的,但是我在考虑如果我们没有自己.db是要如何获得,是否可以根据我们前面的分析进行获得呢?这个问题需要大家一起解决,如果你知道可以分享一下,谢谢!!*
library(org.Hs.eg.db)
hgGO <- godata('org.Hs.eg.db', ont="BP")
head(hgGO)
#save(hgGO, file="mmGO.rdata")
Q1,需要我们一起解决!!!
#导入之前保存的文件
(load("mmGO.rdata"))
#计算GO term之间的相似性
ego.sim <- mgoSim(ego.ID$ID, ego.ID$ID, semData=mmGO, measure="Wang", combine=NULL)
ego.sim[1:3, 1:3]
> ego.sim[1:3, 1:3]
protein autophosphorylation cell junction assembly
protein autophosphorylation 1.000 0.061
cell junction assembly 0.061 1.000
cell junction organization 0.090 0.683
cell junction organization
protein autophosphorylation 0.090
cell junction assembly 0.683
cell junction organization 1.000
#用GO term作为行名、列名,便于查看和画图
rownames(ego.sim) <- ego.ID$Description
colnames(ego.sim) <- ego.ID$Description
ego.sim[1:3, 1:3]
绘制聚类图
#给GO term分类
tree <- nj(as.dist(1-ego.sim))
ggtree(tree) + geom_tiplab() + #写GO term
geom_text2(aes(subset=!isTip, label=node), hjust=-.3) + #写node编号
coord_cartesian(xlim=c(-.1,1.3)) #左右两侧留出合适的空间
此图节点就是我们后续分类的标准

绘图代码在下面的教程中,如果获得也可以在知乎、公众号中进行获得代码数据事例数据。
多组差异基因富集分析结果聚类 | 获得共表达term的富集图
@小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!
对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl
我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类
导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri
作为RubyonRails新手,我明白“@”和“:”引用有不同的含义。我看到了thispost在SO中,其中描述了一些差异。@表示实例变量(例如@my_selection):表示别名(例如:my_selection)我遇到了一个情况,我有一个标准的MVC页面,类似于我的网络应用程序中的所有其他表单/页面。html.erb片段route.rb片段resources:my_selections当我尝试访问此页面时,出现此错误:NoMethodErrorinselections#createShowingC:/somedir/myapp/app/views/my_selections/ind
当您在Ruby脚本中使用系统调用时,您可以像这样获得该命令的输出:output=`ls`putsoutput这就是thisquestion是关于。但是有没有办法显示系统调用的连续输出?例如,如果您运行此安全复制命令,以通过SSH从服务器获取文件:scpuser@someserver:remoteFile/some/local/folder/...它显示随着下载进度的连续输出。但是这个:output=`scpuser@someserver:remoteFile/some/local/folder/`putsoutput...不捕获该输出。如何从我的Ruby脚本中显示正在进行的下载进度?
目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标
网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.
一、机器人介绍 此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接
目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'
我正在尝试将我更新的gem推送到rubygems.com并得到以下结果。~/dev/V2/V2GPTI(master)$gembuildv2gpti.gemspecSuccessfullybuiltRubyGemName:v2gptiVersion:0.2File:v2gpti-0.2-universal-darwin-13.gem~/dev/V2/V2GPTI(master)$gempushv2gpti.gemspecERROR:Whileexecutinggem...(Gem::Package::FormatError)packagemetadataismissinginv2g