Source code for acore.io.pride
"""Downlaod data from PRIDE database."""
import requests
from .ftp import download_from_ftp
[docs]
def download_PRIDE_data(
pxd_id, file_name, to=".", user="", password="", date_field="publicationDate"
) -> dict:
"""
This function downloads a project file from the PRIDE repository. To see more of the
pride API, have a look at
https://www.ebi.ac.uk/pride/ws/archive/v3/webjars/swagger-ui/index.html
or EBI's commandline tool pridepy
https://github.com/PRIDE-Archive/pridepy
:param str pxd_id: PRIDE project identifier (id. PXD013599).
:param str file_name: name of the file to dowload
:param str to: local directory where the file should be downloaded
:param str user: username to access biomedical database server if required.
:param str password: password to access biomedical database server if required.
:param str date_field: projects deposited in PRIDE are search based on date, either
submissionData or publicationDate (default)
"""
ftp_pride = ( # same as data ["_links"]["datasetFtpUrl"]["href"]
"ftp://ftp.pride.ebi.ac.uk/pride/data/archive/YEAR/MONTH/PXDID/FILE_NAME"
)
url_pride_api = "http://www.ebi.ac.uk/pride/ws/archive/v3/projects/" + pxd_id
data = None
r = requests.get(url_pride_api, timeout=60)
data = r.json()
submission_date = data[date_field]
year, month, _ = submission_date.split("-")
ftp_url = (
ftp_pride.replace("YEAR", year)
.replace("MONTH", month)
.replace("PXDID", pxd_id)
.replace("FILE_NAME", file_name)
)
download_from_ftp(ftp_url, user, password, to, file_name)
return data