Cheat Sheet¶
A quick-reference summary of the Python API. For CLI commands, see the CLI Reference.
Need more Synapse functionality?
cnb-tools covers challenge-specific operations. For broader interactions with Synapse — uploading files, managing permissions on arbitrary entities, querying tables, etc. — use the Synapse Python Client directly. cnb-tools installs it as a dependency, so it is always available.
Python API¶
Challenge¶
from cnb_tools import get_challenge, create_challenge, delete_challenge, get_registered_teams
get_challenge(project_id) # get challenge metadata
create_challenge(project_id, team_id) # register project as a challenge
delete_challenge(challenge_id) # delete a challenge
get_registered_teams(challenge_id) # list all registered teams
Queue¶
from cnb_tools import get_evaluation, get_evaluation_ids_by_project, get_evaluations_by_project, create_evaluation, create_evaluation_round
get_evaluation(evaluation_id) # get queue details
get_evaluation_ids_by_project(project_id) # list all queue IDs for a project
get_evaluations_by_project(project_id) # list all queue objects for a project
create_evaluation(name, description, project_id) # create a new queue
create_evaluation_round(evaluation_id, ...) # add a submission round
Submission¶
from cnb_tools import get_submission, delete_submission, download_submission, batch_download_submissions
from cnb_tools import get_submitter_name, get_submission_contributors
get_submission(submission_id) # fetch a submission
get_submitter_name(principal_id) # resolve ID to name
get_submission_contributors(submission_id) # list contributors
download_submission(submission_id, dest) # download a file submission
batch_download_submissions(evaluation_id, dest) # batch-download from a queue
delete_submission(submission_id) # delete a submission
Annotations¶
from cnb_tools import get_submission_status, update_annotations, update_annotations_from_file, update_submission_status
get_submission_status(submission_id) # get current status + annotations
update_annotations(submission_id, {"score": 0.95}) # update annotations from a dict
update_annotations_from_file(submission_id, "scores.json") # update annotations from a JSON file
update_submission_status(submission_id, "SCORED") # update submission status
Validation Toolkit¶
from cnb_tools import validation_toolkit as vtk
vtk.check_missing_keys(truth["id"], pred["id"]) # missing IDs
vtk.check_unknown_keys(truth["id"], pred["id"]) # unknown IDs
vtk.check_duplicate_keys(pred["id"]) # duplicate IDs
vtk.check_nan_values(pred["score"]) # NaN/None values
vtk.check_nan_values(pred["score"], include_inf=True) # also flag inf/-inf
vtk.check_values_range(pred["score"], 0, 1) # values outside [min, max]
vtk.check_binary_values(pred["label"]) # values other than 0 or 1
vtk.check_valid_values(pred["label"], {"a", "b"}) # values outside allowed set
vtk.check_not_constant(pred["score"]) # all-identical predictions