0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用TCGAbiolinks進(jìn)行數(shù)據(jù)預(yù)處理?

工程師鄧生 ? 來源:科研菌 ? 作者:科研菌 ? 2021-02-15 10:16 ? 次閱讀

引言:在前面我們了解了如何使用TCGAbiolinks檢索并獲取TCGA數(shù)據(jù)庫(kù)的公開數(shù)據(jù)。今天小編就用前面涉及到的代碼,下載今天數(shù)據(jù)準(zhǔn)備需要用到的TCGA樣本數(shù)據(jù)。

一、數(shù)據(jù)下載階段

第一步:GDCquery()篩選我們需要的數(shù)據(jù),TCGAbiolinks包下載TCGA數(shù)據(jù)進(jìn)行表達(dá)差異分析-肝癌案例

library("TCGAbiolinks")

query <- GDCquery(project = "TCGA-LIHC",

data.category = "Transcriptome Profiling",

data.type = "Gene Expression Quantification",

workflow.type = "HTSeq - Counts")

wx_article__faa72c3832418bdc2db7a7b6cc9ae113.jpg

上圖為通過TCGA GDC鏈接中根據(jù)篩選條件查看的符合要求結(jié)果。下圖為通過GDCquery()函數(shù)中傳入對(duì)應(yīng)的參數(shù)得到的結(jié)果。兩者對(duì)比,我們可以發(fā)現(xiàn),兩者是一模一樣的。說明代碼執(zhí)行正確。前面一期中,我們有詳細(xì)談及 GDCquery,可做參考。

wx_article__7c80b5b804097bfd894783a1e983f703.jpg

samplesDown <- getResults(query,cols=c("cases"))

#getResults(query, rows, cols)根據(jù)指定行名或列名從query中獲取結(jié)果,此處用來獲得樣本的barcode

# 此處共檢索出424個(gè)barcodes

getResults()中用到的參數(shù):

參數(shù)用法query

來自GDCquery的結(jié)果rows用于指定特定的行cols用于指定特定的列

# 從samplesDown中篩選出TP(實(shí)體腫瘤)樣本的barcodes

# TCGAquery_SampleTypes(barcode, typesample)

# TP代表PRIMARY SOLID TUMOR;NT-代表Solid Tissue Normal(其他組織樣本可參考學(xué)習(xí)文檔)

##此處共檢索出371個(gè)TP樣本barcodes

dataSmTP <- TCGAquery_SampleTypes(barcode = samplesDown,

typesample = "TP")

# 從samplesDown中篩選出NT(正常組織)樣本的barcode

#此處共檢索出50個(gè)NT樣本barcodes

dataSmNT <- TCGAquery_SampleTypes(barcode = samplesDown,

typesample = "NT")

TCGAquery_SampleTypes中的參數(shù)詳解:

參數(shù)用法barcodeTCGA中的barcodes列表typesample用于指定篩選哪種類型的組織樣本,如腫瘤組織“TP”,正常組織“NT”

補(bǔ)充TCGA中的組織樣本類型:

TPPRIMARY SOLID TUMORTMMetastaticTRRECURRENT SOLID TUMORTAMAdditional MetastaticTBPrimary Blood Derived Cancer-Peripheral BloodTHOCHuman Tumor Original CellsTRBMRecurrent Blood Derived Cancer-Bone MarrowTBM Primary Blood Derived Cancer-Bone MarrowTAPAdditional-New PrimaryNB Blood Derived Normal NTSolid Tissue NormalNBCBuccal Cell Normal???NEBVEBV Immortalized NormalNBMBone Marrow Normal

###設(shè)置barcodes參數(shù),篩選符合要求的371個(gè)腫瘤樣本數(shù)據(jù)和50正常組織數(shù)據(jù)

queryDown <- GDCquery(project = "TCGA-LIHC",

data.category = "Transcriptome Profiling",

data.type = "Gene Expression Quantification",

workflow.type = "HTSeq - Counts",

barcode = c(dataSmTP, dataSmNT))

#barcode參數(shù):根據(jù)傳入barcodes進(jìn)行數(shù)據(jù)過濾

wx_article__827e25135d0e88e73a564114d688f196.jpg

上圖為 queryDown<-GDCquery()的結(jié)果,僅選擇了選擇371個(gè)正常組織和50個(gè)腫瘤組織樣本。

第二步:GDCdownload()下載GDCquery()得到的結(jié)果

# 下載數(shù)據(jù),默認(rèn)存放位置為當(dāng)前工作目錄下的GDCdata文件夾中。

GDCdownload(queryDown,method = "api", directory = "GDCdata",

files.per.chunk = 10)

#method ;"API"或者"client"。"API"速度更快,但是容易下載中斷。

#directory:下載文件的保存地址。Default: GDCdata。

#files.per.chunk = NULL:使用API下載大文件的時(shí)候,可以把文件分成幾個(gè)小文件來下載,可以解決下載容易中斷的問題。

GDCdownload(query = queryDown)

wx_article__03a8ead512474e5bae0c89f371de2c10.jpg

說明:由于小編前面已經(jīng)下載過該TCGA數(shù)據(jù),所以這里顯示的是421個(gè)文件已存在。如果還沒有下載的話,可能需要根據(jù)自己的網(wǎng)速等待一些時(shí)間。

wx_article__d76ecadb5bfd957fdd5c5739f300a55d.jpg

顯示這樣的結(jié)果,就算下載成功啦!文件默認(rèn)保存在 Rstudio默認(rèn)路徑下的GDCdata中。前面就是我們利用第一期知識(shí)進(jìn)行數(shù)據(jù)下載環(huán)節(jié),權(quán)當(dāng)溫習(xí)功課吧——接下來我們就開始此期的數(shù)據(jù)處理~~

二、數(shù)據(jù)處理

第三步:GDCprepare()將前面GDCquery()的結(jié)果準(zhǔn)備成R語言可處理的SE(SummarizedExperiment)文件。

#讀取下載的數(shù)據(jù)并將其準(zhǔn)備到R對(duì)象中,在工作目錄生成(save=TRUE)LIHC_case.rda文件

# GDCprepare():Prepare GDC data,準(zhǔn)備GDC數(shù)據(jù),使其可用于R語言中進(jìn)行分析

dataPrep1 <- GDCprepare(query = queryDown, save = TRUE, save.filename =

"LIHC_case.rda")

wx_article__d8068ca9758dc1a4b4ba6d1601f08458.jpg

GDCprepare()中的參數(shù):

參數(shù)用法query來自GDCquery的結(jié)果save是否將結(jié)果保存為RData object,默認(rèn)為TRUEsave.filename文件名,如果沒有設(shè)置,系統(tǒng)將默認(rèn)設(shè)置directory文件數(shù)據(jù)的文件夾,默認(rèn)為“GDCdata”summarizedExperiment是否生成summarizedExperiment對(duì)象,默認(rèn)TRUE

第四步:TCGAanalyze_Preprocessing()對(duì)數(shù)據(jù)進(jìn)行預(yù)處理:使用spearman相關(guān)系數(shù)去除數(shù)據(jù)中的異常值

# 去除dataPrep1中的異常值,dataPrep1數(shù)據(jù)中含有腫瘤組織和正常組織的數(shù)據(jù)

# TCGAanalyze_Preprocessing(object, cor.cut = 0, filename = NULL,

width = 1000, height = 1000, datatype = names(assays(object))[1])

# 函數(shù)功能描述:Array Array Intensity correlation (AAIC) and correlation boxplot to define outlier

dataPrep2 <- TCGAanalyze_Preprocessing(object = dataPrep1,

cor.cut = 0.6,

datatype = "HTSeq - Counts")

#將預(yù)處理后的數(shù)據(jù)dataPrep2,寫入新文件“LIHC_dataPrep.csv”

write.csv(dataPrep2,file = "LIHC_dataPrep.csv",quote = FALSE)

這里將生成一個(gè)array-array intensity correlation(AAIC)相關(guān)性熱圖,如下:

wx_article__d571c7670885def7527a7dc11066ea0d.jpg

TCGAanalyze_Preprocessing()中的參數(shù):

參數(shù)用法object來自TCGAprepare的結(jié)果cor.cut設(shè)置閾值,根據(jù)樣本中各個(gè)樣本之間的spearman相關(guān)系數(shù)進(jìn)行過濾。默認(rèn)為0filename設(shè)置生成圖片文件的名稱,默認(rèn)為PreprocessingOutput.pngwidth生成圖片的寬度?? height生成圖片的高度datatype描述RangedSummarizedExperiment 數(shù)據(jù)類型的字符串

第五步:TCGAtumor_purity()篩選腫瘤純度大于60%的腫瘤barcodes

# TCGAtumor_purity(barcodes, estimate, absolute, lump, ihc, cpe),使用來自5種方法的5個(gè)估計(jì)值作為閾值對(duì)TCGA樣本進(jìn)行過濾,這5個(gè)值是estimate, absolute, lump, ihc, cpe,這里設(shè)置cpe=0.6(cpe是派生的共識(shí)度量,是將所有方法的標(biāo)準(zhǔn)含量歸一化后的均值純度水平,以使它們具有相等的均值和標(biāo)準(zhǔn)差)

#篩選腫瘤純度大于等于60%的樣本數(shù)據(jù)

purityDATA <- TCGAtumor_purity(colnames(dataPrep1), 0, 0, 0, 0, 0.6)

# filtered 為被過濾的數(shù)據(jù), pure_barcodes是我們要的腫瘤數(shù)據(jù)

Purity.LIHC<-purityDATA$pure_barcodes

normal.LIHC<-purityDATA$filtered

wx_article__152a2403ef78cc362db91ee316755f05.jpg

filtered 為被過濾的數(shù)據(jù)(為正常組織的數(shù)據(jù)barcodes), pure_barcodes是我們要的腫瘤樣本barcodes。

第六步:將腫瘤表達(dá)矩陣與正常組織表達(dá)矩陣合并,進(jìn)行基因注釋

#獲取腫瘤純度大于60%的340個(gè)腫瘤組織樣本+50個(gè)正常組織樣本,共計(jì)390個(gè)樣本

puried_data <-dataPrep2[,c(Purity.LIHC,normal.LIHC)]

第七步:進(jìn)行表達(dá)矩陣基因注釋

?;蜃⑨?,需要加載“SummarizedExperiment”包,“SummarizedExperiment container”每個(gè)由數(shù)字或其他模式的類似矩陣的對(duì)象表示。行通常表示感興趣的基因組范圍和列代表樣品。

#if (!requireNamespace("BiocManager", quietly = TRUE))

install.packages("BiocManager")

#BiocManager::install("SummarizedExperiment") #沒有的需要執(zhí)行下載代碼

library("SummarizedExperiment")

rowData(dataPrep1) #傳入數(shù)據(jù)dataPrep1必須為SummarizedExperiment對(duì)象

# DataFrame with 56512 rows and 3 columns

# ensembl_gene_id external_gene_name original_ensembl_gene_id

# <character> <character> <character>

# ENSG00000000003 ENSG00000000003 TSPAN6 ENSG00000000003.13

# ENSG00000000005 ENSG00000000005 TNMD ENSG00000000005.5

# ENSG00000000419 ENSG00000000419 DPM1 ENSG00000000419.11

# ENSG00000000457 ENSG00000000457 SCYL3 ENSG00000000457.12

#將結(jié)果寫入文件“puried.LIHC.cancer.csv”

rownames(puried_data)<-rowData(dataPrep1)$external_gene_name

write.csv(puried_data,file = "puried.LIHC.csv",quote = FALSE)

第八步:進(jìn)行表達(dá)矩陣標(biāo)準(zhǔn)化和過濾,得到用于差異分析的表達(dá)矩陣

`TCGAanalyze_Normalization()`使用EDASeq軟件包標(biāo)準(zhǔn)化mRNA轉(zhuǎn)錄本和miRNA。

#TCGAanalyze_Normalization()執(zhí)行EDASeq包中的如下功能:

1. EDASeq::newSeqExpressionSet

2. EDASeq::withinLaneNormalization

3. EDASeq::betweenLaneNormalization

4. EDASeq::counts

dataNorm <- TCGAanalyze_Normalization(tabDF = puried_data,

geneInfo = geneInfo,

method = "gcContent")

TCGAanalyze_Normalization中的參數(shù):

參數(shù)用法tabDFRNAseq表達(dá)矩陣,行代表基因,列代表樣本geneInfo關(guān)于geneLength和gcContent的20531個(gè)基因的矩陣,“geneInfoHT”和“geneInfo”可選。method選擇標(biāo)準(zhǔn)化的方法,基于’gcContent’ 或 ’geneLength’的標(biāo)準(zhǔn)化方法可選

#將標(biāo)準(zhǔn)化后的數(shù)據(jù)再過濾,去除掉表達(dá)量較低(count較低)的基因,得到最終的數(shù)據(jù)

dataFilt <- TCGAanalyze_Filtering(tabDF = dataNorm,

method = "quantile",

qnt.cut = 0.25)

str(dataFilt)

#num [1:13083, 1:340] 274 2432 60347 1012 1947 ...

#- attr(*, "dimnames")=List of 2

# ..$ : chr [1:13083] "A1BG" "A1CF" "A2M" "A4GALT" ...

# ..$ : chr [1:390] "TCGA-DD-AAD5-01A-11R-A41C-07" "TCGA-DD-A4NO-01A-11R-A28V-07" "TCGA-EP-A2KA-01A-11R-A180-07" "TCGA-DD-AACP-01A-11R-A41C-07" ...

TCGAanalyze_Filtering()中的參數(shù):

參數(shù)用法tabDF數(shù)據(jù)框或者矩陣,行代表基因,列代表來自TCGA的樣本method用于過濾較低count數(shù)的基因的方法,有’quantile’, ’varFilter’, ’filter1’, ’filter2’qnt.cut選擇均值作為過濾的閾值

最后將過濾后的數(shù)據(jù)寫入文件“TCGA_LIHC_final.csv”,就得到我們用于后續(xù)差異分析的表達(dá)文件:

write.csv(dataFilt,file = "TCGA_LIHC_final.csv",quote = FALSE)

#保留的是390個(gè)樣本(前340腫瘤,后50正常組織)

今天的數(shù)據(jù)預(yù)處理就講到這里,接下來我們將分享:數(shù)據(jù)分析(差異表達(dá)分析、富集分析和聚類分析等)。如果你喜歡的話,就加入我們一起挖數(shù)據(jù)吧~~

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6760

    瀏覽量

    88619
  • 基因
    +關(guān)注

    關(guān)注

    0

    文章

    95

    瀏覽量

    17173
  • 數(shù)據(jù)預(yù)處理

    關(guān)注

    1

    文章

    18

    瀏覽量

    2741
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    機(jī)器學(xué)習(xí)為什么需要數(shù)據(jù)預(yù)處理

    數(shù)據(jù)預(yù)處理是準(zhǔn)備原始數(shù)據(jù)并使其適合機(jī)器學(xué)習(xí)模型的過程。這是創(chuàng)建機(jī)器學(xué)習(xí)模型的第一步也是關(guān)鍵的一步。 創(chuàng)建機(jī)器學(xué)習(xí)項(xiàng)目時(shí),我們并不總是遇到干凈且格式化的數(shù)據(jù)。在對(duì)
    的頭像 發(fā)表于 08-24 09:20 ?1696次閱讀
    機(jī)器學(xué)習(xí)為什么需要<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>預(yù)處理</b>

    單片F(xiàn)PGA圖像預(yù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    一個(gè)狀態(tài)機(jī)來實(shí)現(xiàn)的。狀態(tài)機(jī)把總線順序判給數(shù)據(jù)有效的預(yù)處理單元進(jìn)行數(shù)據(jù)傳送,傳送完成后狀態(tài)機(jī)回收總線權(quán)。2.2 接口及時(shí)序  預(yù)處理主要有4個(gè)接口:(1)CCD的
    發(fā)表于 09-19 09:26

    請(qǐng)教大家一下關(guān)于數(shù)據(jù)預(yù)處理

    一般將獲得的加速度數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,常見的預(yù)處理方法有去掉趨勢(shì)相、還得將離散的數(shù)值積分獲得振幅。請(qǐng)問有做過的沒,請(qǐng)教一下。
    發(fā)表于 06-07 11:16

    HX711如何進(jìn)行數(shù)據(jù)處理

    HX711如何進(jìn)行數(shù)據(jù)處理?
    發(fā)表于 11-21 22:03

    Python數(shù)據(jù)預(yù)處理方法

    機(jī)器學(xué)習(xí)-Python實(shí)踐Day3(特征工程--數(shù)據(jù)預(yù)處理2)
    發(fā)表于 06-03 15:55

    數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理

    目錄1數(shù)據(jù)探索與數(shù)據(jù)預(yù)處理21.1 賽題回顧21.2 數(shù)據(jù)探索性分析與異常值處理21.3 相關(guān)性分析52特征工程82.1 光伏發(fā)電領(lǐng)域特征8
    發(fā)表于 07-12 08:37

    STM32 USART串口是如何進(jìn)行數(shù)據(jù)處理的呢

    STM32 USART串口接收數(shù)據(jù)的具體步驟有哪些?STM32 USART串口是如何進(jìn)行數(shù)據(jù)處理的呢?
    發(fā)表于 11-25 08:56

    附加電路在充電之前對(duì)電池進(jìn)行預(yù)處理

    本文主要講述的是附加電路在充電之前對(duì)電池進(jìn)行預(yù)處理。
    發(fā)表于 04-30 09:51 ?13次下載

    放電聲發(fā)射波檢測(cè)中數(shù)據(jù)預(yù)處理的小波分析實(shí)現(xiàn)

    放電聲發(fā)射波檢測(cè)中數(shù)據(jù)預(yù)處理的小波分析實(shí)現(xiàn)       摘 要:研究了放電聲發(fā)射波檢測(cè)中用小波變換進(jìn)行數(shù)據(jù)預(yù)處
    發(fā)表于 10-22 17:41 ?610次閱讀

    C程序設(shè)計(jì)教程之如何進(jìn)行編譯預(yù)處理

    預(yù)處理是 C 語言的一個(gè)重要功能,它由預(yù)處理程序負(fù)責(zé)完成。所謂預(yù)處理是指在進(jìn)行編譯的第一遍掃描(詞法掃描和語法分析)之前所作的工作。當(dāng)對(duì)一個(gè)源文件進(jìn)
    發(fā)表于 11-02 15:47 ?5次下載

    使用相似連接進(jìn)行多源數(shù)據(jù)并行預(yù)處理的方法概述

    和并行的思想。首先,通過對(duì)多源數(shù)據(jù)中的相似語義進(jìn)行統(tǒng)一、對(duì)個(gè)性語義進(jìn)行保留的預(yù)處理方法提高了靈活性;其次,提出了一種改進(jìn)的并行MapReduce框架,提高了相似連接的效率。實(shí)驗(yàn)結(jié)果表明
    發(fā)表于 10-29 15:21 ?12次下載
    使用相似連接<b class='flag-5'>進(jìn)行</b>多源<b class='flag-5'>數(shù)據(jù)</b>并行<b class='flag-5'>預(yù)處理</b>的方法概述

    成功進(jìn)行數(shù)據(jù)整合的案例

    預(yù)置數(shù)十個(gè)開箱即用連接器,基于SDK和熱插拔的連接器擴(kuò)展技術(shù),快速啟動(dòng)數(shù)據(jù)集成,然后利用低代碼、自動(dòng)化數(shù)據(jù)處理管道方式進(jìn)行數(shù)據(jù)建模。
    的頭像 發(fā)表于 08-19 14:14 ?829次閱讀

    使用tf.data進(jìn)行數(shù)據(jù)處理

    進(jìn)行AI模型訓(xùn)練過程前,需要對(duì)數(shù)據(jù)進(jìn)行處理, Tensorflow提供了tf.data數(shù)據(jù)處理
    的頭像 發(fā)表于 11-29 15:34 ?1156次閱讀

    什么是大數(shù)據(jù)采集和預(yù)處理

    一般情況下,大數(shù)據(jù)處理的流程為:數(shù)據(jù)采集和預(yù)處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分析和數(shù)據(jù)可視化。
    的頭像 發(fā)表于 02-15 14:22 ?3776次閱讀

    PyTorch教程之數(shù)據(jù)預(yù)處理

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程之數(shù)據(jù)預(yù)處理.pdf》資料免費(fèi)下載
    發(fā)表于 06-02 14:11 ?0次下載
    PyTorch教程之<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>預(yù)處理</b>