An Evaluation is essentially a container that organizes and manages the submission, assessment, and scoring of data, models, or other research artifacts. It allows teams to set up challenges where participants contribute their work, and those contributions can be systematically reviewed or scored.
This tutorial will walk you through the basics of working with Evaluations using the Synapse Python client.
In this tutorial you will:
- Create and update an Evaluation on Synapse
- Update the ACL (Access Control List) of an Evaluation on Synapse
- Retrieve and delete all Evaluations from a given Project
- You have completed the Project tutorial, or have an existing Project on Synapse to work from
- You have a Synapse user or team ID to share the evaluation with
In this first part, we'll be showing you how to interact with an Evaluation object as well as introducing you to its two core functionalities store() and get().
--8<-- "docs/tutorials/python/tutorial_scripts/evaluation.py:create_and_update"Like Synapse entities, Evaluations have ACLs that can be used to control who has access to your evaluations and what level of access they have. Updating the ACL of an Evaluation object is slightly different from updating other Evaluation components, because the ACL is not an attribute of the Evaluation object. Let's see an example of how this looks:
--8<-- "docs/tutorials/python/tutorial_scripts/evaluation.py:update_acl"You can also remove principals from an ACL by simply feeding update_acl an empty list for the access_type argument, like so:
--8<-- "docs/tutorials/python/tutorial_scripts/evaluation.py:remove_from_acl"Now we will show how you can retrieve lists of Evaluation objects, rather than retrieving them one-by-one with get(). This is a powerful tool if you want to perform the same action on all the evaluations in a given project, for example, like what we're about to do here:
--8<-- "docs/tutorials/python/tutorial_scripts/evaluation.py:retrieve_and_delete"Click to show me
--8<-- "docs/tutorials/python/tutorial_scripts/evaluation.py"- [Evaluation][synapseclient.models.Evaluation]
- [Project][synapseclient.models.Project]
- [syn.login][synapseclient.Synapse.login]