通過整理TCGA數(shù)據(jù)箱舞,探索某癌癥的癌組織和正常組織的差異基因。

實驗設計

實驗目的決定試驗方法和途徑拳亿。
試驗目的 :獲取三陰性乳腺癌的正常組織和癌癥組織的基因表達差異情況晴股,比較三陰性乳腺癌中的基因表達變化情況。
試驗設計 :通過TCGA獲取乳腺癌的RNA-seq表達數(shù)據(jù)肺魁,篩選出三陰性乳腺癌的樣本电湘,通過比較癌癥和正常組織的表達差異。

TCGA數(shù)據(jù)庫簡介

一句話介紹:TCGA數(shù)據(jù)庫是一個由國家癌癥研究所(National Cancer Institute)和美國人類基因組研究所(National Human Genome Research Institute)共同監(jiān)督的一個項目。使用對患者樣本的高通量基因組測序和分析技術來試圖提供括基因表達譜寂呛,拷貝數(shù)變異分析怎诫,SNP基因分型,全基因組DNA甲基化分析贷痪,微RNA分析等信息幻妓。收錄了33種癌癥基因組測序數(shù)據(jù)。TCGA數(shù)據(jù)處理和整理比Oncoman和GEO困難一些劫拢。但是針對腫瘤和癌癥所能提供的信息是很完善和可靠的肉津。
TCGA和GEO存在的區(qū)別是,GEO存在各種研究領域和研究方向的NGC數(shù)據(jù)和分析舱沧。TCGA是專門針對腫瘤和癌癥設立的妹沙。TCGA優(yōu)勢是豐富且規(guī)范的臨床數(shù)據(jù),以及針對每種癌型的大樣本量熟吏。

TCGA數(shù)據(jù)的獲取

背景介紹:
三陰性乳腺癌是指癌組織免疫組織化學檢查結(jié)果為雌激素受體(ER)初烘、孕激素受體(PR)和原癌基因Her-2均為陰性的乳腺癌。這類乳腺癌占所有乳腺癌病理類型的10.0%~20.8%分俯,具有特殊的生物學行為和臨床病理特征肾筐,預后較其他類型差。--from:百度百科:三陰性乳腺癌

實驗設計:
三陰性乳腺癌的篩選標準是根據(jù)pheotype來確定的缸剪,表達量是通過RNAseq結(jié)果確定的吗铐,正常組織和癌癥組織是通過病例號確定的。

  1. TCGA項目的數(shù)據(jù)可以通過Genomic Data Commons Data Portal獲取杏节,即通過GDC來訪問唬渗,訪問地址:https://portal.gdc.cancer.gov/
  2. TCGA數(shù)據(jù)庫公開免費奋渔,所以有許多針對TCGA數(shù)據(jù)進行整合的網(wǎng)站镊逝。還可以通過UCSC Xena進行下載:https://xena.ucsc.edu/public。試驗數(shù)據(jù)的選擇和目的息息相關嫉鲸,試驗設計:
    GDC

    點擊BRCA(乳腺癌)進入數(shù)據(jù)選擇界面撑蒜。
  3. 選擇gene expression RNAseq>HTSeq - Counts。注意不要用RPKM等經(jīng)過了normlization的表達矩陣來分析玄渗。要使用Counts來進行差異分析座菠,因為在差異分析時候會自動進行標準化。如果數(shù)據(jù)經(jīng)過處理例如log2+1藤树,則可以下載后逆運算轉(zhuǎn)變回來浴滴。
  4. 選擇phenotype>Phenotype這里面有病人的病例信息等,可以通過統(tǒng)計篩選出三陰性乳腺癌的患者岁钓。
    BRCA
  5. 點擊連接進去會看到詳細的信息如下載地址升略、樣品數(shù)微王、數(shù)據(jù)處理方法等。


    RNAseq界面詳細信息

數(shù)據(jù)預處理

實驗設計:篩選出三陰性乳腺癌的患者ID品嚣,再篩選出同時有癌癥組織樣本和癌旁組織樣本骂远,計算初始Count值。

三陰性乳腺癌患者(TNBC)篩選

實驗設計:在R語言中處理數(shù)據(jù)腰根,選擇breast_carcinoma_estrogen_receptor_status(ER)激才、PR、HER2受體一欄全為隱形(Negative)的患者额嘿。
原始的phenotype文件如下圖瘸恼,信息量巨大

phenotype文件

R語言實現(xiàn)

讀取文件

phenotype_file <- read.table("TCGA-BRCA.GDC_phenotype.tsv",header = T, sep = '\t', quote = "")
phenotype_colnames <- as.data.frame(colnames(phenotype_file))
#讀取文件并去讀列名(penotype的類型)
table(phenotype_file$breast_carcinoma_estrogen_receptor_status)
#查看雌激素受體(ER)的表達狀態(tài)。
table(phenotype_file$breast_carcinoma_progesterone_receptor_status)
#查看孕激素受體(PR)狀態(tài)
table(phenotype_file$lab_proc_her2_neu_immunohistochemistry_receptor_status)
#查看原癌基因Her-2狀態(tài)
talbe

列出三項指標的列表册养,方便篩選

實驗設計:查找三項指標的列并列出

colnames_num <- grep("receptor_status",colnames(phenotype_file))
#在phenotype_file列中檢索“receptor_status”,grep返回值是列名的列表中包含有“receptor_status”的列序號东帅,因為三陰性乳腺癌的三項指標在這里都有phenotype_file字段

#>colnames_num
#[1] 20 25 67 77 87 93
phenotype_colnames <- colnames(phenotype_file)[colname_num]
#利用匹配的返回值取列名到phenotype_colnames中,phenotype_colnames中存儲的是含有“receptor_status”字段的列名
eph <- phenotype_file[,colnames_num[1:3]]
#把三項指標篩選出來,建立一個新的表格球拦。方便篩選全陰的行(ID號)
eph查看

函數(shù)學習:

?apply
# b為:
# first second
# one       1      4
# two       2      5
# three     3      6
# apply(b,1,sum)
# 上面的指令代表對矩陣b進行行計算靠闭,分別對每一行進行求和。函數(shù)涉及了三個參數(shù):
# 第一個參數(shù)是指要參與計算的矩陣坎炼;
# 第二個參數(shù)是指按行計算還是按列計算愧膀,1——表示按行計算,2——按列計算谣光;
# 第三個參數(shù)是指具體的運算參數(shù)檩淋。
# 上述指令的返回結(jié)果為:
# one   two three 
# 5     7     9 

TNBC的篩選

實驗設計:查找指標的狀態(tài)并統(tǒng)計;列出三陰性并篩選出來這些數(shù)據(jù)

tnbc_rownum <- apply(eph,1,function(x)sum(x=="Negative"))
#eph:記錄三項指標類型的矩陣
#將eph按照列執(zhí)行sum(x=="Negative"):統(tǒng)計各行中萄金,eph列中有Negative的數(shù)量
#通過查看陰性的數(shù)量祝沸,函數(shù)返回結(jié)果是一個數(shù)字向量敛苇。內(nèi)容是0或1、2盖灸、3跛蛋。注意數(shù)字的排列順序是對應病人ID的行展懈。
tnbc_rownum
tnbc_sample <- phenotype_file[tnbc_rownum == 3, 1]
#通過讓 tnbc_rownum==3 判別橄浓,如果成立吠谢,會返回一個logical向量,logical向量是可以直接被矩陣引用的的圆,只會讀取TURE的行或著列
#統(tǒng)計每一行中數(shù)值是3的(即全為“Negative”)并取第一列即病人ID
#tnbc_sample:存儲著三陰性乳腺癌的
tnbc_sample
save(tnbc_sample,file = 'tnbc_sample.Rdata')
#保存Rdata
陰性指標統(tǒng)計

基因表達矩陣的構(gòu)建

基因表達矩陣的讀取和讀取后格式修改

實驗設計:轉(zhuǎn)換data.frame 鼓拧;行名修改半火;Count值還原

library(data.table)
#?data.table
#R中的data.table包提供了一個data.frame的高級版本越妈,讓你的程序做數(shù)據(jù)整型的運算速度大大的增加。
a <- fread("TCGA-BRCA.htseq_counts.tsv.gz",sep = '\t',header = T)
#讀取表達矩陣文件
a <- as.data.frame(a)
#轉(zhuǎn)換為數(shù)據(jù)框钮糖,讀取后梅掠,轉(zhuǎn)換前的a的類型是"data.table" "data.frame"
a[1:4,1:4]
rownames(a) <- a[,1]
a <- a[,-1]
#去除第一列酌住,行名修改。
genes <- row.names(a)
genes[1:10]
##接下來還原counts數(shù)阎抒,網(wǎng)站使用了log2(count+1)進行counts數(shù)轉(zhuǎn)換酪我,接下來進行還原
a <- a^2-1
#a存儲的全是數(shù)值型向量,可以直接通過數(shù)學處理進行全表修改且叁。
RNAseq結(jié)果的讀取與處理

對表達矩陣進行篩選構(gòu)建

實驗設計:列出TNBC的ID(前半部分)都哭,所有病人ID,有雙樣品類型的seq的病人ID逞带,取TNBC的ID和雙樣品類型的seq病人ID交集作為目的病人ID欺矫。最后用 all_p %in% need_p 構(gòu)建logical向量,被原始表達矩陣引用展氓,構(gòu)建符合目的要求的表達矩陣

##接下來是取樣本穆趴,需要取118個三陰性乳腺癌的樣本,并且是成對的樣本遇汞,即既有癌組織又有癌旁組織未妹。
tnbc_p <- substring(tnbc_sample,1,12)
#取tnbc的每個元素的第一個到第12個字符 
#tnbc是TNBC患者的ID前部分
all_p <- substring(colnames(a),1,12)
head(all_p)
#取表達矩陣的病理號前12位
table(all_p)
#這里如果病人號前12位相同,說明是即既有癌組織又有癌旁組織空入。
table(all_p) == 2
paired_p <- names(table(all_p)[table(all_p) == 2])
#去除所有有兩個組織類型的病人ID前部分賦值給paired_id
need_p <- intersect(tnbc_p,paired_p)
#need_p是118個是成對的樣本络它。即既有癌組織又有癌旁組織

exprSet <- a[,all_p %in% need_p]
#構(gòu)建表達矩陣:三陰性乳腺癌的樣本,并且是成對的樣本歪赢,即既有癌組織又有癌旁組織
#這里通過 all_p %in% need_p 處理返回一個 logical向量酪耕,logical和第一個數(shù)據(jù)元素all_p一一對應,元素個數(shù)和順序和all_P相同轨淌。向量可以在在data.frame中引用迂烁,只會讀取 TRUE
目的表達矩陣

對構(gòu)建的表達矩陣進行數(shù)據(jù)篩選

實驗設計:利用apply函數(shù)統(tǒng)計條件符合情況,然后保存為logical向量递鹉,然后利用logical的被引用來篩選

table(apply(exprSet, 1, function(x){sum(x==0)<10}))
tmp <- apply(exprSet, 1, function(x){sum(x==0)<10})
#對exprSet進行按行執(zhí)行函數(shù)function:
#如果表達矩陣是0則取1盟步,在18個樣本中,如果這個基因的表達矩陣超過10個樣本都是空值躏结,則舍棄這個基因
#tmp是一個logical向量
exprSet <- exprSet[tmp,]
save(exprSet,file = 'tnbc_paired_exprSet.Rdata')
#保存三陰性乳腺癌的雙樣本表達矩陣

癌癥組織和正常組織的區(qū)分和標記

實驗設計:利用substr()函數(shù)截取患者ID的有效信息位置却盘,用ifelse()函數(shù)進行判斷,并用factor()函數(shù)生成因子型變量媳拴。最后賦值得到患者的樣品類型

Tips:TCGA可以根據(jù)第14和第15位判斷是癌組織還是癌旁組織黄橘。01表示癌癥組織,11表示正常組織

#TCGA可以根據(jù)第14和第15位判斷是癌組織還是癌旁組織屈溉。01表示癌癥組織塞关,11表示正常組織
colnames(exprSet)
#提取列名
substr(colnames(exprSet),14,15)
#提取列名字符串的第14和15位置字符
as.numeric(substr(colnames(exprSet),14,15))
#現(xiàn)在提取的字符變成數(shù)字 '11'和 11不等同
ifelse(as.numeric(substr(colnames(exprSet),14,15)) < 10,'tumor','normal')
#判斷第14和15號位的數(shù)值<10 即等于01時候,返回tumor 否則返回normal
factor(ifelse(as.numeric(substr(colnames(exprSet),14,15)) < 10,'tumor','normal'))
#question 把它變成因子型子巾,因子型是有順序的帆赢。這里需要變換成因子型
group_list=factor(ifelse(as.numeric(substr(colnames(exprSet),14,15)) < 10,'tumor','normal'))
#group_list記錄了表達矩陣中患者ID的對應的組織類型小压,和表達矩陣的順序一樣。
table(group_list)

表達矩陣的篩選(應該在上一步一起進行)

實驗設計:修正小于0的(因為變換過程中可能會產(chǎn)生-1椰于,會影響實驗)怠益,檢查并去除na值。

exprSet <- ceiling(exprSet)
#?ceiling()取整瘾婿,不小于變量本身
#round()以四舍五入形式保存指定小數(shù)位數(shù)
#floor()不大于變量本身最大整數(shù)
#table(is.na(exprSet))
#pmax(),使得矩陣最小值是0蜻牢?
save <- exprSet
exprSet[exprSet<0] <- 0
table(exprSet<0)
table(is.na(exprSet))
group_list和colData

患者的癌癥組織和正常組織的基因差異表達分析

library(DESeq2)
#構(gòu)建一個病例號和腫瘤分類的對應關系
colData <- data.frame(row.names = colnames(exprSet),group_list= group_list)
#colData:是患者ID號和組織類型的對應關系

#構(gòu)建DESeq()函數(shù)要求的表達式
dds <- DESeqDataSetFromMatrix(countData = exprSet,colData = colData,design = ~ group_list)
#countData = exprSet,指出DESeq的表達矩陣
#colData = colData,知名每個表達矩陣的分類,比如實驗組&對照組偏陪,正常組織&癌癥組織
#question
#design= ~group_list孩饼,因子型,指出不同組的區(qū)別竹挡,是有順序的镀娶。
dds <- DESeqDataSetFromMatrix(countData = exprSet,
                              colData = colData,
                              design = ~group_list)
dds <- DESeq(dds)
#進行差異基因分析
resultsNames(dds)
res <-  results(dds, contrast=c("group_list","tumor","normal"))
#用group_list來做引導文件,用tumor來比較normal組織

resOrdered <- res[order(res$padj),]
#把res差異分析文件通過padj來排序
head(resOrdered)
resOrdered=as.data.frame(resOrdered)
#把resOrdered變成數(shù)據(jù)框揪罕,
write.table(resOrdered, file="single cell DGE order.xls", sep="\t",quote=F)
#寫出差異基因文件
DEG文件

基因的注釋

正在努力更新...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梯码,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子好啰,更是在濱河造成了極大的恐慌轩娶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件框往,死亡現(xiàn)場離奇詭異鳄抒,居然都是意外死亡,警方通過查閱死者的電腦和手機椰弊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門许溅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人秉版,你說我怎么就攤上這事贤重。” “怎么了清焕?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵并蝗,是天一觀的道長。 經(jīng)常有香客問我秸妥,道長滚停,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任粥惧,我火速辦了婚禮键畴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘影晓。我一直安慰自己镰吵,他們只是感情好檩禾,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布挂签。 她就那樣靜靜地躺著疤祭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饵婆。 梳的紋絲不亂的頭發(fā)上勺馆,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音侨核,去河邊找鬼草穆。 笑死,一個胖子當著我的面吹牛搓译,可吹牛的內(nèi)容都是我干的悲柱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼些己,長吁一口氣:“原來是場噩夢啊……” “哼豌鸡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起段标,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤涯冠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后逼庞,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛇更,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年赛糟,在試婚紗的時候發(fā)現(xiàn)自己被綠了派任。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡璧南,死狀恐怖吨瞎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情穆咐,我是刑警寧澤颤诀,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站对湃,受9級特大地震影響崖叫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拍柒,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一心傀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拆讯,春花似錦脂男、人聲如沸养叛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弃甥。三九已至,卻和暖如春汁讼,著一層夾襖步出監(jiān)牢的瞬間淆攻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工嘿架, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓶珊,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓耸彪,卻偏偏與公主長得像伞芹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝉娜,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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