ReCiter is a highly accurate system for guessing which publications in PubMed a given person has authored. ReCiter includes a Java application, a DynamoDB-hosted database, and a set of RESTful microservices which collectively allow institutions to maintain accurate and up-to-date author publication lists for thousands of people. This software is optimized for disambiguating authorship in PubMed and, optionally, Scopus.
ReCiter accurately identifies articles, including those at previous affiliations, by a given person. It does this by leveraging institutionally maintained identity data (e.g., departments, relationships, email addresses, year of degree, etc.) With the more complete and efficient searches that result from combining these types of data, you can save time and your institution can be more productive. If you run ReCiter daily, you can ensure that the desired users are the first to learn when a new publication has appeared in PubMed.
ReCiter is fast. It uses an advanced multi-threading strategy known as a work stealing pool to make up to 10 retrieval requests at a time.
ReCiter is freely available and open source under the Apache 2.0 license.
Please see the ReCiter wiki for more information.
brew install maven
and then mvn clean install
If you want to use Java 8 then update <java.version>1.8</java.version>
in pom.xml
It is not necessary to install ReCiter in order to use the API.
Key technologies include:
You may choose to run ReCiter on either:
The ReCiter application depends on the following separate GitHub-hosted repositories:
Optionally, users can install:
ReCiter can be installed to run locally or in AWS via a cloud formation template. A required dependency is the PubMed Retrieval Tool. The Scopus Retrieval Tool is optional, but can improve overall accuracy by several percent.
git clone https://github.com/wcmc-its/ReCiter.git
aws.DynamoDb.local=false
to aws.DynamoDb.local=true
aws.DynamoDb.local.dbpath=/Users/Paul/Documents/ReCiter/dynamodb_local_latest
spring.security.enabled=true
to spring.security.enabled=false
export ADMIN_API_KEY=<api-key>
export CONSUMER_API_KEY=<api-key>
use.scopus.articles=true
to use.scopus.articles=false
.export SERVER_PORT=5000
export SCOPUS_SERVICE=http://localhost:5001
export PUBMED_SERVICE=http://localhost:5002
mvn spring-boot:run
. You can add additional options if you want like max and min java memory with export MAVEN_OPTS=-Xmx1024m
http://localhost:<port-number>/swagger-ui/index.html
or http://localhost:<port-number>/swagger-ui/
(shorthand swagger url) to test and run any API.The ReCiter CDK allows to install the entire infrastructure for ReCiter and its components and its highly configurable. There you will find instruction to install ReCiter and its components.
The wiki article, How ReCiter works, contains a more detailed description on the application works.
The wiki article, Using the APIs, contains a full description on how to use the ReCiter APIs.
Category | Function | Relevant API(s) |
---|---|---|
Manage identity of target users | Add or update identity data for target user(s) from Identity table | /reciter/identity/ or /reciter/save/identities/ |
Manage identity of target users | Retrieve identity data for target user(s) from Identity table | /reciter/find/identity/by/uid/ or /reciter/find/identity/by/uids/ or /reciter/find/all/identity |
Gold standard | Update the GoldStandard table (includes both accepted and rejected PMIDs) for single user | /reciter/goldstandard/ |
Gold standard | Update the GoldStandard table (includes both accepted and rejected PMIDs) for mutliple users | /reciter/goldstandard/ |
Gold standard | Read from the GoldStandard table (includes both accepted and rejected PMIDs) for target user(s) | /reciter/goldstandard/{uid} |
Look up candidate articles | Trigger look up of candidate articles for a given user | /reciter/retrieve/articles/by/uid |
Retrieve suggested articles | Read suggested articles from the Analysis table for target user | /reciter/article-retrieval/by/uid |
Retrieve suggested articles | Read suggested articles and see supporting evidence from the Analysis table for target user(s) | /reciter/feature-generator/by/uid or /reciter/feature-generator/by/group |
Both the issue queue and the Roadmap include some areas where we want to improve ReCiter.
Various components in the ReCiter suite of applications has been funded by:
Please submit any questions to Paul Albert. You may expect a response within one to two business days.
We use GitHub issues to track bugs and feature requests. If you find a bug, please feel free to open an issue.
Contributions welcome!