小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

METAFlux: 基于R語言的單細(xì)胞及Bulk轉(zhuǎn)錄組代謝通量分析流程及可視化

 TS的美夢 2024-12-02

內(nèi)容獲取

1、購買打包合集(《KS科研分享與服務(wù)》付費(fèi)內(nèi)容打包集合),價(jià)格感人,可以加入微信VIP群(答疑交流群,甚至有小伙伴覺得群比代碼更好),可以獲取建號(hào)以來所有內(nèi)容,群成員專享視頻教程,提前更新,其他更多福利!

2、《KS科研分享與服務(wù)》公眾號(hào)有QQ群,進(jìn)入門檻是20元(完全是為了防止白嫖黨,請理解),請考慮清楚。群里有免費(fèi)推文的注釋代碼和示例數(shù)據(jù)(終身擁有),沒有付費(fèi)內(nèi)容,群成員福利是購買單個(gè)付費(fèi)內(nèi)容半價(jià)!

需要者詳情請聯(lián)系作者(非需要者勿擾,處理太費(fèi)時(shí)間):

其他單細(xì)胞代謝分析工具:
(視頻教程)Compass代謝分析詳細(xì)流程及python版-R語言版下游分析和可視化
(視頻教程)scFEA視頻教程:單細(xì)胞轉(zhuǎn)錄組代謝通量分析
(視頻教程)單細(xì)胞轉(zhuǎn)錄組代謝通路活性分析及注釋可視化

也是群里小伙伴需求,介紹一個(gè)新的工具,METAFlux是一款基于R語言分析的代謝通量工具,2022年文章發(fā)表在Nature communications,可以從bulk或單細(xì)胞RNA-seq數(shù)據(jù)中推斷代謝通量。METAFlux旨在解決現(xiàn)有實(shí)驗(yàn)技術(shù)在研究癌癥代謝時(shí)的局限性,如代謝組學(xué)和通量分析方法,這些方法在準(zhǔn)確模擬復(fù)雜的腫瘤微環(huán)境方面存在挑戰(zhàn)。METAFlux利用基因組尺度的代謝模型從基因表達(dá)數(shù)據(jù)計(jì)算代謝反應(yīng)活性得分,然后應(yīng)用二次規(guī)劃為基礎(chǔ)的通量平衡分析來估計(jì)代謝通量。對于單細(xì)胞數(shù)據(jù),METAFlux將腫瘤微環(huán)境建模為一個(gè)代謝群落,以考慮細(xì)胞類型之間的相互作用。作者使用NCI-60細(xì)胞系和體內(nèi)Raji-NK細(xì)胞共培養(yǎng)模型的實(shí)驗(yàn)數(shù)據(jù)驗(yàn)證了METAFlux的性能,證明了它準(zhǔn)確描述腫瘤微環(huán)境中代謝異質(zhì)性和相互作用的能力。很顯然,METAFlux是針對腫瘤微環(huán)境代謝的工具,但是在非腫瘤細(xì)胞中也是可以應(yīng)用的!需要注意的是:METAFlux只能對人的數(shù)據(jù)進(jìn)行分析。

(reference:Characterizing cancer metabolism from bulk and single-cell RNA-seq data using METAFlux)

原理感興趣的可以閱讀下原paper,分析教程官網(wǎng)也寫得比較詳細(xì),包括運(yùn)行過程和結(jié)果解釋。寫在前面,請看完METAFlux只針對人的數(shù)據(jù)分析,作者不建議同源轉(zhuǎn)化做其他物種,因?yàn)槊總€(gè)物種代謝反應(yīng)有差別,而METAFlux只是人的代謝模型。此外,在分析中有一個(gè)參數(shù)設(shè)置,n_bootstrap,這個(gè)參數(shù)用于生成多個(gè)重采樣數(shù)據(jù)集,有助于通過考慮單細(xì)胞RNA-seq數(shù)據(jù)固有的稀疏性和隨機(jī)性來穩(wěn)定細(xì)胞簇級(jí)別代謝通量的估計(jì),作者教程演示(包括我)只設(shè)置了3,其實(shí)建議高一點(diǎn)比如100以上,但是有一個(gè)問題,也是這個(gè)包的分析局限,最后一步會(huì)非常耗費(fèi)內(nèi)存,一般電腦是帶不動(dòng)的,比如我演示的數(shù)據(jù),分析最后一步的時(shí)候內(nèi)存飆升到140G。

github鏈接:

https://github.com/KChen-lab/METAFlux?tab=readme-ov-file

首先安裝包加載數(shù)據(jù):

#paper# METAFlux: Characterizing metabolism from bulk and single-cell RNA-seq data# https://www./articles/s41467-023-40457-w
#github:https://github.com/KChen-lab/METAFlux?tab=readme-ov-file
devtools::install_github('KChen-lab/METAFlux')library(METAFlux)library(Seurat)

load("C:/Users/tq199/Downloads/adj_scRNA.RData")
首先按照單個(gè)樣本分析:流程很簡單!三步,calculate_avg_exp():: 計(jì)算celltype  bootstrap 平均表達(dá)量,calculate_reaction_score():: calculate metabolic reaction scores,compute_sc_flux()::計(jì)算代謝通量。
#我們單獨(dú)提取一個(gè)組的數(shù)據(jù)進(jìn)行演示SD_scRNA <- subset(adj_scRNA, orig.ident=='SD_scRNA')mean_exp=calculate_avg_exp(myseurat = SD_scRNA, #需要分析的單細(xì)胞seurat obj,單細(xì)胞obj是normalization 的                           myident = 'celltype',#celltype分組                           n_bootstrap=3, #抽樣次數(shù)                           seed=1)#隨機(jī)數(shù)
#計(jì)算代謝反應(yīng)分?jǐn)?shù)scores<-calculate_reaction_score(data=mean_exp)#計(jì)算這個(gè)樣本中每種celltype占比,每種celltype的數(shù)量除以總的細(xì)胞數(shù)#需要注意,這里celltype fraction順序要與score里面celltype的順序一致fr = round(table(SD_scRNA$celltype)/nrow(SD_scRNA@meta.data),2)fr = as.vector(fr)
#計(jì)算代謝通量flux=compute_sc_flux(num_cell = 10, #celltype數(shù)量,比如這里我的數(shù)據(jù)中有10種celltype fraction = fr, #celltype比例,和必須是1 fluxscore=scores,                     medium = human_blood)#
結(jié)果可視化:
#代謝model,可以查看代謝反應(yīng)ID,代謝公式,代謝通路!data("human_gem")human_gem <- human_gem
#選擇感興趣的代謝反應(yīng),提取數(shù)據(jù)進(jìn)行可視化#比如這里看glucose的代謝反應(yīng),我們可以通過nutrient_lookup_files文件查找glucose對應(yīng)的IDdata("nutrient_lookup_files")glucose_ID <- nutrient_lookup_files$EQUATION[grepl("glucose", nutrient_lookup_files$EQUATION)]select_ID <- subset(nutrient_lookup_files, nutrient_lookup_files$EQUATION %in% glucose_ID)#這樣我們就可以得知glucose IDglucose<-data.frame(glucose=flux[grep("HMR_9034",rownames(flux)),])
#if needed we can apply cubic root normalization to normalize the scorescbrt <- function(x) { sign(x) * abs(x)^(1/3)}
glucose=cbrt(glucose)
#ggplot做一個(gè)箱線圖展示library(ggplot2)glucose$celltype=rownames(glucose)long_glucose=reshape2::melt(glucose,id.vars='celltype')ggplot(long_glucose,aes(y=-value,x=celltype))+ geom_boxplot()+ ggtitle("Glucose uptake level for different cell types")+ xlab("")+ylab("Glucose uptake scores")+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

熱圖展示通路平均活性。這里我是將所有的,每個(gè)celltype代謝反應(yīng)抽樣計(jì)算的flux平均,然后對每條通路計(jì)算了平均,思路應(yīng)該沒有問題:
flux1 <- rowMeans(flux) %>% as.data.frame()colnames(flux1) <- "flux"
celltype <- c("Endo","Fib","Musc","Ker","APCs","Other","Tcell","Mast","LY","Mela")#順序和mean-exp順序一樣celltype <- paste0(celltype," ")flux_celltype <- paste("celltype", seq(length(celltype)),"")for(i in 1:length(celltype)){
rownames(flux1) <- gsub(flux_celltype[i], celltype[i], rownames(flux1))
}
flux1$celltype <- sub(" .*$", "", rownames(flux1))flux1 <- flux1[!grepl("external_medium", flux1$celltype), ]flux1$pathway <- rep(human_gem$SUBSYSTEM, length(celltype))
library(tidyr)library(dplyr)library(pheatmap)
df_summary <- flux1 %>% group_by(celltype, pathway) %>% summarize(mean_value = mean(abs(flux)))
df_summary_w <- df_summary %>% pivot_wider(names_from = pathway, values_from = mean_value) %>% as.data.frame()

rownames(df_summary_w) <- df_summary_w[,1]df_summary_w <- df_summary_w[,-1]

#heatmap mapal <- colorRampPalette(RColorBrewer::brewer.pal(11,"RdBu"))(256)pheatmap::pheatmap(t(df_summary_w),cluster_cols = F,color = rev(mapal),scale = "row")



如果你有多個(gè)樣本,或者patients,可以循環(huán)分析:
#load your seurat object,多樣本數(shù)據(jù)循環(huán)分析# obj.list <- SplitObject(seurat, split.by = "orig.ident")# for (i in c(1:length(obj.list))){#   sc<-obj.list[[i]]#   mean_exp=calculate_avg_exp(myseurat = sc,myident = 'celltype',n_bootstrap=50,seed=1)#   scores<-calculate_reaction_score(data=mean_exp)#   fr =  round(table(sc$celltype)/nrow(sc@meta.data),2)#   fr = as.vector(fr)#   flux=compute_sc_flux(num_cell = length(unique(sc$celltype)),#                        fraction = fr,#                        fluxscore=scores,medium = human_blood)#   saveRDS(flux,paste0(unique(sc$orig.ident),"_flux",".rds"))# }
上面的這種情況可能適用于看微環(huán)境中每種celltype的代謝,或者可以說做細(xì)胞亞群的時(shí)候看看關(guān)注celltype的代謝差異。那么很多時(shí)候,我們還有這樣的想法,那就是比較兩組之間同一個(gè)celltype的代謝差異。我們可以選擇自己感興趣的celltype,將其當(dāng)作一個(gè)新的celltype/sample進(jìn)行分析,步驟和上面是一樣的。bulk分析和scRNA一樣,只不過不需要計(jì)算calculate_avg_exp。對于結(jié)果文件的解讀,建議仔細(xì)閱讀官網(wǎng)教程!

覺得我們分享有些用的,點(diǎn)個(gè)贊再走唄!

關(guān)注我們獲取精彩內(nèi)容:

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章