knitr::opts_chunk$set( collapse = TRUE, comment = "#>" )
library(CRMilestones)
This package is a helper to identify historical milestones in a citation dataset using RPYS (Reference Publication Year Spectroscopy), essentially implementing the method described in Comins & Leydesdorff (2017).
This package uses CRExplorer, which is free and available from https://andreas-thor.github.io/cre/. A manual to the software can be found here: https://andreas-thor.github.io/cre/manual.pdf.
A copy of CRExplorer comes bundled in the package (version 1.9, downloaded in June/2021) and is the default option. If you want to use your own installation, you'll need to pass the path to the function calls below.
In addition, CRExplorer is written in Java, so you need to install it as well. Download it here (Oracle) or here (OpenJDK).
Optogenetics "is a biological technique that involves the use of light to control neurons that have been genetically modified to express light-sensitive ion channels" from Wikipedia. It has an interesting history, as it is a merger of two lines - one from cellular neuroscience, another originating with light-sensitive ion-channels that were discovered in green algae.
We start with a dataset of references. Here, the data for optogenetis was obtained by snowballing from the paper that established the method (Boyden et al. 2005). These records, retrieved from Web of Science, are available with this package, as an example. The records contain the 2005 paper, the references cited by this paper and the references cited by those references (i.e. second generation citations).
The function run_CRE is called below to do the first step. It will use CRExplorer to read the data and disambiguate the references. The result, stored in CR_data, will contain a data frame of references, indicating the citing ones (i.e. the ones included in the records provided) and the cited ones - the ones cited by those records. There might be overlap between the two sets, but which reference cites which will be specified by the data frame, where each row is a pair citing -> cited
Notice that this call is very verbose, as it reproduces the console output of CRExplorer. It takes a few moments to run (more depending on the size of the records).
wos_records = system.file("extdata", "optogenetics.txt", package = "CRMilestones", mustWork = T) CR_data = run_CRE(data_files = wos_records)
Now CR_data is what you use for the other functions. First, you can plot graphs. For single RPYS:
plot_rpys(CR_data, cited_year_range = c(1950, 2006))
For multiple RPYS (the visualization is not straightforward, see the documentation for the function and the references therein):
plot_multi_rpys(CR_data, cited_year_range = c(1950, 2006))
The other thing (which motivates this package) is to identify the milestone references and years. This is achieved through the identify_milestones function. This is done by a simple algorithm, running a RPYS analysis for each year in separate, de-trending then ranking the data and afterwards considering peaks those years that consistently rank higher. Again, for more details, see the documentation and the references cited above.
milestones = identify_milestones(CR_data, n_milestones = 10, n_refs = 1, cited_year_range = c(1950, 2006))
The result is a list containing (1) a dataframe of the milestone references, (2) the list of peak years and (3) plots indicating the peak years with vertical lines.
Options of plots:
milestones$rpys
milestones$rpys_stacked
The list of milestone years and references:
milestones$peak_years
milestones$pubs$Reference_Cited
Boyden, Zhang, Bamberg, Nagel & Deisseroth (2005). Millisecond-timescale, genetically targeted optical control of neural activity. Nature Neuroscience. DOI:10.1038/nn1525
Comins & Hussey (2015). Compressing multiple scales of impact detection by Reference Publication Year Spectroscopy. Journal of Informetrics. DOI:10.1016/j.joi.2015.03.003
Comins & Leydesdorff (2017). Citation algorithms for identifying research milestones driving biomedical innovation. Scientometrics. DOI:10.1007/s11192-016-223
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.