Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This guide helps organizers create a space within Synapse to host a crowd-sourced Challenge. Challenges are community competitions designed to crowd-source new computational methods for fundamental questions in systems biology and translational medicine. Learn more about Challenges and see examples of past and current projects by visiting Challenges and Benchmarking.

...

...

If you are not a Sage employee: follow the instructions listed under "Setting up linux environment" to install and run Docker as well as docker-compose onto the compute environment of choice.

...

Script

TODO

Required?

workflow.cwl

Update synapseid to the Synapse ID of the Challenge's goldstandard

yes

Set errors_only to false if an email notification about a valid submission should also be sent

no

Add metrics and scores to private_annotations if they are to be withheld from the participantsParticipants

no

validate.cwl

Update the base image if the validation code is not Python

no

Remove the sample validation code and replace with validation code for the Challenge

yes

score.cwl

Update the base image if the validation code is not Python

no

Remove the sample scoring code and replace with scoring code for the Challenge

yes

...

Script

TODO

Required?

workflow.cwl

Provide the admin user ID or admin team ID for principalid 

(2 steps: set_submitter_folder_permissions, set_admin_folder_permissions)

yes

Update synapseid to the Synapse ID of the Challenge's goldstandard

yes

Set errors_only to false if an email notification about a valid submission should also be sent

(2 steps: email_docker_validation, email_validation)

no

Provide the absolute path to the data directory, denoted as input_dir, to be mounted during the container runs.

yes

Set store to false if log files should be withheld from the participantsParticipants

no

Add metrics and scores to private_annotations if they are to be withheld from the participantsParticipants

no

validate.cwl

Update the base image if the validation code is not Python

no

Remove the sample validation code and replace with validation code for the Challenge

yes

score.cwl

Update the base image if the validation code is not Python

no

Remove the sample scoring code and replace with scoring code for the Challenge

yes

...

Code Block
docker-compose up -d

where -d will make it so the orchestrator is run in the background. This will enable you to log out of the instance at any timewithout terminating the orchestrator.

Info

If validate.cwl/score.cwl is using a Docker image instead of inline code: you must first pull that image onto the instance before starting the orchestrator. Otherwise, the orchestrator will fail, stating that the image cannot be found.

...

If successful, the orchestrator will continuously monitor the Evaluation queues specified by EVALUATION_TEMPLATES for submissions with the status, RECEIVED.  Once it encounters a RECEIVED submission, it will run the workflow as specified by ROOT_TEMPLATE and update the submission status from RECEIVED to EVALUATION_IN_PROGRESS. If an error is encountered during any of the workflow steps, the orchestrator will update the submission status to INVALID and the workflow will stop.  If, instead, the workflow finishes to completion, the orchestrator will update the submission status to ACCEPTED.  Depending on how the workflow is set up (configured by Step 11), participants Participants may periodically be notified by email of their submission's progress.

...

Code Block
docker-compose down

Once you are done making updates, save the file and restart the orchestrator to apply the changes.

...

where Docker and TOIL logs are uploaded to <submitterid> and prediction files are uploaded to <submitterid>_LOCKED. Note that the LOCKED folders will NOT be accessible to the participants Participants – this is to help prevent data leakage.

...

Note

Before proceeding with the launch, contact Sage Governance to ensure that a clickwrap is in-place for Challenge registration. You will need to provide Governance with the Synapse ID to the live Challenge site, as well as the team ID of the Participants team.

Requirements

To launch the Challenge, that is, to copy the Wiki pages of the staging site over to the live site, use synapseutils' copyWiki in a Python script, e.g.

...

When using copyWiki, it is important to specify the destinationSubPageId parameter.  This ID can be found in the URL of the live site, where it is the integer following .../wiki/<some number>.

(warning) Once copyWiki has been used once, DO NOT USE IT AGAIN!! (warning)


Following this action, all changes to the live site should now be synced over with challengeutils' mirrow-wiki. More on updating the Wikis under the Update the Challenge section below.

...

As Challenge Organizers, we recommend creating a Submission View to easily track and monitor submissions as they come in. This table will especially be useful when participants Participants need help with their submissions.

...

3. Click Save. A table of the submissions and their metadata will now be available for viewing and querying. Changes to the information displayed can be edited by clicking on the schema icon, followed by Edit Schema:

...