R語言分析6:TIDE評分

TIDE(http://tide.dfci.harvard.edu/代表腫瘤免疫功能障礙和排斥伴挚,用于評估免疫療法在不同風(fēng)險(xiǎn)組中的潛在臨床療效,反映腫瘤免疫逃避的潛在能力瑟匆,較高的TIDE評分與較差的ICI療效相關(guān)革半。

1. 表達(dá)矩陣預(yù)處理

# TCGA-STADfpkm表達(dá)矩陣
STAD_Expr[1:4, 1:4]
#           TCGA-BR-A4J4-01A-12R-A251-31 TCGA-BR-A4IZ-01A-32R-A251-31 TCGA-RD-A7C1-01A-11R-A32D-31 TCGA-BR-6852-01A-11R-1884-13
# 5_8S_rRNA                       0.0866                       0.4991                       1.0460                       0.1388
# 5S_rRNA                         0.0000                       0.2676                       2.6896                       0.3327
# 7SK                             0.3533                       0.2546                       1.2531                       0.2813
# A1BG                            0.0197                       0.0358                       0.1067                       0.1153

# 臨床信息医增,含風(fēng)險(xiǎn)評分
clin_info[1:4, 1:5]
#   riskscore          entity_submitter_id status time riskgroup
# 1 0.5443136 TCGA-BR-A4J4-01A-12R-A251-31      0   16 Low
# 2 1.9722861 TCGA-BR-A4IZ-01A-32R-A251-31      1  273 High
# 3 1.1310911 TCGA-RD-A7C1-01A-11R-A32D-31      1  507 High
# 4 0.7301153 TCGA-BR-6852-01A-11R-1884-13      0 1367 Low

dt <- as.data.frame(t(STAD_Expr))  
identical(rownames(dt), clin_info$entity_submitter_id) # 保險(xiǎn)檢查一下行名是否一致  
# [1] TRUE

dt$score <- clin_info$riskscore # 在表達(dá)矩陣中新增風(fēng)險(xiǎn)評分列
dt$riskgroup <- clin_info$riskgroup # 在表達(dá)矩陣中新增風(fēng)險(xiǎn)分組列

df <- dt[order(dt$score, decreasing = F),] # 按風(fēng)險(xiǎn)評分把矩陣升序排列  

df$id <- c(1:length(df$score)) # 新增id列  
df$id2 <- paste(df$riskgroup, df$id, sep = '_') # 將風(fēng)險(xiǎn)分組和id串聯(lián)  
rownames(df) <- df$id2 # 修改為行名  

df <- df[,1:59427] # 去掉新增列谆构,僅保留表達(dá)矩陣  
df <- t(df) # 轉(zhuǎn)置  

# 將矩陣重新轉(zhuǎn)換為數(shù)值型:  
df2 <- apply(df, 2, as.numeric)  
row.names(df2) <- row.names(df)  
df2[1:6,1:6]
#            Low_1  Low_2  Low_3  Low_4  Low_5  Low_6
# 5_8S_rRNA 0.0000 0.2109 0.2046 0.6394 0.2617 0.0000
# 5S_rRNA   0.3354 0.7560 0.5184 0.4585 0.7506 0.2370
# 7SK       0.0720 0.1613 0.2518 0.1967 0.3115 0.2108
# A1BG      0.0222 0.0681 0.0272 0.0486 0.0298 0.0188
# A1BG-AS1  0.1054 0.0238 0.0323 0.0000 0.0668 0.0186
# A1CF      0.0426 0.0083 3.9530 0.1316 3.8196 0.0262

# 計(jì)算方法: 表達(dá)量減去每個(gè)基因所在樣本的均值(即按行計(jì)算均值虾攻,再用每個(gè)表達(dá)量-均值)
Expr <- t(apply(df2, 1, function(x){x-(mean(x))})) # 均值標(biāo)準(zhǔn)化  
Expr[1:6,1:6]
#                 Low_1       Low_2        Low_3        Low_4       Low_5       Low_6
# 5_8S_rRNA -0.92326170 -0.71236170 -0.718661702 -0.283861702 -0.66156170 -0.92326170
# 5S_rRNA   -0.17608644  0.24451356  0.006913564 -0.052986436  0.23911356 -0.27448644
# 7SK       -0.11633750 -0.02703750  0.063462500  0.008362500  0.12316250  0.02246250
# A1BG      -0.02267952  0.02322048 -0.017679521  0.003720479 -0.01507952 -0.02607952
# A1BG-AS1  -0.04596277 -0.12756277 -0.119062766 -0.151362766 -0.08456277 -0.13276277
# A1CF      -1.62320053 -1.65750053  2.287199468 -1.534200532  2.15379947 -1.63960053

write.table(Expr, file = 'TIDE.txt', sep = "\t", quote = F, row.names = T) # 矩陣保存到本地

2. TIDE評分計(jì)算

  1. 進(jìn)入官網(wǎng)(http://tide.dfci.harvard.edu/login/
  2. 在菜單欄第一個(gè)‘Response Prediction'選項(xiàng)頁面下拉铡买,上傳整理好的制表符分隔文本格式的表達(dá)矩陣(首行Tab一下,保持列名對齊)台谢,'Cancer type'選擇Other寻狂,'Previous immunotherapy'保持默認(rèn)No,然后點(diǎn)擊 'Predict response' 即可靜待結(jié)果
  3. 分析完成后朋沮,會(huì)直接跳轉(zhuǎn)到預(yù)測結(jié)果報(bào)告頁蛇券,下拉導(dǎo)出csv文件即可
TIDE-1

3. 結(jié)果可視化

# 讀入結(jié)果表:  
result <- read.csv('TIDE_result.csv')  
colnames(result)

# 根據(jù)行名新增分組列:  
result$Risk <- ifelse(  
  str_sub(result$Patient, 1, 1) == 'L', 'Low_Risk', 'High_Risk'  
)  
# 轉(zhuǎn)換為因子,調(diào)整順序:  
result$Risk <- factor(result$Risk, levels = c('Low_Risk','High_Risk'))  

# 小提琴圖展示結(jié)果:  
# 1.TIDE小提琴圖:  
my_comparisons <- list( c("Low_Risk", "High_Risk")) # 添加比較分組  
p1 <- ggviolin(result, x = 'Risk', y = 'TIDE', fill = 'Risk',  
               palette = c("#2E9FDF", "#E7B800"),  
               add = 'boxplot', add.params = list(fill = "white")) +  
  stat_compare_means(comparisons = my_comparisons, label = "p.signif", bracket.size=0.5, tip.length = 0.02, method = 't.test')  
p1  

# 2.Dysfunction小提琴圖:
# dysfunction score的計(jì)算原理:免疫失調(diào)作用的基因擁有更高的權(quán)重樊拓,再乘以表達(dá)量  
p2 <- ggviolin(result, x = 'Risk', y = 'Dysfunction', fill = 'Risk',  
               palette = c("#2E9FDF", "#E7B800"),  
               add = 'boxplot', add.params = list(fill = "white")) +  
  stat_compare_means(comparisons = my_comparisons, label = "p.signif", bracket.size=0.5, tip.length = 0.02, method = 't.test')  
p2

# Exclusion小提琴圖:  
# exclusion score是由免疫排斥的基因擁有更高的權(quán)重纠亚,再乘以表達(dá)量得到
p3 <- ggviolin(result, x = 'Risk', y = 'Exclusion', fill = 'Risk',  
               palette = c("#2E9FDF", "#E7B800"),  
               add = 'boxplot', add.params = list(fill = "white")) +  
  stat_compare_means(comparisons = my_comparisons, label = "p.signif", bracket.size=0.5, tip.length = 0.02, method = 't.test')  
p3

# MSI小提琴圖:  
colnames(result)[6]  
colnames(result)[6] <- c('MSI') # 簡化一下列名  
p4 <- ggviolin(result, x = 'Risk', y = 'MSI', fill = 'Risk',  
               palette = c("#2E9FDF", "#E7B800"),  
               add = 'boxplot', add.params = list(fill = "white")) +  
  stat_compare_means(comparisons = my_comparisons, label = "p.signif", bracket.size=0.5, tip.length = 0.02, method = 't.test')  
p4

p <- p1 + p2 + p3 + p4  
p
TIDE-2

★ 高風(fēng)險(xiǎn)組的TIDE評分、Exclusion評分和Dysfunction評分顯著升高筋夏,MSI評分較低蒂胞,說明高風(fēng)險(xiǎn)組患者的免疫逃逸潛力增大,免疫檢查點(diǎn)抑制治療(ICI)療效可能較差

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末条篷,一起剝皮案震驚了整個(gè)濱河市骗随,隨后出現(xiàn)的幾起案子蛤织,更是在濱河造成了極大的恐慌,老刑警劉巖鸿染,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件指蚜,死亡現(xiàn)場離奇詭異,居然都是意外死亡涨椒,警方通過查閱死者的電腦和手機(jī)兵罢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門懦尝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來但汞,“玉大人疆瑰,你說我怎么就攤上這事《谌龋” “怎么了猎提?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赢乓。 經(jīng)常有香客問我忧侧,道長,這世上最難降的妖魔是什么牌芋? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任蚓炬,我火速辦了婚禮,結(jié)果婚禮上躺屁,老公的妹妹穿的比我還像新娘肯夏。我一直安慰自己,他們只是感情好犀暑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布驯击。 她就那樣靜靜地躺著,像睡著了一般耐亏。 火紅的嫁衣襯著肌膚如雪徊都。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天广辰,我揣著相機(jī)與錄音暇矫,去河邊找鬼。 笑死择吊,一個(gè)胖子當(dāng)著我的面吹牛李根,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播几睛,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼房轿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起囱持,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤夯接,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后纷妆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钻蹬,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年凭需,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肝匆。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粒蜈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旗国,到底是詐尸還是另有隱情枯怖,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布能曾,位于F島的核電站度硝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏寿冕。R本人自食惡果不足惜蕊程,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驼唱。 院中可真熱鬧藻茂,春花似錦、人聲如沸玫恳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽京办。三九已至掀序,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惭婿,已是汗流浹背不恭。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留审孽,地道東北人县袱。 一個(gè)月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像佑力,于是被迫代替她去往敵國和親式散。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容