研究最热门的基因是什么

NCBI的ftp里面关于人的一些基因信息, 在 : ftp://ftp.ncbi.nlm.nih.gov//gene 下载即可!

其中 gene2pubmed.gz 这个是NCBI的entrez ID号对应着该基因发表过的文章的ID号

  • 链接是: ftp://ftp.ncbi.nlm.nih.gov//gene/DATA/gene2pubmed.gz

image-20210501190234119

这个 gene2pubmed.gz 约50M,网络后的话,几分钟就下载OK了。

整理数据文件

简单的使用bing搜索一下关键词:word clound in r ,就可以找到解决方案,第一个链接就是:http://www.sthda.com/english/wiki/text-mining-and-word-cloud-fundamentals-in-r-5-simple-steps-you-should-know,代码分成5个步骤。

  • Step 1: Create a text file
  • Step 2 : Install and load the required packages
  • Step 3 : Text mining
  • Step 4 : Build a term-document matrix
  • Step 5 : Generate the Word cloud

一般来说,会R基础的朋友们很容易看懂,如果你还不会R语言,建议看:

把R的知识点路线图搞定,如下:

  • 了解常量和变量概念
  • 加减乘除等运算(计算器)
  • 多种数据类型(数值,字符,逻辑,因子)
  • 多种数据结构(向量,矩阵,数组,数据框,列表)
  • 文件读取和写出
  • 简单统计可视化
  • 无限量函数学习

核心代码就是wordcloud函数,但是这个wordcloud函数要求的输入数据就需要认真做出来。

library(data.table)
a=fread('gene2pubmed.gz',data.table = F)
head(a)
# https://www.uniprot.org/taxonomy/9606
a=a[a$`#tax_id`==9606,]

library("tm")
library("SnowballC")
library("wordcloud")
library("RColorBrewer")

tb=as.data.frame(table(a$GeneID))
head(tb)
tb=tb[order(tb$Freq,decreasing = T),]
tb=head(tb,100) 
colnames(tb)[1]='gene_id'
set.seed(1234)

如下所示:

> head(tb)
 gene_id Freq
5608 7157 10251
5580 7124 5966
1550 1956 5929
5827 7422 4771
2778 3569 4746
292 348 4544

可以看到,关联到pubmed文献基因最多的是 7157和 7124,当然了,这个时候它仍然是 Entrez Gene

但是已经可以绘图了

第一次绘图

绘图是R语言里面最简单但是如果要深入又最折磨人的,比如这个词云,就一个函数即可:

wordcloud(words = tb$gene_id, freq = tb$Freq, min.freq = 1,
 max.words=200, random.order=FALSE, rot.per=0.35,
 colors=brewer.pal(8, "Dark2"))

可以看到, 基因根据其热门程度,以不同的大小显示出来了:

第一次词云

第二次绘图

因为前面的基因是 Entrez Gene,绝大部分人是没办法一目了然的去认识它,比如这个时候虽然知道研究最多的是7157和 7124 这两个基因

所以,我们需要理所当然的做一个ID转换,如下所示的代码:

library(org.Hs.eg.db)
ids=toTable(org.Hs.egSYMBOL)
head(ids)
tbs=merge(ids,tb,by='gene_id')
wordcloud(words = tbs$symbol, freq = tbs$Freq, min.freq = 1,
 max.words=200, random.order=FALSE, rot.per=0.35,
 colors=brewer.pal(8, "Dark2"))

重新出图如下:

最终版词云

是不是现在就顺眼很多了呢,不知道这个词云里面有没有你正在研究的基因呢?

更多拓展作为学徒作业

这个 gene2pubmed.gz 约50M文件里面的信息太丰富了,有1333万行信息,仅仅是人类就有159万行的文献,涉及到3万9千的基因数量,绝大部分基因都是如过眼云烟,很少人去研究它。

我们的TP53能拔得头彩也是不容易,但它也有自己的发展规律,希望大家可以更细致去探索 ftp://ftp.ncbi.nlm.nih.gov//gene 里面的文件。

比如这样的top 100的基因词云,其实可以做出来最近30年的变化规律,只需要你去找到文献的时间年份信息,进行拆分,​每个年份独立统计绘图即可。

Comments are closed.