0%

之前和别人讨论过森林图相关的东西,这两天摸鱼正好看到了一个非常有趣的新R包,能够比较快地画出好看的森林图,感觉相见恨晚,分享给大家~后面附了完整代码和工程文件

前言

Meta分析的常客

提到森林图(forest plot)大家肯定不会陌生,或多或少都见过,它在Meta分析中必不可少,能够简单直观展现汇总的结果。下图就是NEJM上一张比较典型的森林图。

Schumacher M., Rücker G., Schwarzer G. (2014) Meta-Analysis and the Surgeon General’s Report on Smoking and Health. New England Journal of Medicine 370:186-188. doi: 10.1056/NEJMc1315315

Read more »

本文起因是我师兄有篇文章用到了配对样本数据,投稿后审稿人要求使用条件logistic回归(conditional logistic regression analysis),找了一些资料发现没有比较好的教程,都是在spss中使用cox回归曲线救国实现的,于是就去学习了下条件logistic回归在R语言中的实现。

审稿人意见:Case-control study needs to be accounted by means of a conditional logistic regression analysis (instead of “normal” logistic regression). There was no hint in the text, so in order to avoid any biased OR/mean estimates from the models mentioned the authors are kindly asked to provide a bit more information on the methodological approach.

概念及实现方法

条件logistic回归是由Norman Breslow, Nicholas Day, Katherine Halvorsen, Ross L. Prentice和C. Sabai在1978年提出,是logistic回归的延伸,允许人们考虑到分层和匹配,通常用于具有特定条件或属性的病例受试者与没有该条件的n个对照受试者相匹配。

Read more »

PCA图(主成分分析)

可以理解将一个多维变量(指含有非常多基因的的一个样本)降低维度,在二维平面上展示并且分组

#exp是前面的基因矩阵,将样本名字改为列名,基因名字改为行,然后更改数据格式,否则报错
dat=as.data.frame(t(exp))
library(FactoMineR)
library(factoextra) 
dat.pca <- PCA(dat, graph = FALSE)
pca_plot <- fviz_pca_ind(dat.pca,
                         geom.ind = "point", # show points only (nbut not "text")
                         col.ind = Group, # color by groups
                         palette = c("#00AFBB", "#E7B800"),
                         addEllipses = TRUE, # Concentration ellipses
                         legend.title = "Groups"
)
pca_plot

geo-1

可以看到同组的几个样本之间的相似性较高,而RA组和control组两组之间也有较好的区分度

补充基础知识

logFC

**FC(Foldchange):**处理组平均值/对照组平均值

**logFC:**Foldchange取log2

logFC基本都是个位数,一般作为横坐标出现在火山图中

  • logFC>0, treat>control,基因表达量上升
  • logFC<0, treat<control,基因表达量下降
  • 通常所说的上调、下调基因是指表达量显著上升/下降的基因
    Read more »

优秀学员考试题

题目1

使用循环,对iris的1到4列分别画点图(用基础包画图函数plot)

##先用第一列画一下,基本形状对了,根据第5列再加入颜色
 plot(iris[,1],col = iris[,5])  
##开始写循环,1到4共循环4次
 x <-c(1:4)   #设置一个向量
 for (i in x) {
 plot(iris[,i],col = iris[,5])
 }
##运行后发现一个问题,4张图都堆叠在一起,查阅plot函数小图拼贴的方法后修改
 par(mfrow=c(2,2)) #画的图以2行2列展示
 x <-c(1:4)
 png("zuoye.png")
 par(mfrow=c(2,2))
 for (i in x) {
 plot(data[,i],col = data[,5])
 }
 dev.off()
Read more »

准备工作

#安装必要的R包
options("repos" = c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
if(!require(tidyr))install.packages("tidyr",update = F,ask = F)
if(!require(dplyr))install.packages("dplyr",update = F,ask = F)
if(!require(stringr))install.packages('stringr',update = F,ask = F)
if(!require(tibble))install.packages('tibble',update = F,ask = F)
library(tidyr)
library(dplyr)
library(stringr)
library(tibble)

更换电脑时重新运行代码,发现R版本过期了,tidyr包需要R4.1.3以上,更新后无报错。

Read more »

ggplot几何对象

几何对象可以叠加

ggplot(data = iris) + 
  geom_smooth(mapping = aes(x = Sepal.Length, 
                          y = Petal.Length))+
  geom_point(mapping = aes(x = Sepal.Length, 
                           y = Petal.Length))
#全局描述方法
ggplot(data = iris,mapping = aes(x = Sepal.Length, y = Petal.Length))+
  geom_smooth()+
  geom_point(mapping = aes (color= Species)) #单独赋值不一样的变量
Read more »

从头开始学一遍生信基础知识,记录一下过程,希望和看到的你一起提高

准备工作

#设置清华镜像
options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/")
#安装R包
if(!require(ggplot2))install.packages('ggplot2',update = F,ask = F)
if(!require(ggpubr))install.packages('ggpubr',update = F,ask = F)
if(!require(eoffice))install.packages("eoffice",update = F,ask = F)
if(!require(patchwork))install.packages("patchwork",update = F,ask = F)
Read more »