Skip to main content
Skip table of contents

Managing Custom Metadata at Scale

This use case will combine concepts from Annotating Data With MetadataViewsUploading and Organizing Data Into Projects, Files, and Folders. You will learn how to:

  • Create a manifest

  • Upload 100 files

  • Edit annotations on these files using the Synapse programmatic clients

Annotation Dictionaries

The Sage Bionetworks maintains annotation dictionaries in GitHub. You can use the terms in this repository as a starting point, or you can create your own annotation dictionary.

Batch Upload Files with Annotations

To batch upload files, create a tab-delimited manifest which contains, at minimum, the columns path and parent. You can also add additional annotations as columns in your manifest. For example, your manifest might have the following headers: pathparentspecimenIDassayspeciesplatformsex, and fileFormat.

  • path: the local path to your file 

  • parent: the Synapse ID (in the format syn123456) of the folder or project where your files will be uploaded

  • specimenID: the unique identifier for each of your specimens 

  • assay: the technology used to generate the data in this file (for example, RNASeq, ChIPSeq, wholeGenomeSeq) 

  • species: the species of your sample (for example, Mouse, Rat, Human, Triceratops) 

  • platform: the hardware used to generate the data (for example, HiSeq2500, Affy6.0, HoodDNASequencer) 

  • sex: a label assigned at birth based on biological attributes (for example, male or female)

  • fileFormat: is the type of file (e.g. fastq, R script)

path

parent

specimenID

assay

species

platform

sex

fileFormat

/local/path/to/velociraptor_b.fastq

syn123

blue_1

wholeGenomeSeq

Velociraptor mongoliensis

HoodDNASequencer

female

fastq

/local/path/to/velociraptor_d.fastq

syn123

delta_1

wholeGenomeSeq

Velociraptor mongoliensis

HoodDNASequencer

female

fastq

Save this file in a tab-delimited format called velociraptor_manifest.tsv.

Files can be uploaded all at once with a manifest file. If you would like to do a “dry run” validation of the file before uploading, you can add the parameter dryRun = True to the function syncToSynapse. Note that the dryRun feature checks everything, but does not upload the files.

  • validate the manifest and upload files in the Python client.

  • validate the manifest and upload files in the R client.

Create a File View (web)

Once the files have been uploaded with annotations, you can use a file view to query, facet, and bulk manipulate the files and metadata.

To create your file view:

  1. Navigate to your project.

  2. Go to the tables tab, select Tables Tools in the upper right corner, and click Add File View.

  3. In the resulting pop-up, give the new file view a name.

  4. Select the container (Synapse project or folder) of files, and click Next. In this case, you would want the synID of the parent column in the manifest.

  5. Select the columns you would like to keep. Since we are going to edit the annotations later, make sure you have the column etag listed as one of your columns.

  6. Add All Annotations at the end of the opened window will add all existing annotations.

  7. Click Finish to create the file view.

(plus) For more information on file views, see Views.

Perform a One-Time Annotation Update or Deletion (web)

An annotation for a single file can be modified in the web client view. For example, you can updatespecimenID:delta_1 to specimenID:echo_1.

  1. From your view, select the pencil icon to edit query results.

  2. In the pop-up window, find the single value you want to change and edit the field.

  3. Scroll down to the bottom and click Save to update the file view.

Perform a Bulk Annotation Update or Deletion

A bulk annotation update is required in the case that species:Velociraptor mongoliensis should be modified to Utahraptor ostrommaysorum in all 100 files.

Web

To download the annotation values from the web client:

  1. Navigate to the your file view.

  2. Click the Download Options button to the right of the query bar of the file view.

  3. Click Export Table to download the file view. Be sure to have Include row metadata (Row ID and Row Version) selected when downloading.

Now that you have the file view downloaded, you can edit the values using your preferred tool (Python, R, Excel, or other).

With the changes saved, go back to the file view in your browser.

  1. Click View Tools located at the upper right of the file view.

  2. Select Upload Data to View from the dropdown.

  3. Browse and choose the edited file.

  4. Click Next to preview the uploaded file.

  5. Click Update Table to update the file view and populate the changes to all the files in Synapse.

Programmatic clients

Alternatively, download the file view with the R or Python client, then:

  1. Query for the file view with synTableQuery() or syn.tableQuery(). To delete all the annotations of a key, you have to keep the column in the file view but remove the values.

  2. Update and then store the annotations in the R client or Python client.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.