前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言批量处理Pubmed数据库文献信息

R语言批量处理Pubmed数据库文献信息

作者头像
一粒沙
发布2021-04-19 12:51:25
2.3K0
发布2021-04-19 12:51:25
举报
文章被收录于专栏:R语言交流中心R语言交流中心

PubMed数据库作为最流行的文献检索数据库。本身提供了很多供用户使用的检索功能,关键词筛选机制。今天给大家介绍一个在R中进行PubMed数据库挖掘的工具包RISmed。其实这个包主要是利用了NCBI提供的API进行功能的封装,操作的简化。更多的详细参数参数可以参见:https://www.ncbi.nlm.nih.gov/books/NBK25499/。另外一个包则是主要进行对pubmed数据库中检索的结果进行进一步的标准化和拆分,主要涉及有摘要英文文本分词、词频统计的功能,摘要内文本基因名的频率统计的功能。首先我们先看下包的安装:

代码语言:javascript
复制
install.packages(“RISmed”)
install.packages(“pumed.mineR”)
devtools::install_github("kassambara/ggpubr")
install.packages(“wordcloud2”)

我们直接通过实例来进行对包中的功能进行演示:

1. 关键词的检索功能。需要用到函数EUtilsSummary(),其中query参数指的是需要检索的关键词,关键词的规则和在PubMed中的一致;db指的是在MCBI中 的数据库,当然不限于PubMed;retmax用于设置最大获取量,默认的最大值1000,所以需要根据结果进行设置;mindate和maxdate分别设定检索的开始时间和结束时间。接下来直接看下实例:

代码语言:javascript
复制
key="COVID-19"
data=EUtilsSummary(key,db="pubmed",retmax=122451,mindate=2019,maxdate=2021)

2. 获取上面结果的详细信息。需要用到函数EUtilsGet()。其可以获取文章的所有相关信息,包括PMID(PMID),标题(ArticleTitle),摘要(AbstractText),接收时间(YearAccepted),杂志(Title),文章类型(PublicationType),DOI(DOI),国家(Country),单位(Affiliation)等。我们直接看下实例:

代码语言:javascript
复制
pid=data@PMID
results=EUtilsGet(pid,type="efetch",db="pubmed")

至此,通过RISmed包通过关键词获得了我们想要的数据结果.接下来就是对文本的挖掘。在这里需要用到包pumed.mineR。首先需要搞清楚如何将上面的结果和此包进行对接。在这里用到了S4的一个R的类,这个类主要是两个包之间进行数据传递的纽带。在pumed.mineR中,有一个Abstracts的类,其中包含了Journal,Abstract和PMID三个数据。我们需要将其和前面的数据进行对接并对类进行实例化。直接看实例:

代码语言:javascript
复制
data <- data.frame(
                          pid=results@PMID,
                         Title=ArticleTitle(results),
                         Year=YearAccepted(results),
                          journal=ISOAbbreviation(results),
                         abstract=AbstractText(results),
                         countary=Country(results),
                          doi=DOI(results),
                         Affiliation=Affiliation
                          )
data=data[which(nchar(data$abstract)>20),]#此处主要是对数据进行过滤删掉空的摘要数据
Sys.setlocale("LC_ALL")
adata=new("Abstracts",Journal=data$journal,Abstract=data$abstract,PMID=as.numeric(data$pid))

接下来就是对文本数据进行分析,首先进行摘要的分词处理及可视化:

代码语言:javascript
复制
words=word_atomizations(adata)
library(ggpubr)
ggdotchart(words[1:20,], x ="words", y = "Freq",
          #color = "Freq",                                # Color bygroups
          palette = c("#00AFBB", "#E7B800","#FC4E07"), # Custom color palette
          sorting = "descending",                      # Sort value indescending order
          rotate = TRUE,                                # Rotatevertically
          dot.size = 2,                                 # Large dotsize
          y.text.col = TRUE,                            # Color y text bygroups
          ggtheme = theme_pubr()                        # ggplot2 theme
)+ theme_cleveland()                                      # Adddashed grids

然后是相关的基因的频率展示:

至此我们对PubMed数据库中的122451篇文献的摘要进行了分词和基因频率的展示。

欢迎大家学习交流!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档