A tool for collecting citation data from PubMed and analyzing author relationships
Project description
Midterm Project
This repo contains our Python package project
Project Proposal:
Team Commit To The Git (Armelle Duston, Brandon Spiegel and Shanta Murthy) The proposal below summarizes is an outline addressing each component of the rubric
Potential data sources
- We plan to focus on sources with distinct “entries” containing content and metadata that enables forming a network structure and conducting analysis using the content within entries
- This may be sites hosting academic journal articles such as PubMed and ArXiv, or clinical trial information such as clinicaltrials.gov
Data Scaffolding:
- The above sources have public API’s, so data access will occur in a few steps:
- a user interface will enable users to fetch data on the fly.
- fetching data will be performed by translating user inputs into API requests
- data will be housed on a users local pc (client-side)
- Guardrails will be used to rate-limit user requests
- Separation of concerns between the user interface and the creation of API requests will allow us to limit access to a subset of the data source (eg only articles published in the last X years, or only articles in English)
Data Navigation:
- One element of interest is to enable users to calculate the “degrees of separation” between any pair of authors by traversing through co-authors on their respective publications. This amounts to calculating the shortest path between two nodes on a graph and will require an algorithm to navigate the data
- We are also considering different ways of “clustering” authors based on similarity metrics, which may include dynamic programming or other algorithms as explored in recent homeworks
Data Analysis:
- The core analysis task here is an implementation of spectral clustering to group authors into k clusters based on the "closeness" of their coauthorships where k is user-defined This is done in a few key steps: First, create the adjacency and degree matrices and derive the laplacian based on coauthorships. Second, get the smallest k eigenvalues and eigenvectors (skipping over the smallest). Third use a k-means clustering algorithm to form clusters. The key computational element includes use of scipy sparse matrices and scipy sparse eigenvector/value functions to speed up computation, and a timeout in the case of slow convergence. A dictionary from authors to their assigned cluster is returned for use in downstream visualizations.
Interactive Visualization:
- The above “degrees of separation” idea can be displayed using packages to visualize network data
- Additionally, we can create an interactive map to enable users to learn about the type of research published across different institutions, and overlay networks graphs based on how those institutions are connected as well as show how things change over time
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pubmed_citation-0.1.1.tar.gz
(17.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pubmed_citation-0.1.1.tar.gz.
File metadata
- Download URL: pubmed_citation-0.1.1.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eaf2143e7ba5658bfe19fec38086129e60ea13e51cbaab54e2ef72277c6c593
|
|
| MD5 |
15a85c220623bc29e50d88e9cc1410b3
|
|
| BLAKE2b-256 |
3fc152be88d66ca1731ef3815f2757662c8da6064292983fe1db6e7640775e37
|
File details
Details for the file pubmed_citation-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pubmed_citation-0.1.1-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33691d416247213cae3351cdcbaadc2170b8e28e24efc3b2cfb07366eb6df61a
|
|
| MD5 |
a6d125557f00ee3f6c1accc6157aa219
|
|
| BLAKE2b-256 |
060283e242aaa34b1e2fbf3a82ad73252af03f299375a836e4f1871e1cdcbbe2
|