分享

TCGA数据与临床信息相关性的挖掘

 尹东觉 2017-07-29


大家好,我是来自中南大学的病理生理学博士,前些天,我已经把肿瘤和对照正常组的基因表达情况进行了分析,通过分析我们得知我们所严格的gene,是有意义的。

然而,有些同学问,想知道基因数据与肿瘤亚型的相关性,笔者也进行了分析。首先,我意外之中通过TCGA数据挖掘到肿瘤临床信息,这个信息是很难分析出来。现进行展示:

很好,居然有甲状腺乳头状癌的型,不过未分化等其它的类型并没有找到。我们知道甲状腺乳头状癌常见分型,乳头状,滤泡状,高细胞型。一般高细胞型的预后很差。这个数据的信息太多了,有些后面的用不上,所以我在此去掉用不上了,代码如下:

clinic1<>

> View(clinic1)

> clinic1<>

> clinic2<>

> View(clinic2)

现在,我需要把我们的基因表达数据进行关联。用什么函数合并呢,首先我发现临床数据的SampleCode与我们昨天挖掘的数据结构sample列很相似,


只不过发现其是取了数据的前

12个字段。为了创造相同性,我们首先要进行字段的截取,记得以前作网站开发时常用substr函数,不知R程序能用不,其实一些程序员建议我去学下per语言,处理文本R不是它的强项,perl语言这方面的功能比R不知要强多少倍,不过我还是用R算了,代码如下:

express2$sample<>

神奇,居然实现了,这个函数在VB语言也常用。


由于我们研究的是肿瘤和临床信息的相关性,故要把正常组织去掉。代码如下:

express2<-express2[59:557,]  =""  =""  =""  =""  =""  ="">


然后就需要合并处理了。试试inner join进行操作,看能成功不

result<>

出错了,没找到数据,什么原因,查看原始数据,发现原来有express2数据TCGA.BJ.A3PU。这里面是“.',我们要变成-。这才能和clinic2数据匹配。替换字符代码如下:

express2$sample<-chartr('.','-',>

成功显示:View(express2)

然后执行合并代码:

result<>

数据整理完毕,现在可以进行相关的统计学分析了,还是先把数据进行保存吧,怕系统出状况。

write.table(result,'result.xls',sep='\t',quote = TRUE)

然而,有个问题来了,我们要选择何种统计方法来检验我们的数据和临床相关性呢,查阅文献资料得知利用卡方检验比较多,需要设计三线表格。以前笔者从未画过三线表格,打算用R语句编程来画吧。

首先我们要对此表的gene 表达值进行转换为低表达和高达组,代码如下:


> meanp<>

> sum(result$value)/498

[1] 48.1747

> value<>

> result$value<>

> View(result)

突然发现,数据结构里没有年龄,要重新加载起来,重新从clincal数据库里加载

> library(TCGAbiolinks)

clinical <- gdcquery_clinic(project='TCGA-THCA' ,="" type='clinical'>

 clinical$age_at_diagnosis<-round(clinical$age_at_diagnosis>

clinical<>

然后再合并吧

result<>

View(result)

临床信息资料需要对年龄进行分组,代码如下:

> age<><45,><45', '="">45') 

> result$age<>

> View(result)

下面我们对肿瘤分期这一栏进行二分类,代码如下,当然你不怕累可以一个一个的自个输入,我喜欢自动生成,代码如下:

 TumorStage<-ifelse(result$clinicalstage=='stage ii','="" i,ii',ifelse(result$clinicalstage="='Stage" i','="">

> result$TumorStage<>

> View(result)


同样,我要对临床病理分期、肿瘤大小进行二分类,淋巴结转移和远处转移本身就只有2分类,故不需要对数据进行处理。同时还发现一个问题,临床数据有好多缺失值,这个先要处理一下,这个数据框有些不同,NA值是长这样的[NA],而在R语言里,这种符号[]。是富有特殊含义的,因此了为方便,我想到了用EXCEL快速替换。替换完成后发现和R的数据结构还是有些不一样,我们要移动一下第一行,然后再减去第一列就OK了

rt=read.table('result.xls',sep='\t',header=T,check.names=F)

rt<>

result<>

数据空值,NA值有些是依据临床病理特点及多发性处理的,不过最好要有一种算法可以KNN去处理更好,不过是非数值变量,还是依据经验完成。

>Tumorsize<-ifelse(result$`t-status`=='t1',><2cm',>

>result$Tumorsize<>

> Pathologicalstaging<-ifelse(result$histotype=='thca-tallcell', 'thca-tallcell',="">

> result$Pathologicalstaging<>

> Lymphnode<-ifelse(result$`n-status`=='n0', 'no',="">

> result$Lymphnode<>

> metastasis<-ifelse(result$`m-status`=='m0', 'no',="">

> result$metastasis<>

> View(result)

这是不是和我们要做的卡方检验的元素很相似,下面我就可以生成四格表,做卡方检验和logist回归检验了。

随意我就生成了一个按组织分类的boxplot图



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多