APICURON Client
An unofficial client for interacting with the APICURON curation metadatabase.
💪 Getting Started
The following example shows how you can prepare a submission of a new resource
to APICURON. Because apicuron_client
uses PyDantic under the hood, the JSON
is validated and automatically converted into programmatic models. The
Description.update_remote()
function takes care of interacting with the API
and loading the APICURON_TOKEN
from the environment or a config file with
pystow
.
from apicuron_client import Description
payload = {
"resource_id": "Biomappings",
"resource_name": "Biomappings",
"resource_uri": "https://biomappings.github.io/biomappings/",
"resource_url": "https://biomappings.github.io/biomappings/",
"resource_long_name": "Biomappings",
"resource_description": "Community curated and predicted equivalences and related mappings between named biological entities that are not available from primary sources.",
"terms_def": [
{
"activity_term": "novel_curation",
"activity_name": "Curated novel mapping",
"activity_category": "generation",
"score": 50,
"description": "Curated a novel mapping between two entities"
},
{
"activity_term": "validate_prediction",
"activity_name": "Validate predicted mapping",
"activity_category": "generation",
"score": 50,
"description": "Affirmed the correctness of a predicted mapping"
},
{
"activity_term": "invalidate_prediction",
"activity_name": "Invalidate predicted mapping",
"activity_category": "generation",
"score": 50,
"description": "Affirmed the incorrectness of a predicted mapping"
}
],
"achievements_def": [
{
"category": "1",
"name": "Newbie curator",
"count_threshold": 10,
"type": "badge",
"list_terms": [
"novel_curation",
"validate_prediction",
"invalidate_prediction"
],
"color_code": "#055701"
}
]
}
description = Description(**payload)
description.update_remote()
The results can then be seen on the APICURON website at https://apicuron.org/database?resource_uri=https:%2F%2Fbiomappings.github.io%2Fbiomappings%2F.
🚀 Installation
The most recent release can be installed from PyPI with:
$ pip install apicuron_client
The most recent code and data can be installed directly from GitHub with:
$ pip install git+https://github.com/cthoyt/apicuron-client.git
To install in development mode, use the following:
$ git clone git+https://github.com/cthoyt/apicuron-client.git
$ cd apicuron-client
$ pip install -e .
👐 Contributing
Contributions, whether filing an issue, making a pull request, or forking, are appreciated. See CONTRIBUTING.rst for more information on getting involved.
👀 Attribution
⚖️ License
The code in this package is licensed under the MIT License.
📖 Citation
This project isn't officially from the APICURON team, but if you like it, please cite their paper:
@article{Hatos2021,
author = {Hatos, Andr{\'{a}}s and Quaglia, Federica and Piovesan, Damiano and Tosatto, Silvio C E},
doi = {10.1093/database/baab019},
issn = {1758-0463},
journal = {Database},
month = {apr},
title = {{APICURON: a database to credit and acknowledge the work of biocurators}},
url = {https://academic.oup.com/database/article/doi/10.1093/database/baab019/6244733},
volume = {2021},
year = {2021}
}
Acknowledgements
🍪 Cookiecutter
This package was created with @audreyfeldroy's cookiecutter package using @cthoyt's cookiecutter-snekpack template.
🛠️ For Developers
The final section of the README is for if you want to get involved by making a code contribution.
❓ Testing
After cloning the repository and installing tox
with pip install tox
, the unit tests in the tests/
folder can be
run reproducibly with:
$ tox
Additionally, these tests are automatically re-run with each commit in a GitHub Action.
📦 Making a Release
After installing the package in development mode and installing
tox
with pip install tox
, the commands for making a new release are contained within the finish
environment
in tox.ini
. Run the following from the shell:
$ tox -e finish
This script does the following:
- Uses BumpVersion to switch the version number in the
setup.cfg
andsrc/apicuron_client/version.py
to not have the-dev
suffix - Packages the code in both a tar archive and a wheel
- Uploads to PyPI using
twine
. Be sure to have a.pypirc
file configured to avoid the need for manual input at this step - Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
- Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can
use
tox -e bumpversion minor
after.