Skip to content

How to Host Your Data on Zenodo

Zenodo is excellent for archiving and sharing scientific datasets with a DOI.

While you can manually upload your data following Zenodo's instructions, this guide shows how to use CartLoader to upload your data to Zenodo in a more automated way.

Multi-Sample Sessions Not Supported on Zenodo

Zenodo deposits only support a flat file directory structure and do not preserve nested subfolder hierarchies. Because multi-sample cohort sessions require nested subdirectories for individual sample slides and master multi-catalog.yaml manifests, Zenodo cannot be used to host multi-sample sessions.

To host data for multi-sample cohort sessions, please use AWS S3 or a local/remote HTTP server.

1. Set up Zenodo

To use CartLoader to upload your data to Zenodo, you will need to generate a Zenodo Access Token.

  • 1) Register and log in to Zenodo.
  • 2) Go to Token Creation Page. Define token name and scopes, and click create to generate one.
  • 3) Copy the token and save it in your server or local machine.

2. Upload Data and Fill Metadata

CartLoader has an upload_zenodo function to upload data to Zenodo.

2.1 Upload Data to a New Deposit

Below is an example showing how to use cartloader upload_zenodo to upload your data to Zenodo, which automatically creates a new deposit and fills in the metadata.

1
2
3
4
5
6
7
cartloader upload_zenodo \
    --zenodo-token /path/to/YOUR_ACCESS_TOKEN \
    --upload-method catalog \
    --in-dir /path/to/your/data \
    --title "Your Dataset Title" \
    --creators "Your Name" \
    --description "Your Dataset Description"

2.2 Upload Data to an Existing Deposit

It also supports uploading files to an existing deposit. If the deposit is published, it will create a new version of the deposit and upload the files to the new version.

1
2
3
4
5
6
7
zenodo_deposition_id=DEPOSITION_ID                # replace with your deposition ID (published IDs get a new draft automatically)

cartloader upload_zenodo \
    --upload-method catalog \
    --in-dir /path/to/your/data \
    --zenodo-token /path/to/YOUR_ACCESS_TOKEN \
    --zenodo-deposition-id ${zenodo_deposition_id}

3. Publish

Go to the Zenodo website, click My dashboard, and open the deposit you just created. Manually confirm the metadata and fill in any missing information.

If all look good, click Publish to make the dataset public and mint a DOI.

4. Get the Entry Point URL

Once published, the entry point of your dataset is the YAML file that contains metadata about your dataset, which typically has the name catalog.yaml.

For Zenodo, the URL of the catalog file follows this structure:

1
2
# Replace `<RECORD_ID>` with your actual deposit ID and `<catalog_filename>` with the name of your catalog file. 
https://zenodo.org/records/<RECORD_ID>/files/<catalog_filename> 

How to find the Record ID and construct your Catalog URL?

The Record ID is the unique number found at the end of your deposit's URL.

1
2
3
https://zenodo.org/deposit/1234567
                                                         This is the deposition ID

For example, if your deposit page is https://zenodo.org/deposit/18090834, the Record ID is 18090834. Therefore, the Catalog URL to load into CartoScope would be:

```bash https://zenodo.org/records/18090834/files/catalog.yaml

```

Use Folder URL

If your metadata file is named as catalog.yaml, you can also use the URL of the deposit as entry point. For example:

1
https://zenodo.org/records/18090834/