這是對(duì)之前批量處理方法的一個(gè)補(bǔ)充火惊,前面的文章
目錄
批量處理——for循環(huán)批量計(jì)算組間差異
批量處理——apply批量計(jì)算組間差異
批量處理——for循環(huán)畫圖
批量處理——for循環(huán)遷移文件
批量處理——基因之間的相關(guān)性
批量處理——基因與免疫細(xì)胞的相關(guān)性
批量處理——基因與免疫細(xì)胞的相關(guān)性
出現(xiàn)的需求
在循環(huán)過程中卷员,每一次都有一個(gè)數(shù)據(jù)框產(chǎn)生弱贼,而最終想要把這些數(shù)據(jù)框放置在同一個(gè)數(shù)據(jù)框中。
例如我分析數(shù)據(jù)過程中路翻,第一步是根據(jù)免疫細(xì)胞的表達(dá)情況進(jìn)行分組钾挟,第二步是根據(jù)分組,比較選定基因與分組之間的關(guān)系兔毒。由于免疫細(xì)胞浸潤(rùn)的不同漫贞,每一次分組都會(huì)有差別,所以這要一次循環(huán)操作育叁。然后每一次分組后迅脐,還有若干基因需要根據(jù)分組進(jìn)行比較。每次進(jìn)行比較后豪嗽,會(huì)有統(tǒng)計(jì)分析的結(jié)果谴蔑,而我需要最后匯總的統(tǒng)計(jì)結(jié)果。
數(shù)據(jù)
計(jì)算
有兩種處理方法龟梦,一種是通過創(chuàng)建列表list的形式隐锭,另一種是通過創(chuàng)建空的dataframe的形式。
第一種方法
通過提前創(chuàng)建空的dataframe的方式
df <- data.frame()
for(i in 1:22) {
print(colnames(res_cibersort)[i])
mean_num <- mean(res_cibersort[,i])
#根據(jù)免疫數(shù)據(jù)進(jìn)行分組计贰,并選定分組和名稱
res_group <- res_cibersort %>%
as.data.frame() %>%
mutate(group = ifelse(res_cibersort[,i] < mean_num, "Low", 'High')) %>%
select(i, group)
#分組信息和表達(dá)信息進(jìn)行合并
expr_res_group <- expr_candi_gene %>%
.[rownames(res_group),] %>%
cbind(res_group,.)
data <- expr_res_group
# 整合成一個(gè)步驟
kruskal_data <- do.call(rbind, lapply(colnames(data)[3:ncol(data)], function(x){
dd <- kruskal.test(data[,x] ~ group, data = data)
data.frame(cell = colnames(data)[1],gene=x,p.value=dd$p.value)
}))
df = rbind(df, kruskal_data)
}
第二種方法
通過創(chuàng)建空list的形式钦睡、
l <- list()
for(i in 1:22) {
print(colnames(res_cibersort)[i])
mean_num <- mean(res_cibersort[,i])
res_group <- res_cibersort %>%
as.data.frame() %>%
mutate(group = ifelse(res_cibersort[,i] < mean_num, "Low", 'High')) %>%
select(i, group)
expr_res_group <- expr_candi_gene %>%
.[rownames(res_group),] %>%
cbind(res_group,.)
data <- expr_res_group
# 整合成一個(gè)步驟
kruskal_data <- do.call(rbind, lapply(colnames(data)[3:ncol(data)], function(x){
dd <- kruskal.test(data[,x] ~ group, data = data)
data.frame(cell = colnames(data)[1],gene=x,p.value=dd$p.value)
}))
l[[i]] <- kruskal_data
}
df_now <- do.call(rbind,l)
對(duì)比兩次的數(shù)據(jù)
兩次數(shù)據(jù)是一致的
最終得到的數(shù)據(jù)是,根據(jù)選定免疫細(xì)胞浸潤(rùn)情況躁倒,劃定分組后荞怒,不同基因表達(dá)是否有差異。