A Python client for interacting with the ClinicalTrials.gov API v2
Project description
Clinical Trials API Client
A Python client for interacting with the ClinicalTrials.gov API v2. This library provides an easy-to-use interface for fetching and analyzing clinical trial data.
Installation
You can install the package via pip:
pip install pyctrials
Quick Start
from pyctrials import ClinicalTrialsAPI
# Initialize the client
client = ClinicalTrialsAPI()
# Fetch trials for a specific condition
trials = client.fetch_trials("Pompe Disease")
# Display results
print(f"Found {len(trials)} trials")
print(trials[['nct_id', 'brief_title', 'overall_status']].head())
Features
- Easy-to-use interface for ClinicalTrials.gov API
- Automatic pagination handling
- Retry mechanism for failed requests
- Data parsing and cleanup
- DataFrame-based output for easy analysis
- Comprehensive trial information including:
- Trial identification
- Status information
- Sponsor details
- Study design
- Location information
- And more...
Documentation
ClinicalTrialsAPI
The main class for interacting with the API.
client = ClinicalTrialsAPI(max_retries=5, retry_delay=5)
Parameters:
max_retries(int): Maximum number of retry attempts for failed requestsretry_delay(int): Delay between retry attempts in seconds
Methods
fetch_trials()
trials = client.fetch_trials(
condition="Pompe Disease",
status="RECRUITING",
page_size=10
)
Parameters: other parameters will follow
condition(str): Medical condition to search forstatus(str): Trial status filter (default: 'RECRUITING') (ACTIVE_NOT_RECRUITING ┃ COMPLETED ┃ ENROLLING_BY_INVITATION ┃ NOT_YET_RECRUITING ┃ RECRUITING ┃ SUSPENDED ┃ TERMINATED ┃ WITHDRAWN ┃ AVAILABLE ┃ NO_LONGER_AVAILABLE ┃ TEMPORARILY_NOT_AVAILABLE ┃ APPROVED_FOR_MARKETING ┃ WITHHELD ┃ UNKNOWN) --> visit https://clinicaltrials.gov/data-api/api#get-/studies for more infopage_size(int): Number of results per page (default: 10)
Returns:
- pandas.DataFrame containing the trial data
Examples
Basic Usage
from pyctrials import ClinicalTrialsAPI
# Initialize client
client = ClinicalTrialsAPI()
# Fetch trials
trials = client.fetch_trials("Spinal Muscular Atrophy")
# Show unique sponsors
print(trials['sponsor'].unique())
# Get trials by phase
phase_counts = trials['phase'].value_counts()
print(phase_counts)
Error Handling
try:
trials = client.fetch_trials("Rare Disease")
except Exception as e:
print(f"An error occurred: {e}")
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Thanks to ClinicalTrials.gov for providing the API
- Built with Python, pandas, and requests
Citation
If you use this package in your research, please cite:
@software{pyctrials,
author = {Anass Tinakoua},
title = {Clinical Trials API Client},
year = {2024},
publisher = {GitHub},
url = {https://github.com/atinak/pyctrials}
}
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
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 pyctrials-0.1.11.tar.gz.
File metadata
- Download URL: pyctrials-0.1.11.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8724764d61916b17aa0cc8e6903001d277ef64ada912b197727e62b734c92223
|
|
| MD5 |
fee80487d3db1addd272520e4daacfe4
|
|
| BLAKE2b-256 |
fd00bc895db5142179314c15cb635dabd311b3d92daf128fabdb2f42088753c4
|
File details
Details for the file pyctrials-0.1.11-py3-none-any.whl.
File metadata
- Download URL: pyctrials-0.1.11-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3675b86d3ab2ca4c38764d59e61e189599504e0272f79c4cb5e4524f6417b6c9
|
|
| MD5 |
50d1e7cc0f8f44e6998e7d21e9e8f899
|
|
| BLAKE2b-256 |
7e7e55d5ea877d617d9f4ceebe2e272a104b0db785bff8f6a785345718c4f0fa
|