GSEA檔案準備及表達相關性分析(R語言)

2021-10-04 16:24:14 字數 3496 閱讀 1437

setwd("f:\\geo\\geo晶元資料/")

load('gse35896_eset.rdata')

a=gset[[1]]

##取出第乙個元素賦值給乙個物件a

dat=exprs(a)

#a現在是乙個物件,取a這個物件通過看說明書知道要用exprs這個函式,該函式得到表達矩陣

#現在 得到的dat就是乙個表達矩陣,只不過基因的id是探針名

dim(dat)

#看一下dat這個矩陣的維度

dat[1:5,1:5]

##以下為gpl570的包

library(hgu133plus2.db)

ids=totable(hgu133plus2symbol)

head(ids)

colnames(ids)=c('probe_id','symbol')

length(unique(ids$symbol))

#[1] 18832個獨特的基因探針,意味著本來19825個裡面有一部分是重複的

tail(sort(table(ids$symbol)))

table(sort(table(ids$symbol)))

#每個物件出現的個數

plot(table(sort(table(ids$symbol))))

#畫圖觀察

ids=ids[ids$symbol != '',]

ids=ids[ids$probe_id %in% rownames(dat),]

##%in%用於判斷是否匹配,然後取匹配的幾行,去掉無法匹配的資訊。

dat[1:5,1:5]

dat=dat[ids$probe_id,]

#取表達矩陣中可以與探針名匹配的那些,去掉無法匹配的表達資料,這時只剩下19825個探針及表達資訊,其餘已被剔除。

#ids新建median這一列,列名為median,同時對dat這個矩陣按行操作,取每一行的中位數,將結果給到median這一列的每一行

ids=ids[order(ids$symbol,ids$median,decreasing = t),]

#對ids$symbol按照ids$median中位數從大到小排列的順序排序

##即先按symbol排序,相同的symbol再按照中位數從大到小排列,方便後續保留第乙個值。

##將對應的行賦值為乙個新的ids,這樣order()就相當於sort()

ids=ids[!duplicated(ids$symbol),]

#將symbol這一列取取出重複項,'!'為否,即取出不重複的項,去除重複的gene ,保留每個基因最大表達量結果.最後得到18832個基因。

dat=dat[ids$probe_id,]

#新的ids取出probe_id這一列,將dat按照取出的這一列中的每一行組成乙個新的dat

rownames(dat)=ids$symbol

#把ids的symbol這一列中的每一行給dat作為dat的行名

head(dat)

##至此我們就得到了該資料集的表達矩陣,最後將結果儲存。

dat[1:3,1:3]

which(rownames(dat)=="myc")

pd=pdata(a)

#通過檢視說明書知道取物件a裡的臨床資訊用pdata

view(pd)

## 檢視一下,挑選一些感興趣的臨床表型,這裡我們欲得到其分組title資訊。

library(stringr)

#執行乙個字元分割包

group_list=str_split(pd$source_name_ch1,' ',simplify = t)[,4]

#抽取title一列,按照空格分割,取第四個元素即control和vemurafenib

table(group_list)

#看一下兩個分組各有幾個

group_list<-as.data.frame(group_list)

group_list$id<-pd$geo_accession

rownames(group_list)<-group_list$id

which(group_list$group_list=="primary")

rownames(group_list[1:566,])

tumordat<-dat[,1:566]

colnames(tumordat)

#tumordat<-dat

###得到腫瘤表達矩陣,整理gsea檔案

all_df <- cbind(name = rownames(tumordat), description = "na", tumordat)

#all_df <- all_df[,-1]

dim(all_df)

all_df[1:3,1:3]

group <- c(rep("low", 31), rep("high", 31))

group <- paste(group, collapse = " ")

group <- c(paste(c(62, 2, 1), collapse = " "), "# low high", group)

write.table(file = "geo35896.txt", all_df, sep = "\t", col.names = t, row.names = f, quote = f)

write.table(file = "group35896.cls", group, col.names = f, row.names = f, quote = f)

###相關性分析

myc<-dat["myc",]

gapdh<-dat["gapdh",]

data<-rbind(myc,gapdh)

data<-t(data)

data<-as.data.frame(data)

class(data)

###library(ggplot2)

#求相關係數

r<-cor(data$myc,data$gapdh,method = "pearson")

#p值p<-cor.test(data$myc,data$gapdh,alternative="two.side")

##畫圖

tiff(filename = "35896_cor.tiff")

ggplot(data =data,aes(x=myc, y=gapdh)) +

geom_point(color="#d7191c")+

geom_smooth(method="lm",color="#1a9641") +

geom_text(aes(x=4.4, y=10,label=paste("r","=",signif(r,3),

seq="")),

color="black") +

geom_text(aes(x=4.4, y=9.7,label="p = 0.105"),color="black")

dev.off()

R語言相關性分析及步驟

記錄一下r語言學習過程,對於r的基礎就是基本資料型別 向量,矩陣,資料框,字串等等 庫的呼叫以及函式自定義,還需要多加學習!進入主題,今天主題是相關性分析 以下為 y c 170,175,180 定義向量 y1 c 20,25,30 y cor.test y,y1,method spearman 呼...

R語言相關性分析

相關性分析就是通過定量指標描述變數之間的強弱 直接或間接的聯絡。常見相關性指標 pearson相關係數是用於表示相關性大小的最常用指標,數值介於 1 1之間,越接近0相關性越低,越接近 1或1相關性越高。正負號表明相關方向,正號為正相關 負號為負相關。又稱為秩相關係數,利用兩變數的秩次大小來進行分析...

基於R進行相關性分析

一 相關性矩陣計算 1 載入資料 data read.csv 231 6057 2016 04 05 zx wd 2.csv header false 說明 csv格式的資料,header false 表示沒有標題,即資料從第一行開始。2 檢視匯入資料的前幾行,3 刪除資料的7,8列,都是0 4 計...