2022.3.20 初版
2022.3.28 加入代碼
2022.11.30 免費給大家使用
眾所周知,差異基因的分析方法有很多種:①普通的差異基因計算方法(limma、edgeR、DESeq2等R包)(缺點:針對不同數(shù)據(jù)集和不同樣本來說,批次效應(yīng)較大,有時候做出來的預(yù)測模型不能用于其他的數(shù)據(jù),魯棒性較低),②Robust rank aggregation(RRA)排秩法,通過對幾個數(shù)據(jù)集差異基因進(jìn)行排序,篩選出普遍適用的差異基因(優(yōu)點:能高效去除批次效應(yīng),魯棒性較高,結(jié)果、模型等普遍適用于其他的數(shù)據(jù)集;缺點:同時分析多個數(shù)據(jù)集,單個數(shù)據(jù)集無法使用)(這個方法網(wǎng)上很多教程也有,只是不是很詳細(xì),你們可以去讀讀然后思考思考,我看情況今后也會講講)③基于基因秩序表達(dá)秩序關(guān)系識別穩(wěn)定逆轉(zhuǎn)基因?qū)Γň褪墙酉聛砦乙v的這個)(優(yōu)缺點待會你們就知道啦)
誤入BioInfor的大黃鴨 --一個喜歡把教程寫著寫著寫成科普的本科臨床醫(yī)學(xué)生
穩(wěn)定逆轉(zhuǎn)基因?qū)Γ╮elative expression orderings,REOs),即一種基因的秩序存在的模式,假設(shè)基因i(Gi)和基因j(Gj),若在95%(或90%[a])的正常樣本中Gi>Gj(或Gi<Gj),我們稱之為穩(wěn)定基因?qū)Α6?5%(或90%)腫瘤樣本中情況相反,則我們定義為穩(wěn)定逆轉(zhuǎn)基因?qū)Γ≧EOs),穩(wěn)定逆轉(zhuǎn)基因?qū)χ苯佑谩笆恰被颉胺瘛眮矶x是否具有差異,故該方法計算結(jié)果無差異倍數(shù),但是對每個樣本進(jìn)行了量化,按照每個樣本的情況來定義的,不像普通差異分析方法是按照平均表達(dá)量來計算,因此批次效應(yīng)會低很多。因此此差異分析方法僅適用于各模型的構(gòu)建及特征基因的篩選。
[a]其實這個數(shù)是自己隨便主觀定義的數(shù),只要篩選出的穩(wěn)定逆轉(zhuǎn)基因?qū)Φ淖詈蟮哪P徒Y(jié)果夠好就行了,80%也可以,我推薦使用90%或95%,因為畢竟有參考文獻(xiàn)支持,審稿人問你這個數(shù)怎么來的,你也可以有底氣的回答。
例:
| ID | 樣本A_con | 樣本B_con | 樣本C_con | 樣本D_con | 樣本E_con | 樣本F_treat | 樣本G_treat | 樣本H_treat | 樣本I_treat | 樣本J_treat |
|---|---|---|---|---|---|---|---|---|---|---|
| Gene A | 0.85 | 0.82 | 0.73 | 0.89 | 0.83 | 0.24 | 0.28 | 0.46 | 0.25 | 0.33 |
| Gene B | 0.47 | 0.53 | 0.26 | 0.37 | 0.43 | 0.67 | 0.73 | 0.83 | 0.66 | 0.76 |
若Gene A>Gene B,我們用1表示,反之用0表示,則:
| ID | 樣本A_con | 樣本B_con | 樣本C_con | 樣本D_con | 樣本E_con | 樣本F_treat | 樣本G_treat | 樣本H_treat | 樣本I_treat | 樣本J_treat |
|---|---|---|---|---|---|---|---|---|---|---|
| Gene A / Gene B | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
在95%(或90%)的樣本中,正常組Gene A都大于Gene B,腫瘤組Gene A都小于Gene B,因此我們把Gene A / Gene B定義為穩(wěn)定逆轉(zhuǎn)基因?qū)Α?/p>
應(yīng)用:
穩(wěn)定逆轉(zhuǎn)基因?qū)Φ膽?yīng)用主要在于特征基因的篩選,如輸入最小冗余最大關(guān)聯(lián)算法(mRMR)、隨機森林算法(RF)、LASSO、支持向量機(SVM)等,還有人工神經(jīng)網(wǎng)絡(luò)模型的構(gòu)建。可作為分類器的特征篩選使用,對亞型分型、個性化治療、早期診斷等提供幫助。
我之前寫的這個R包已經(jīng)更新到了2.0版本,我已上傳到Github上,為了感謝各位粉絲的關(guān)注,我把包和代碼公開了,放到了Github上,方便大家使用。https://github.com/MYNong123/StabRvsPair/
實例代碼如下
Normal = read.table("Normal.txt",header=T,sep="\t",check.names=F,row.names=1) #讀取Normal矩陣
Tumor = read.table("Tumor.txt",header=T,sep="\t",check.names=F,row.names=1) #讀取Tumor矩陣
#加載包
library(StabRvsPair)
library(stringr)
PairTime=testRunTime(Normal,Tumor,0.9,0.1) #測試電腦運行速度
GetPair=FindStabRvsPair(Normal,Tumor,0.9,0.1) #獲取穩(wěn)定逆轉(zhuǎn)基因?qū)?
GenePair=CalStabRvsPair(GetPair,Normal,Tumor) #獲取穩(wěn)定逆轉(zhuǎn)基因?qū)仃?
大家可以使用代碼進(jìn)行安裝:
install.packages("devtools")
devtools::install_github("MYNong123/StabRvsPair")
安裝完就可以用啦!多核運算僅限于Linux服務(wù)器,這個代碼需要計算很久。
參考文獻(xiàn):
[1]張子梅. 利用機器學(xué)習(xí)方法識別肝癌早期診斷標(biāo)志[D].電子科技大學(xué),2021.DOI:10.27005/d.cnki.gdzku.2021.002251.
由于StabRvsPair包是我辛辛苦苦自己寫的,來之不易,想用的朋友在微公號發(fā)送“基因?qū)Α薄?/del>
不收費了,直接免費提供給大家!!
本教程就先講到這啦,后續(xù)隨后更新,歡迎大家關(guān)注支持~大家關(guān)注一下我:誤入BioInfor的大黃鴨