⚠️There's a newer version (0.4.3) of this package. Take me there.

europepmc - R Interface to Europe PMC RESTful Web Service

europepmc facilitates access to the Europe PMC RESTful Web Service.

Europe PMC covers life science literature and gives access to open access full texts. Europe PMC ingests all PubMed content and extends its index with other sources, including Agricola, a bibliographic database of citations to the agricultural literature, or Biological Patents.

For more infos on Europe PMC, see:

https://europepmc.org/About

Levchenko, M., Gou, Y., Graef, F., Hamelers, A., Huang, Z., Ide-Smith, M., … McEntyre, J. (2017). Europe PMC in 2017. Nucleic Acids Research, 46(D1), D1254–D1260. https://doi.org/10.1093/nar/gkx1005

Implemented API methods

This client supports the following API methods:

API-MethodDescriptionR functions
searchSearch Europe PMC and get detailed metadataepmc_search(), epmc_details()
profileObtain a summary of hit counts for several Europe PMC databasesepmc_profile(), epmc_profile_hits()
citationsLoad metadata representing citing articles for a given publicationepmc_citations()
referencesRetrieve the reference section of a pubicationepmc_refs()
databaseLinksGet links to biological databases such as UniProt or ENAepmc_db(), epmc_db_count()
labslinksAccess links to Europe PMC provided by third partiesepmc_lablinks(), epmc_lablinks_count()
textMinedTermsRetrieve text-mined termsepmc_tm(), epmc_tm_count()
fullTextXMLFetch full-texts deposited in PMCepmc_ftxt()
bookXMLretrieve book XML formatted full text for the Open Access subset of the Europe PMC bookshelfepmc_ftxt_book()

Installation

From CRAN

install.packages("europepmc")

The latest development version can be installed using devtools package:

require(devtools)
install_github("ropensci/europepmc")

Loading into R

library(europepmc)

Search Europe PMC

The search covers both metadata (e.g. abstracts or title) and full texts. To build your query, please refer to the comprehensive guidance on how to search Europe PMC: http://europepmc.org/help. Simply provide your query in the Europe PMC search syntax to epmc_search().

europepmc::epmc_search("Lagotto Romagnolo")
#> # A tibble: 42 x 27
#>    id     source pmid   doi   title    authorString     journalTitle issue
#>    <chr>  <chr>  <chr>  <chr> <chr>    <chr>            <chr>        <chr>
#>  1 28583… MED    28583… 10.1… Basal A… Syrjä P, Anwar … Vet Pathol   6    
#>  2 25945… MED    25945… 10.1… Behavio… Jokinen TS, Tii… J Vet Inter… 4    
#>  3 24354… MED    24354… 10.1… FDG-PET… Jokinen TS, Haa… Vet Radiol … 3    
#>  4 17552… MED    17552… 10.1… Benign … Jokinen TS, Met… J Vet Inter… 3    
#>  5 17490… MED    17490… 10.1… Cerebel… Jokinen TS, Rus… J Small Ani… 8    
#>  6 29056… MED    29056… 10.1… Relatio… Byosiere SE, Fe… Behav Proce… <NA> 
#>  7 27525… MED    27525… 10.1… Genetic… Donner J, Kauko… PLoS One     8    
#>  8 29166… MED    29166… 10.1… Frequen… Zierath S, Hugh… PLoS One     11   
#>  9 29237… MED    29237… 10.1… Molecul… Yu Y, Hasegawa … BMC Vet Res  1    
#> 10 25875… MED    25875… 10.1… A misse… Kyöstilä K, Syr… PLoS Genet   4    
#> # ... with 32 more rows, and 19 more variables: journalVolume <chr>,
#> #   pubYear <chr>, journalIssn <chr>, pageInfo <chr>, pubType <chr>,
#> #   isOpenAccess <chr>, inEPMC <chr>, inPMC <chr>, hasPDF <chr>,
#> #   hasBook <chr>, citedByCount <int>, hasReferences <chr>,
#> #   hasTextMinedTerms <chr>, hasDbCrossReferences <chr>,
#> #   hasLabsLinks <chr>, hasTMAccessionNumbers <chr>,
#> #   firstPublicationDate <chr>, pmcid <chr>, hasSuppl <chr>

By default, epmc_search() returns 100 records. To adjust the limit, simply use the limit parameter.

See vignette Introducing europepmc, an R interface to Europe PMC RESTful API for a long-form documentation about how to search Europe PMC with this client.

Creating proper review graphs with epmc_hits_trend()

There is also a nice function allowing you to easily create review graphs like described in Maëlle Salmon's blog post:

tt_oa <- europepmc::epmc_hits_trend("Malaria", period = 1995:2016, synonym = FALSE)
tt_oa
#> # A tibble: 22 x 3
#>     year all_hits query_hits
#>    <int>    <dbl>      <dbl>
#>  1  1995   448477       1485
#>  2  1996   458064       1560
#>  3  1997   455691       1853
#>  4  1998   473173       1749
#>  5  1999   492786       1935
#>  6  2000   531286       2127
#>  7  2001   544411       2203
#>  8  2002   560843       2352
#>  9  2003   587503       2554
#> 10  2004   627130       2748
#> # ... with 12 more rows
# we use ggplot2 for plotting the graph
library(ggplot2)
ggplot(tt_oa, aes(year, query_hits / all_hits)) + 
  geom_point() + 
  geom_line() +
  xlab("Year published") + 
  ylab("Proportion of articles on Malaria in Europe PMC")

For more info, read the vignette about creating literature review graphs:

https://ropensci.github.io/europepmc/articles/evergreenreviewgraphs.html

Re-use of europepmc

Chris Stubben (@cstubben) has created an Shiny App that allows you to search and browse Europe PMC:

https://cstubben.shinyapps.io/euPMC/

Other ways to access Europe PubMed Central

Other APIs

Other R clients

Meta

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License: GPL-3

Please use the issue tracker for bug reporting and feature requests.


Copy Link

Version

Down Chevron

Install

install.packages('europepmc')

Monthly Downloads

1,239

Version

0.3

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

April 20th, 2018

Functions in europepmc (0.3)