Giter Club home page Giter Club logo

paperfetcher's Introduction

paperfetcher

PyPI version fury.io Build Status Website GitHub license Open Issues

About

Paperfetcher is a Python package to automate handsearching and citation searching (snowballing) for systematic reviews. Paperfetcher works with Python 3.7+.

To learn more about Paperfetcher, visit paperfetcher.github.io.

Usage

To get started, browse the following Getting Started Jupyter notebooks (also in the examples/ directory in this repository):

  1. Getting started with handsearching
  2. Getting started with citation searching

Once you understand the workflow, read the Module Documentation to learn more about paperfetcher's various modules, classes and functions.

Installation

Installation with pip

  1. Install pip
  2. Install paperfetcher using pip:
pip install paperfetcher

Installation from source

  1. Clone this repository
  2. In the repository directory, run
python setup.py install

or, if you have pip installed

pip install .

Running tests (if installed from source)

You can run tests to make sure that paperfetcher is working correctly on your system.

  1. To run integration tests, in the repository directory, run
cd tests/tests_integration
pytest
  1. To run unit tests, in the repository directory, run
cd tests/tests_unit
pytest

The Team

Paperfetcher was developed by Akash Pallath at the University of Pennsylvania and Qiyang Zhang at the Johns Hopkins University.

paperfetcher's People

Contributors

apallath avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

apallath xantocx

paperfetcher's Issues

Update integration tests

  • annrev-conmatphys is now indexed => integration test fails.
  • Fix: update expected sum of results.

Notebook utils

Write notebook utils classes for:

  • handsearch -> DOIDataset -> choose format
  • handsearch -> CitationsDataset (choose fields) -> choose format
  • snowballsearch -> DOIDataset -> choose format

Error in parsing returned results

File "/Users/apallath/opt/miniconda3/lib/python3.7/site-packages/paperfetcher/handsearch.py", line 248, in __call__
    self.results += (batch['items'])
TypeError: list indices must be integers or slices, not str

Occurs infrequently in large handsearches. TODO: generate a minimal reproducible example.

Distinguishing between forward citation results between multiple DOIs

In the situation where I run multiple DOIs on a forward citation search with a RIS output, there is no way to determine which citation results belong to which DOI. Could be solved by including the Initially search DOI in the RIS output data for each of the forward citations. Thanks!

Examples

Examples for:

  • handsearch with no keywords (augment current example notebook)
  • snowballsearch
  • notebook utils

Possible R version of paperfetcher

Hey - I'm working on evidence synthesis in R, and there's an important gap where paperfetcher sits in the R package ecosystem. I'm the organiser for the Evidence Synthesis Hackathon, and I'd love to suggest paperfetcher as a hackathon project to translate the great work you've done into an R version - would you be keen to collaborate? Thanks so much!

RIS dataset

Implement RIS dataset as a list of dictionaries.
Use CrossRef for content negotiation from DOI to RIS.
Option to add an extra field.
rispy for I/O.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.