原来一个星期真的可以零基础入门TCGA数据挖掘,甚至markdown写作公众号投稿

生信技能树有话说:最近刚刚组建一个TCGA交流群:4年前的TCGA重磅资料你学了吗 把资料系统性整理给到了大家,发现其中一个群友聊天非常积极,而且看得到的进步,就要求他投稿,原题目是:

R菜鸟及生信菜鸟之第一篇Markdown笔记——歪打正着复现帖子的一个boxplot


作为一个刚入门生信的菜鸟,啥都不懂。

  • Linux不懂,bash不懂,R不懂[捂脸]。。。

  • 测序技术不懂,测序数据库不懂。。。

  • 甚至连Markdown也是第一次使用。。。

  • 从没有掌握好一门编程语言,只靠零散的IT基础。。。

唯一有的优势是积攒多年的生物学背景及学习能力快【囫囵吞枣能力】。再者,作为当代有痣青年,在这个生物大数据横行,各种高通量技术横行的时代,怎能缺少咱们的影子[捂脸],还想着花点钱搞个单细胞测序发个CNS啥的,哈哈。有幸碰到了生信技能树的团队,刚好有这个机缘,所以干脆就把脚踏入了这个圈。。。

走出舒适区,磨练自己。我的方法是边看生信技能树的教程,边学技术,遇到不懂的,直接google,直接pubmed(这两板斧最好用)。

话说,从接触R到现在(28/11)到现在(03/12)总共不到一个星期里,跟着依葫芦画瓢学习了几个TCGA数据库相关的教程。每个教程的code都是自己一个个手动打的,因为是一个个比较零散的教程,不成系统,所以基本大脑还没有形成套路。我最想做的事情就是研究SCI文章里面的数据挖掘套路,复现其数据处理过程及图表产出。不仅可以跟上SCI文章的思路,而且可以学到技术。希望后面自己的生信体系会越来越成系统。

言归正传,按这个思路,我系统性研读了生信技能树系统的数据挖掘专题目录:

其中 7. 肿瘤异质性+免疫浸润细胞数据挖掘(可能是最简单的3分⽂章了) 吸引了我的注意, 而且这个文章是TCGA数据库的挖掘,所以应该重复性不错。

说干就干,就临摹起了这个帖子。一个下午大半时间各种折腾安装相关的包。

同时泛读了这个帖子相关的三篇文献后:

 

开始干活。

Step1,Step2基本没啥问题都处理好了。

在处理Boxplot的时候,帖子作者在复现KI67的时候用的是“从UCSC Xena下载gene expression RNAseq”的data,处理好了之后导入到R里面的,然后发现出来的图与原SCI不一致。

SCI原文图:

image-20191204104113749

帖子复现图如下:

image-20191204104027232

帖子处理的KI67 基因在两组里面没有统计学差异。

我在这停顿了一下,帖子作者是从UCSC下载的数据,没有提供下载【捂脸】!继续不下去了,怎么办?只能自己操作获取。想起前几天学的cgdsr下载CGTA基因表达的数据,干脆就写了两句自己获取了,代码如下:

### get the mRNA expression 
library(cgdsr)
mycgds <- CGDS("http://www.cbioportal.org/")
mycaselist = 'brca_tcga_rna_seq_v2_mrna'
mygeneticprofile = 'brca_tcga_rna_seq_v2_mrna'
MKI67 = getProfileData(mycgds,'MKI67',mygeneticprofile,mycaselist)
##get the sampleID
MKI67$Sample_ID <- chartr('.','-',substr(row.names(MKI67),1,12))
## Merge data with df
df_ki67 <- merge(df,MKI67)
## set log2 of KI67 expression
df_ki67$MKI67 <- log2(df_ki67$MKI67)

## 然后作图
library(ggpubr)
#install.packages("magrittr")
p1 <- ggboxplot(df, x="group",y="Mutation_burder",
                fill = "group",
                palette = "jco",
                legend = "") +
  stat_compare_means(method = "t.test")

p2 <- ggboxplot(df_ki67, x="group",y="MKI67",
                fill = "group",
                palette = "jco",
                legend = "") +
  stat_compare_means(method = "t.test")
ggarrange(p1,p2,ncol = 2,nrow=1)

姨?发现我处理出来的图基本吻合了SCI里面的boxplot!如下:

image-20191204111112654

总结:应该是数据处理方式不同。我没有下载UCSC的数据,所以不知道里面是如何进行normalization的。在cgdsr拿到KI67 的表达量之后,我这里进行了log2处理以吻合原SCI的纵坐标。总之,歪打正着的赶脚。然后再测试了SCI文章Figure 3里面的基因,发现也基本吻合,如下图:

image-20191204111820690

SCI原图:

image-20191204111854986

不过p值和SCI文章不一致,估计和数据处理和异常值有关。

而后一直在找intratumor heterogeneity的数据,原SCI作者没说他的数据怎么来的。我估计也是从ATCG上处理过来的,可是我还不会~~~

这个帖子还没临摹完,后续继续做生存相关及免疫细胞亚群的分析。。。fighting

写在最后

你不试一试,真的不知道自己有多厉害!

更多表达芯片的公共数据库挖掘系列更多教程,见推文 ;

(0)

相关推荐