Package: journal-targeter
Jot: Journal TargeterJot 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 athttps://jot.publichealth.yale.eduRun your own Jot server. Instructions below.ContentsAbout JotHow to run your own serverInstallationCommand-line interface (CLI)Quick startAvailable commandsModifying the codeAbout JotJot 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 serverInstallationTo run a Jot server, you first need to install the python packagejournal_targeteron your machine. You have a few options:(Easiest) Install fromPyPI.To install directly into your current Python (virtual) environment, run:pipinstalljournal_targeterFor the convenience of an app-specific environment, usepipx:pipxinstalljournal_targeterInstall from source code.In your terminal, clone thejournal_targeterrepository to a convenient
for long-term storage, andcdinto the new directory.(Optional/Recommended) Create and activate a new virtual environment usingvenvorconda.With conda/miniconda installed, you can easily create an environment
with the required dependencies using the providedenvironment.yamlfile:condaenvcreate-njot-fenvironment.abstract.yamlActivate this environment (necessary each time you want to run Jot) with:condaactivatejotTo install dependencies (if you didn't use the conda step above), run:pipinstall-rrequirements.txtFinally, install the package in development mode using:pythonsetup.pydevelopCommand-line interface (CLI)Quick startWith the Python package installed as above, an executable calledjournal_targetershould now be available on your path. Without any further configuration, you can
try out the server using:journal_targeterflaskrunThis 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 athttp://127.0.0.1:5000/.Available commandsRunjournal_targeterwithout 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, thesetup promptcommand will walk you through the
creation of a configuration.envfile.journal_targetersetuppromptTo serve the app, you can use the Flask development server
(not recommended for production settings) orgunicorn(Mac/Unix/Linux):# Flask, running on port 5005journal_targeterflaskrun-p5005-h0.0.0.0# ...or gunicorn, running on port 5005 with 1 gevent workerjournal_targetergunicorn-b127.0.0.1:5005-w1-kgeventYou can update data sources without waiting for a newjournal_targeterrelease.
Examples:# Update NLM catalog data, adding --clear-metadata to start with the latest# metadata for all journals. (~13min)journal_targeterupdate-sources--update-nlm--clear-metadata# Update DOAJ data from a downloaded CSV (https://doaj.org/csv), with 5 cores for matching (~4min)journal_targeterupdate-sources--ncpus5-djournalcsv__doaj_20211028_1036_utf8.csv# Update Sherpa Romeo data, downloaded via API (requires API KEY), with 5 cores,# skipping the optional NLM updatejournal_targeterupdate-sources--ncpus5--skip-nlm--romeo# Update the Scopus metrics from a downloaded 'source titles and metrics' file# via https://www.scopus.com/sourcesjournal_targeterupdate-sources--ncpus5--scopus-path"CiteScore 2011-2020 new methodology - May 2021.xlsb"Modifying the codeThis code comes with aGPLv3 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=developmentjournal_targeterflaskrun