pridepy
pridepy is a Python client and CLI for the PRIDE Archive API.
You can:
- download public and private PRIDE files
- download public MassIVE (
MSV...), JPOST (JPST...), and iProX (IPX...) datasets directly. MassIVE goes through FTPS atmassive-ftp.ucsd.edu, with an automatic HTTPS fallback (via the GNPS2 file index and themassive.ucsd.eduProteoSAFe endpoint) for networks that block FTP/FTPS; JPOST uses the JSON PROXI endpoint atrepository.jpostdb.orgfor listings andftp.jpostdb.orgfor transfers; iProX fetches the dataset's ProteomeXchange XML fromdownload.iprox.organd downloads files over anonymous HTTP - download by category (
RAW,SEARCH,RESULT, etc.) - stream project and file metadata
- search projects by keyword and filters
- download raw files from ProteomeXchange XML metadata
The downloader supports ftp, aspera, s3, and globus.
By default it starts with FTP, falls back across the remaining protocols when needed, and validates downloaded files (non-empty, and checksum validation when enabled).
Requirements
- Python
>=3.9
Installation
Option 1: Install from PyPI with uv (recommended)
Install as a CLI tool:
uv tool install pridepy
pridepy --help
Or run without installing globally:
uvx pridepy --help
Option 2: Install from PyPI with pip
pip install --upgrade pridepy
pridepy --help
Option 3: Install the latest code directly from GitHub
To get features that have not been released to PyPI yet, install straight from a
branch. master holds the latest stable code; dev holds the newest (and
potentially unstable) development work.
With uv:
# Latest stable (master)
uv tool install "git+https://github.com/PRIDE-Archive/pridepy@master"
# Bleeding edge (dev)
uv tool install "git+https://github.com/PRIDE-Archive/pridepy@dev"
Or with pip:
# Latest stable (master)
pip install --upgrade "git+https://github.com/PRIDE-Archive/pridepy@master"
# Bleeding edge (dev)
pip install --upgrade "git+https://github.com/PRIDE-Archive/pridepy@dev"
You can pin to any branch, tag, or commit by changing the part after @ (e.g.
@v0.0.16 or @<commit-sha>).
Option 4: Install from source (development)
git clone https://github.com/PRIDE-Archive/pridepy
cd pridepy
uv sync --extra dev
uv run pridepy --help
Usage
See the usage guide for detailed instructions and examples: downloading data (PRIDE, MassIVE, JPOST, iProX, ProteomeXchange), category and manifest downloads, private files, streaming metadata, searching projects, and the Python API.
pridepy --help
| Command | Purpose |
|---|---|
download-all-public-raw-files |
Download every public RAW file of a dataset |
download-all-public-category-files |
Download files of one or more categories (RAW, SEARCH, …) |
download-file-by-name |
Download a single file (public or private) |
download-files-by-list |
Download a named subset of files from a manifest/CSV |
download-files-by-url |
Download files from raw http/https/ftp URLs |
download-px-raw-files |
Download RAW files resolved from a ProteomeXchange accession |
list-private-files |
List files of a private project (needs credentials) |
stream-files-metadata |
Stream file metadata (one project or all) to JSON |
stream-projects-metadata |
Stream all project metadata to JSON |
search-projects-by-keywords-and-filters |
Search projects by keyword and filters |
Quick examples:
# Download all public RAW files of a dataset (any repository)
pridepy download-all-public-raw-files -a PXD008644 -o ./downloads/PXD008644 --checksum-check
# Download a ProteomeXchange dataset by its PXD accession
pridepy download-px-raw-files -a PXD039236 -o ./downloads/PXD039236
# Download a native MassIVE / JPOST / iProX dataset
pridepy download-all-public-raw-files -a MSV000082297 -o ./downloads/MSV000082297
Full option tables and more examples are in docs/usage.md.
Development and Release (uv)
Run tests:
uv run pytest
Lint:
uv run flake8 .
Build distributions:
uv build
pridepy is published via GitHub Actions (.github/workflows/python-publish.yml) using uv build and a PyPI API token secret (PYPI_API_TOKEN).
White Paper
A white paper is available in paper/paper.md.
Contributing
- Fork the repository
- Create a branch (
git checkout -b feature/my-change) - Install dev dependencies (
uv sync --extra dev) - Run tests and lint (
uv run pytest,uv run flake8 .) - Commit and push your branch
- Open a pull request
Citation
Kamatchinathan, S., Hewapathirana, S., Bandla, C., Insua, S., Vizcaíno, J. A., & Perez-Riverol, Y. (2025). pridepy: A Python package to download and search data from PRIDE database. Journal of Open Source Software, 10(107), 7563. doi:10.21105/joss.07563
Metadata
Release files for pridepy 0.0.16
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pridepy-0.0.16.tar.gz | 38.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pridepy-0.0.16-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 76.8 MB
Release files / pridepy-0.0.16.tar.gz
| Download URL | pridepy-0.0.16.tar.gz |
|---|---|
| Size | 38.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8936a18ae14f67c547214cbdb4aacc72ff6d775e58f8bc99fbbb828c2aa70636
|
|
BLAKE2b-256 checksum How to use checksums |
9624ddd7d8c47c1ebbec68197ebbc6cdb7b7eea3e09597efc64f7639b68c5c50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / pridepy-0.0.16-py3-none-any.whl
| Download URL | pridepy-0.0.16-py3-none-any.whl |
|---|---|
| Size | 38.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1695d383ae8e1087968836efa9dfc18013e404bd1dd9ef486f6024a9f6db0f34
|
|
BLAKE2b-256 checksum How to use checksums |
2486d3c558d09bc72a23e07c0d83482b795681fc0098f723e377a808074d804a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|