PubMed文献数据挖掘
这里集合了人类目前几乎所有的生物医学的智慧,可以做的东西太多了,就怕你没想象力。
目前的初步想法:
- 给定gene、蛋白、pathway等主体,搜索其研究热度(文献总数,时间线,影响因子分布),在特定condition里的分布(disease、tissue、cell type),以及对应的研究手段(model、sequencing);【可以用于筛选regulator】
- 基因调控网络,目前应该只能做co-exist的分析,真正causal的关系还很难,这也是我最终的目标;
一些设计:
- 有些匹配和抓取可以用电脑完成,有些则只能手动处理,建议每周批量处理一下顶刊的研究,不断积累!
第一步:下载数据,这些数据需要被遍历,也适合并行运算。
# go to pubmed ftp and get files cat file.list.raw | grep pubmed22 | grep -v md5 | cut -f1 -d' ' > file.names cat file.names | wc -l # https://ftp.ncbi.nlm.nih.gov/pubmed/baseline/ cat file.names | awk '{print "https://ftp.ncbi.nlm.nih.gov/pubmed/baseline/"$0}' > file.list wget -bi file.list
第二步:提取数据
靠NPL提取文献摘要的信息。
有个2年前的R包写得非常好,可以直接把下载的xml.gz文件读取成R的dataframe
- https://github.com/christopherBelter/pubmedXML
第三步:排序筛选数据
- 先按年份、影响因子和引用量来排序,优先处理,确保不错过任何(IF>7 | < 5 years | citation > 100)的paper。
- 目前我只关注生物医学的研究,可以是纯实验的,也可以是纯生信的,但研究主题必须是人类疾病(cancer),且必须应用了任何一种model来开展研究。
第四步:分析数据和存储数据
- 现在不需要并行,所以SQLite就够用了
- 读取每一个PMID,然后提取其必须的信息,
核心:
- 关键词,及其alias,这是最重要的,也是分析的核心,遍历title和abstract,提取我想要的关键词(比如gene name);
- 不断更新关键词,可以unsupervised词频,定期来更新我们的关键词列表;
高级分析:
- 【最基本的注释】某个基因过去10年的研究热度,影响因子分布,核心的citation网络;都富集在什么disease,偏好使用什么model,什么技术手段,最常与哪些基因co-occurrent;
- 药物靶点的分析,药物种类,销售额;
expect outcome:
- 1 high-impact journal article (genome biology, etc)
- 1 SQL database
- 1 R package(optional)
- 1 interactive website(optional)
改写pubmed.minR,基本的雏形都有了,但是bug很多,尤其是pubmed的格式一直都在变。
可以持续改写,这些统计信息非常有用,值得花时间来整理。
可以偷偷搞的分析
pubmed只有abstract
想要全文只能通过sci-hub下载PDF,自己解析。
待续~
参考: