Skip to main content

This package search for literature on multiple databases and allow uses to filter them using PRISMA method

Project description

PRISMA Search Literature Review Tool

Overview

Automate and document literature reviews using the PRISMA methodology. Input a research topic or keywords, manage PRISMA data, and output publication lists and methodology text for research papers.

Disclaimer:
Review and verify results before including them in research. Automated outputs assist, not replace, expert judgment.
API Usage Notice:
Use APIs responsibly to avoid rate limiting or loss of access.

Features

  • Flexible keyword input: list or comma-separated string
  • Smart keyword handling: derives keywords from research topic if not provided
  • Enhanced output: multiple CSVs for all and selected publications
  • Collects PRISMA-related values (inclusion/exclusion criteria, databases, date ranges)
  • Outputs:
    • PRISMA method data for literature review
    • CSVs: all_publications_found.csv, selected_publications.csv, output_results.csv
    • JSON file with results
    • PRISMA flow diagram in draw.io format (default or user template)
  • Supports multiple databases: PubMed, CrossRef, arXiv, CORE, SemanticScholar
  • Validates configuration files
  • Retries API requests with exponential backoff
  • Modular, extensible design

PRISMA Flow Diagram Template

PRISMA Flow Diagram

Default template:
src/literature_search/prisma_flow_diagram.drawio
User template: place prisma_flow_diagram.drawio in output directory.
Filled diagram: prisma_flow_diagram_filled.drawio in output directory.

Configuration

Keywords

Provide keywords as a list or comma-separated string:

{
  "keywords": ["machine learning", "deep learning", "neural networks"]
}

or

{
  "keywords": "machine learning, deep learning, neural networks"
}

If missing, keywords are generated from research_topic with a warning.

Sample Configuration

{
  "research_topic": "fundus image dataset",
  "keywords": "medical-imaging, machine-learning, fundus, retinal, ophthalmology",
  "initial_prisma_values": {
    "inclusion_criteria": ["review", "thesis", "journal", "book"],
    "exclusion_criteria": ["non-english", "conference"],
    "databases": ["PubMed", "CrossRef", "arXiv", "CORE", "SemanticScholar"],
    "date_range": "2015-2025"
  }
}

Installation

Install via pip:

pip install literature_search

Or from wheel:

pip install dist/literature_search-*.whl

Usage

Console Script

Run from anywhere:

literature-search --config sample_input.json --logic OR --page_size 100 --output_dir output

Arguments:

  • --config: Path to config JSON (default: sample_input.json)
  • --logic: Keyword logic ('AND' or 'OR', default: OR)
  • --page_size: Results per database (default: 100)
  • --output_dir: Output directory (default: output)

Programmatic Usage

Import and use in Python:

from literature_search.config_loader import load_config
from literature_search.keywords import get_keywords
from literature_search.api_clients import (
    get_publications_europe_pmc,
    get_publications_crossref,
    get_publications_arxiv,
    get_publications_core,
    get_publications_semanticscholar
)
from literature_search.prisma_logs import output_prisma_results, create_prisma_drawio_diagram

config = load_config('sample_input.json')
keywords = get_keywords(config.get('research_topic', ''))
publications = get_publications_europe_pmc(keywords)
output_prisma_results(publications, criteria_counts, total_records, output_dir='output')
create_prisma_drawio_diagram(criteria_counts, total_records, output_dir='output')

Output Files

  • all_publications_found.csv: All publications with inclusion/exclusion info
  • selected_publications.csv: Publications meeting inclusion criteria
  • output_results.csv: All publications with inclusion status
  • results.json: Complete results
  • prisma_flow_diagram.drawio: PRISMA flow diagram

Requirements

  • Ubuntu 24.04.2 LTS
  • Python 3.10+
  • Python packages: requests, drawpyo, matplotlib, pytest

Contributing

See .github/copilot-instructions.md for coding standards.

Contribution Guide

  1. Fork and create a feature branch.
  2. Follow PEP 8 and PRISMA methodology.
  3. Write clear commit messages and documentation.
  4. Add tests for new features or fixes.
  5. Submit a pull request.

Package Publication

The package is automatically published to PyPI when:

  1. Changes are merged to the main branch, AND
  2. The commit message starts with [release]

For example: [release] Version 1.0.0 with new features

The publication uses PyPI OIDC (OpenID Connect) for secure authentication without requiring API tokens.

License

GPL-3

Future Work

  • Add more database APIs
  • AI-based abstract inclusion/exclusion

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

literature_search-0.0.2.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

literature_search-0.0.2-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file literature_search-0.0.2.tar.gz.

File metadata

  • Download URL: literature_search-0.0.2.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for literature_search-0.0.2.tar.gz
Algorithm Hash digest
SHA256 26e2c0af8b877236200b8b29259273c9dd535c56dc88cce6f4ee4cea7d1dd47b
MD5 7bd21ba232e8a687a6bc92d0e6c069ca
BLAKE2b-256 751fb8e9f45672dc669255f31aa3bd79b0ca4e3941b812445556bfcda1e0b264

See more details on using hashes here.

Provenance

The following attestation bundles were made for literature_search-0.0.2.tar.gz:

Publisher: build.yml on shanakaprageeth/literature_search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file literature_search-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for literature_search-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 588274e800139e998e98e48f8c122e69376c0487a62e505e51c06b22bc10c6a6
MD5 3fac52e07fcaa4351fbc336636692431
BLAKE2b-256 b898ed807ccb2a52c5acd092c465d320bba7f18d04c04393d4f690e6e18446ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for literature_search-0.0.2-py3-none-any.whl:

Publisher: build.yml on shanakaprageeth/literature_search

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page