需要注意的是,如果只提取单列的话,得到的数据就变成了一个vector,而不再是dataframe的格式了。
首先,导入R语言需要加载xlsx包,没有安装这个包的,请用下面的代码进行在线安装:
install.packages("xlsx")选择China的任意一个镜像站点,它会自动安装其他所需的依赖包。
安装好xlsx包后,接下来导入存放在“C:\Users\HWT\Desktop”路径下的“test.xlsx”文件,导入这个文件的代码如下:
library(xlsx)
read.xlsx2(file="C:\\Users\\HWT\\Desktop\\test.xlsx",sheetIndex=1)
我们上面的代码只是把test.xlsx导入了R语言,并没有把它赋给R语言里的某个对象,用下面的代码把数据赋给对象Mydata:
Mydata-read.xlsx2(file="C:\\Users\\HWT\\Desktop\\test.xlsx",sheetIndex=1)。
今天就先来聊聊如何看差异表达基因数据,火山图,聚类图又怎么看。1差异基因筛选方法那差异基因是如何筛选出来的呢?差异基因的筛选方法有很多,包括倍数法、T检验、F检验及SAM等。下面简单介绍一下GCBI上用的倍数法和SAM法。
倍数法适用于没有生物学重复的样本,其计算基因在两个条件下表达水平的比值,确定比值的阈值,将绝对值大于此阈值的基因判断为差异基因。
SAM算法适用于有生物学重复的样本,通过对分母增加一个常量 T 检验过程减小了假阳性发生的概率。文献中报道,相较于其他算法,SAM算法更为稳定,筛选出的结果也更为准确。2差异基因数据解读经过合适的差异基因方法筛选出的差异基因,结果一般分为两部分,数据+图形。
数据结果展示如下图所示(两分组)众多参数中,重点看三个。p-value或q-value没有做生物学重复请跳过这一步。
p-value或q-value是统计学检验变量,代表差异显著性,一般p-value或q-value小于0.05代表具有显著性差异,但可根据具体情况适当调整。
因为p-value或q-value衡量地是某个基因假阳性的概率,如果p-value或q-value越低,那么挑选该基因出现假阳性的概率就越低,可验证性就越高。
两者具体的计算方法具体如下:那p-value、q-value同时存在时看哪个呢?
SAM法只有q-value。当两者同时存在时,可根据具体情况具体分析。
差异筛选是一个典型的多重假设检验过程,对于多重假设检验,单次检验中差异显著基因的假阳性率(p-value较小)可能会较大,而q-value和FDR值较常见的BH校正方法得到的FDR值而言,改进了其对假阳性估计的保守性。
即q-value相比于p-value更加严格,当差异基因结果较少时,可以退而求其次看p-value。Fold ChangeFold Change表示实验组比上对照组的差异表达倍数,一般表达相差2倍以上是有意义的,放宽要求1.5倍或者1.2倍也可以接受。
看表达倍数的同时还需结合基因表达丰度,信号值太低的基因会在后续的验证实验中检测不到。3差异基因图表解读在差异结果的图形展示结果中,主要是火山图和聚类图。火山图火山图只针对两分组且有生物学重复的情况。
如何看火山图呢?火山图可反映总体基因的表达情况,横坐标代表log2(Fold Change),纵坐标表示-log10(P值),每个点代表一个基因,颜色用以区分基因是否差异表达,图中橙色的点代表差异表达基因,蓝色的点代表没有差异表达的基因。聚类图聚类图可以衡量样本或基因之间表达的相似性。
如上图所示的聚类图中,横坐标代表样本聚类,一列代表一个样本,聚类基于样本间基因表达的相似性,样本间基因表达越接近,靠的越近,以此类推。
纵坐标代表基因聚类,一行代表一个基因,聚类基于基因在样本中表达的相似性,基因在样本中表达越接近,靠的越近,以此类推。
色阶代表基因表达丰度,越红代表上调得越明显,越绿代表下调得越明显。
如何做聚类图请戳往期推送做个聚类图只需1分钟
差异基因有了,如何挑选潜在基因进行实验验证呢?
关键还在于感兴趣点在哪了。粗略的看,可以先看KEGG或者GO功能分类,看差异基因具体富集在哪些通路或功能。
比如关注的是细胞内酸合成关键酶,可以重点看酸合成和碳流相关通路。具体如何看KEGG或者GO功能分类,请听下回分解。
1、创建数据集
hospital <- c("New York", "California")patients <- c(150,350)
costs <- c(3.1,2.5)
df <- data.frame(hospital, patients, costs)
2、创建新的变量
df$totcosts <- df$patients * df$costs
3、改变变量的名称
df$costs_euro <- df$costs
df$costs <- NULL
df$patients <- ifelse(df$patients==150,100,ifelse(df$patients==350,300,NA))
4、合并数据集
finaldt <- merge(dataset1, dataset2, by="id")
或者
finaldt <- cbind(dataset1, dataset2)
finaldt <- rbind(dataset1, dataset2)
5、子数据集
dt <- iris[,c("Sepal.Length" ,"Sepal.Width")]
dt <- iris[,c(-2,-3)]#去除第2、3列变量数据
dt2<- subset(dt,Age>40&Sex==men)#对数据集dt筛选满足条件的数据