Finding Journals for Your Paper

JournalAnalysis matches Europe PMC articles to journal-level metrics from Scimago or InCites (JCR). This tutorial walks through a typical workflow: define a search, retrieve and inspect results, summarize abstracts, rank journals, and export a shortlist.

Setup

Load JournalAnalysis and dplyr for the filtering steps later in the tutorial.

library(JournalAnalysis)
library(dplyr)

Retrieve publication data

get_publication_data() is the main entry point. It:

  1. Loads journal metrics from scimago or incities (InCites / JCR)
  2. Queries Europe PMC for each search string
  3. Filters articles by year and citation count
  4. Joins articles to journals by ISSN

Start with a modest limit while you refine the query:

pub_data <- get_publication_data(
  journal_source = "scimago",
  queries = query3,
  limit = 200,
  min_year = 2015,
  min_citations = 3,
  n_cores = 1
)
#> 30872 records found, returning 200
#> Removed records published before 2015.
#> Removed records with less than 3 citations.
#> Removed records with NA values for pmid, doi, and authors.
#> 23 records passed the filter.

length(pub_data)
#> [1] 3
names(pub_data)
#> [1] "journals" "articles" "combined"
vapply(pub_data, nrow, integer(1))
#> journals articles combined 
#>       23       23       23

The returned list has three elements:

Element Description
pub_data$articles Article metadata from Europe PMC
pub_data$journals Journal metrics for matched ISSNs
pub_data$combined Articles joined to journal metadata

Inspect the results

After retrieval, inspect each list element to confirm the query and filters behaved as expected.

dplyr::glimpse(pub_data$articles)
#> Rows: 23
#> Columns: 30
#> $ id                    <chr> "40930373", "41463035", "41490486", "41077197", …
#> $ source                <chr> "MED", "MED", "MED", "MED", "MED", "MED", "MED",…
#> $ pmid                  <chr> "40930373", "41463035", "41490486", "41077197", …
#> $ pmcid                 <chr> "PMC12911324", "PMC12730554", "PMC12799112", "PM…
#> $ doi                   <chr> "10.1016/j.biopsych.2025.08.020", "10.3390/biome…
#> $ title                 <chr> "RNA in Plasma Extracellular Vesicles of Adolesc…
#> $ authorString          <chr> "Korobkova L, Thornton ME, Collin MA, Morin EL, …
#> $ journalTitle          <chr> "Biol Psychiatry", "Biomedicines", "Proc Natl Ac…
#> $ journalVolume         <chr> "100", "13", "123", "91", "70", "195", "21", "17…
#> $ pubYear               <int> 2026, 2025, 2026, 2025, 2025, 2025, 2025, 2025, …
#> $ journalIssn           <chr> "00063223; 18732402;", "22279059", "00278424; 10…
#> $ pageInfo              <chr> "64-75", "3025", "e2426232122", "106626", "227-2…
#> $ pubType               <chr> "research-article; journal article", "review-art…
#> $ isOpenAccess          <chr> "N", "Y", "Y", "Y", "Y", "N", "Y", "Y", "Y", "Y"…
#> $ inEPMC                <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"…
#> $ inPMC                 <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"…
#> $ citedByCount          <dbl> 3, 6, 3, 3, 3, 3, 16, 3, 5, 8, 9, 35, 5, 5, 3, 1…
#> $ hasReferences         <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"…
#> $ hasTextMinedTerms     <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"…
#> $ hasDbCrossReferences  <chr> "N", "N", "Y", "N", "N", "N", "N", "N", "N", "N"…
#> $ hasPDF                <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y"…
#> $ hasBook               <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N", "N"…
#> $ hasSuppl              <chr> "Y", "N", "Y", "Y", "N", "Y", "Y", "Y", "N", "N"…
#> $ hasLabsLinks          <chr> "N", "N", "Y", "Y", "N", "Y", "Y", "Y", "N", "Y"…
#> $ hasTMAccessionNumbers <chr> "Y", "Y", "N", "Y", "Y", "Y", "Y", "Y", "Y", "Y"…
#> $ firstPublicationDate  <chr> "2025-09-08", "2025-12-10", "2026-01-05", "2025-…
#> $ firstIndexDate        <chr> "2025-09-12", "2026-01-02", "2026-01-06", "2025-…
#> $ issue                 <chr> "1", "12", "2", "5", "7", "4", "5", "1", "3", "1…
#> $ ISSN.1                <chr> "00063223", "22279059", "00278424", "01634453", …
#> $ ISSN.2                <chr> "18732402;", "", "10916490;", "15322742;", "1805…
dplyr::glimpse(pub_data$journals)
#> Rows: 23
#> Columns: 28
#> $ Rank                      <int> 115, 306, 349, 522, 626, 1023, 1213, 1215, 1…
#> $ Sourceid                  <dbl> 17978, 19700182758, 3600148102, 14308, 21121…
#> $ Title                     <chr> "Neuron", "Nature Communications", "Alzheime…
#> $ Type                      <chr> "journal", "journal", "journal", "journal", …
#> $ Issn                      <chr> "10974199, 08966273", "20411723", "15525279,…
#> $ Publisher                 <chr> "Cell Press", "Nature Research", "John Wiley…
#> $ Open.Access               <chr> "No", "Yes", "No", "No", "Yes", "Yes", "Yes"…
#> $ Open.Access.Diamond       <chr> "No", "No", "No", "No", "No", "No", "No", "N…
#> $ SJR                       <dbl> 8.564, 4.904, 4.530, 3.611, 3.283, 2.425, 2.…
#> $ SJR.Best.Quartile         <chr> "Q1", "Q1", "Q1", "Q1", "Q1", "Q1", "Q1", "Q…
#> $ H.index                   <int> 569, 634, 194, 380, 929, 150, 76, 152, 196, …
#> $ Total.Docs...2025.        <int> 348, 11528, 1244, 332, 4305, 532, 473, 289, …
#> $ Total.Docs...3years.      <int> 1058, 26313, 1938, 859, 11040, 1395, 699, 10…
#> $ Total.Refs.               <int> 27520, 755955, 72380, 19345, 236204, 38250, …
#> $ Total.Citations..3years.  <int> 12733, 452297, 17963, 5437, 95587, 10614, 77…
#> $ Citable.Docs...3years.    <int> 778, 25888, 1394, 530, 10095, 1384, 690, 394…
#> $ Citations...Doc...2years. <dbl> 11.25, 16.60, 11.93, 5.88, 8.23, 7.37, 11.57…
#> $ Ref....Doc.               <dbl> 79.08, 65.58, 58.18, 58.27, 54.87, 71.90, 76…
#> $ X.Female                  <dbl> 41.08, 37.59, 49.88, 45.28, 36.99, 45.59, 38…
#> $ Overton                   <int> 2, 91, 6, 1, 78, 2, 0, 7, 0, 0, 1, 1, 0, 0, …
#> $ Country                   <chr> "United States", "United Kingdom", "United S…
#> $ Region                    <chr> "Northern America", "Western Europe", "North…
#> $ Coverage                  <chr> "1988-2026", "2010-2026", "2005-2026", "1969…
#> $ Categories                <chr> "Neuroscience (miscellaneous) (Q1)", "Bioche…
#> $ Areas                     <chr> "Neuroscience", "Biochemistry, Genetics and …
#> $ ISSN                      <chr> "10974199; 08966273", "20411723", "15525279;…
#> $ ISSN.1                    <chr> "10974199", "20411723", "15525279", "0006322…
#> $ ISSN.2                    <chr> "08966273", "", "15525260", "18732402", "002…
dplyr::glimpse(pub_data$combined)
#> Rows: 23
#> Columns: 55
#> $ id                        <chr> "40930373", "41463035", "41490486", "4107719…
#> $ source                    <chr> "MED", "MED", "MED", "MED", "MED", "MED", "M…
#> $ pmid                      <chr> "40930373", "41463035", "41490486", "4107719…
#> $ pmcid                     <chr> "PMC12911324", "PMC12730554", "PMC12799112",…
#> $ doi                       <chr> "10.1016/j.biopsych.2025.08.020", "10.3390/b…
#> $ title                     <chr> "RNA in Plasma Extracellular Vesicles of Ado…
#> $ authorString              <chr> "Korobkova L, Thornton ME, Collin MA, Morin …
#> $ journalTitle              <chr> "Biol Psychiatry", "Biomedicines", "Proc Nat…
#> $ journalVolume             <chr> "100", "13", "123", "91", "70", "195", "21",…
#> $ pubYear                   <int> 2026, 2025, 2026, 2025, 2025, 2025, 2025, 20…
#> $ journalIssn               <chr> "00063223; 18732402;", "22279059", "00278424…
#> $ pageInfo                  <chr> "64-75", "3025", "e2426232122", "106626", "2…
#> $ pubType                   <chr> "research-article; journal article", "review…
#> $ isOpenAccess              <chr> "N", "Y", "Y", "Y", "Y", "N", "Y", "Y", "Y",…
#> $ inEPMC                    <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",…
#> $ inPMC                     <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",…
#> $ citedByCount              <dbl> 3, 6, 3, 3, 3, 3, 16, 3, 5, 8, 9, 35, 5, 5, …
#> $ hasReferences             <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",…
#> $ hasTextMinedTerms         <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",…
#> $ hasDbCrossReferences      <chr> "N", "N", "Y", "N", "N", "N", "N", "N", "N",…
#> $ hasPDF                    <chr> "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y",…
#> $ hasBook                   <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N",…
#> $ hasSuppl                  <chr> "Y", "N", "Y", "Y", "N", "Y", "Y", "Y", "N",…
#> $ hasLabsLinks              <chr> "N", "N", "Y", "Y", "N", "Y", "Y", "Y", "N",…
#> $ hasTMAccessionNumbers     <chr> "Y", "Y", "N", "Y", "Y", "Y", "Y", "Y", "Y",…
#> $ firstPublicationDate      <chr> "2025-09-08", "2025-12-10", "2026-01-05", "2…
#> $ firstIndexDate            <chr> "2025-09-12", "2026-01-02", "2026-01-06", "2…
#> $ issue                     <chr> "1", "12", "2", "5", "7", "4", "5", "1", "3"…
#> $ ISSN.1                    <chr> "00063223", "22279059", "00278424", "0163445…
#> $ ISSN.2                    <chr> "18732402;", "", "10916490;", "15322742;", "…
#> $ Rank                      <int> 522, 3816, 626, 1215, 16730, 10559, 349, 306…
#> $ Sourceid                  <dbl> 14308, 21100840442, 21121, 22428, 19494, 234…
#> $ Title                     <chr> "Biological Psychiatry", "Biomedicines", "Pr…
#> $ Type                      <chr> "journal", "journal", "journal", "journal", …
#> $ Issn                      <chr> "00063223, 18732402", "22279059", "10916490,…
#> $ Publisher                 <chr> "Elsevier Inc.", "Multidisciplinary Digital …
#> $ Open.Access               <chr> "No", "Yes", "Yes", "Yes", "Yes", "No", "No"…
#> $ Open.Access.Diamond       <chr> "No", "No", "No", "No", "No", "No", "No", "N…
#> $ SJR                       <dbl> 3.611, 1.165, 3.283, 2.180, 0.313, 0.561, 4.…
#> $ SJR.Best.Quartile         <chr> "Q1", "Q1", "Q1", "Q1", "Q2", "Q1", "Q1", "Q…
#> $ H.index                   <int> 380, 108, 929, 152, 63, 98, 194, 634, 125, 1…
#> $ Total.Docs...2025.        <int> 332, 3096, 4305, 289, 48, 51, 1244, 11528, 1…
#> $ Total.Docs...3years.      <int> 859, 9523, 11040, 1072, 178, 178, 1938, 2631…
#> $ Total.Refs.               <int> 19345, 215639, 236204, 10607, 1744, 3394, 72…
#> $ Total.Citations..3years.  <int> 5437, 46921, 95587, 3945, 219, 405, 17963, 4…
#> $ Citable.Docs...3years.    <int> 530, 9348, 10095, 394, 177, 176, 1394, 25888…
#> $ Citations...Doc...2years. <dbl> 5.88, 4.74, 8.23, 4.41, 1.28, 2.43, 11.93, 1…
#> $ Ref....Doc.               <dbl> 58.27, 69.65, 54.87, 36.70, 36.33, 66.55, 58…
#> $ X.Female                  <dbl> 45.28, 48.07, 36.99, 46.76, 40.17, 48.56, 49…
#> $ Overton                   <int> 1, 5, 78, 7, 0, 0, 6, 91, 0, 0, 1, 2, 6, 0, …
#> $ Country                   <chr> "United States", "Switzerland", "United Stat…
#> $ Region                    <chr> "Northern America", "Western Europe", "North…
#> $ Coverage                  <chr> "1969-2026", "2013-2026", "1917, 1933, 1945-…
#> $ Categories                <chr> "Biological Psychiatry (Q1)", "Biochemistry,…
#> $ Areas                     <chr> "Neuroscience", "Biochemistry, Genetics and …

PubMed IDs for the matched articles:

pmids <- pub_data$articles$pmid
head(pmids)
#> [1] "40930373" "41463035" "41490486" "41077197" "40809946" "40603695"

Summarize abstracts

get_word_cloud() fetches abstracts for a vector of PubMed IDs and writes a PNG word cloud:

wordcloud_path <- "microbiome_psych_wordcloud.png"

get_word_cloud(
  pubmed_ids = pmids,
  plot_name = wordcloud_path
)
#> There are total 23 PMIDs
#> Warning in tm_map.SimpleCorpus(abstTxt, removePunctuation): transformation
#> drops documents
#> Warning in tm_map.SimpleCorpus(text2.corpus, function(x) removeNumbers(x)):
#> transformation drops documents
#> Warning in tm_map.SimpleCorpus(text2.corpus, tolower): transformation drops
#> documents
#> Warning in tm_map.SimpleCorpus(text2.corpus, removeWords,
#> stopwords("english")): transformation drops documents
#> png 
#>   2

knitr::include_graphics(wordcloud_path)

Rank journals

Filter the matched journals to subject areas of interest, then keep titles at or above the median SJR within that subset.

cats <- "Multidisciplinary|Neuroscience|Psychology|Psychiatry"

best_journals <- pub_data$journals |>
  filter(
    Type == "journal",
    SJR >= median(SJR, na.rm = TRUE),
    grepl(cats, Categories)
  ) |>
  select(Title, Rank, Type, SJR, Country, Categories)

best_journals
#> # A tibble: 8 × 6
#>   Title                                      Rank Type    SJR Country Categories
#>   <chr>                                     <int> <chr> <dbl> <chr>   <chr>     
#> 1 Neuron                                      115 jour…  8.56 United… Neuroscie…
#> 2 Nature Communications                       306 jour…  4.90 United… Biochemis…
#> 3 Alzheimer's and Dementia                    349 jour…  4.53 United… Cellular …
#> 4 Biological Psychiatry                       522 jour…  3.61 United… Biologica…
#> 5 Proceedings of the National Academy of S…   626 jour…  3.28 United… Multidisc…
#> 6 Translational Psychiatry                   1023 jour…  2.42 United… Biologica…
#> 7 Research                                   1213 jour…  2.18 United… Multidisc…
#> 8 Current Neuropharmacology                  2068 jour…  1.64 United… Medicine …

Adjust the category pattern and ranking rule to match your field. For InCites data (journal_source = "incities", or aliases incites / jcr), use columns such as Journal.Impact.Factor instead of SJR.

Export results

Save the ranked journal table for review outside R.

export_path <- file.path(tempdir(), "highest_impact_relevant_journals")
save_as_csv(best_journals, filename = export_path)
list.files(tempdir(), pattern = "highest_impact_relevant_journals", full.names = TRUE)
#> [1] "/tmp/RtmpjiK5KM/highest_impact_relevant_journals.csv"

Next steps

  • Tighten or broaden the Europe PMC query and re-run get_publication_data()
  • Compare scimago and incities (InCites / JCR) journal sources for your topic
  • See ?get_publication_data and the function reference for all parameters