Journal matching, using title, abstract & references.
Project description
Jot: Journal Targeter
Jot is a web app that identifies potential target journals for a manuscript, based on the manuscript's title, abstract, and (optionally) references. Jot gathers a wealth of data on journal quality, impact, fit, and open access options that can be explored through linked, interactive visualizations.
To try it out, you have two options:
- Visit the website: Jot is available at https://jot.publichealth.yale.edu
- Run your own Jot server. Instructions below.
Contents
About Jot
Jot builds upon the API of Jane (Journal/Author Name Estimator, https://jane.biosemantics.org/) to identify PubMed articles that are similar in content to a manuscript's title and abstract. Jot gathers these articles and their similarity scores together with manuscript citations and a journal metadata assembled from the National Library of Medicine (NLM) Catalog, the Directory of Open Access Journals (DOAJ), Sherpa Romeo, and impact metric databases. The result is a personalised, multi-dimensional data set that can be navigated through a series of linked, interactive plots and tables, allowing an author to sort and study journals according to the attributes most important to them.
How to run your own server
Installation
To run a Jot server, you first need to install the python package journal_targeter
on your machine. You have a few options:
- (Easiest) Install from PyPI.
- To install directly into your current Python (virtual) environment, run:
pip install journal_targeter
- For the convenience of an app-specific environment, use
pipx:
pipx install journal_targeter
- To install directly into your current Python (virtual) environment, run:
- Install from source code.
- In your terminal, clone the
journal_targeter
repository to a convenient for long-term storage, andcd
into the new directory. - (Optional/Recommended) Create and activate a new virtual environment using
venv or
conda.
- With conda/miniconda installed, you can easily create an environment
with the required dependencies using the provided
environment.yaml
file:conda env create -n jot -f environment.abstract.yaml
Activate this environment (necessary each time you want to run Jot) with:conda activate jot
- With conda/miniconda installed, you can easily create an environment
with the required dependencies using the provided
- To install dependencies (if you didn't use the conda step above), run:
pip install -r requirements.txt
- Finally, install the package in development mode using:
python setup.py develop
- In your terminal, clone the
Command-line interface (CLI)
Quick start
With the Python package installed as above, an executable called journal_targeter
should now be available on your path. Without any further configuration, you can
try out the server using:
journal_targeter flask run
This will set up the application (copying/building key data in an application
support folder) then start a Flask development server. The app will be available
in your browser at http://127.0.0.1:5000/
.
Available commands
Run journal_targeter
without arguments to see a list of commands. Add the
'--help' flag after a command name to get more information on the command.
Usage: journal_targeter [OPTIONS] COMMAND [ARGS]...
Options:
--verbose / --quiet
--help Show this message and exit.
Commands:
build-demo (Re)build demo data.
flask Serve using Flask cli.
gunicorn Serve using gunicorn.
lookup-journal Find journal metadata using title and optional ISSNs.
match Run search and save results as html file.
setup Set up environment variables for running server.
update-sources Update data sources, inc NLM, DOAJ, Sherpa Romeo, etc.
To configure the application, the setup prompt
command will walk you through the
creation of a configuration .env
file.
journal_targeter setup prompt
To serve the app, you can use the Flask development server
(not recommended for production settings) or gunicorn
(Mac/Unix/Linux):
# Flask, running on port 5005
journal_targeter flask run -p 5005 -h 0.0.0.0
# ...or gunicorn, running on port 5005 with 1 gevent worker
journal_targeter gunicorn -b 127.0.0.1:5005 -w 1 -k gevent
You can update data sources without waiting for a new journal_targeter
release.
Examples:
# Update NLM catalog data, adding --clear-metadata to start with the latest
# metadata for all journals. (~13min)
journal_targeter update-sources --update-nlm --clear-metadata
# Update DOAJ data from a downloaded CSV (https://doaj.org/csv), with 5 cores for matching (~4min)
journal_targeter update-sources --ncpus 5 -d journalcsv__doaj_20211028_1036_utf8.csv
# Update Sherpa Romeo data, downloaded via API (requires API KEY), with 5 cores,
# skipping the optional NLM update
journal_targeter update-sources --ncpus 5 --skip-nlm --romeo
# Update the Scopus metrics from a downloaded 'source titles and metrics' file
# via https://www.scopus.com/sources
journal_targeter update-sources --ncpus 5 --scopus-path "CiteScore 2011-2020 new methodology - May 2021.xlsb"
Modifying the code
This code comes with a GPLv3 license, so feel free to tinker and share under the license terms.
To enable the interactive debugger, set the FLASK_ENV variable to 'development':
FLASK_ENV=development journal_targeter flask run
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for journal_targeter-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a0fba7c9b497fa695582dc7d246fe724a347cc80b11aa63277442e1e95432bf |
|
MD5 | 44a12cb77cf4939ef42e35694385b2df |
|
BLAKE2b-256 | 6966392c7662dd090ed23f7e7642f2c9214145e611be755014c927d4950abe5d |