Versions Compared

Key

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

A View view is a type of Synapse Tabletable. Views display rows and columns of information, and they can be shared and queried just like a Tabletable. Unlike Tables, Views do not store data. Instead, Views tables, views are essentially queries of other data already in Synapse. They allow you to see Filesgroups of files, Tablestables, Projectsprojects, or Submissions submissions and any associated metadata about those objects at a glance. You can define the scope of a View to include the items that you want to group togetherannotations about those items.

Annotations are an essential component to building a view. Annotations are labels that you apply to your data, stored as key-value pairs in Synapse.

(plus) Find more information on annotating your data at /wiki/spaces/DOCS/pages/2667708522.

You can use annotations to select specific subsets of your data across many projects or folders and group things together in one view.

You can use a View view to:

  • Search and query many Projectsfiles, Files tables,  Submissionsprojects, and Tables and submissions at once

  • View and edit File file or Table metadata table annotations in bulk

  • Group or link  Fileslink files, Tables tables, Projectprojects, or Submissions submissions together by their annotations

You can create a View that contains Files, Tables, Projects, or Submissions. A File View lists all Files or Tables within one or more Folders or Projects. A Project View lists all Projects you’ve added to the view. A Submission View lists all Submissions within one or multiple Evaluation Queues.

Creating Views

You can create Views This guide explains how to create views from the web client to organize and group content within Synapse. Instructions for creating Views views using the programmatic clients can be found in the Python docs and in the R docs.

...

Creating a File View

A file view lists all files or tables within one or more folders or projects. To create a File View, select the Project file view, navigate to the project where you would like to create the Viewview. The Project project you choose does not have to contain the items you are including in your Viewfile view. Navigate to into the Tables tab and select Add File View in from the Tables Tools menu. You will select the files of interest by defining the scope, which is the Projectproject(s) and Folders folders that contain your files. File Views views can also contain Tables tables or Foldersfolders; you can choose which kinds of items you would like to include during this the setup process. The scope of a File View can have a maximum of 20,000 folders or sub-folders.

...

Creating a Project View

A project view lists all projects you’ve added to the view. To create a Project Viewproject view, select the Project project in which you would like to create the view. Navigate into the Tables tab and select Add Project View from the Tables Tools menu. You will select the projects of interest by defining the scope as above for file views. The only notable difference between creating a Project View project view and a File View file view is that for project views, there is a 1:1 relationship between the projects you select in your scope and the projects that are shown in the view. The scope of a Project View can have a maximum of 20,000 Projects.

Create a Submission View

To create a Submission View, select the Project in which

View Limits

File and Project views are limited in the count of objects in scope.

  • File views can have a maximum of 35,000 containers in scope.

  • Project/Folder views can have a maximum of 10,000 child objects.

For example: A single view for a project may have 35,000 folders, with 10,000 files in each folder for a total of 350,000,000 child objects.

Creating a Submission View

A submission view lists all submissions within one or multiple evaluation queues. To create a submission view, navigate to the project where you would like to create the view. The Project project you choose does not have to contain the submissions or the evaluation queues that are included in the view. Navigate to the Tables tab and select Add Submission View in the Tables Tools menu. The submissions that are included in the View view are defined by its scope, which is the list of Evaluation Queues evaluation queues containing the submissions. For more information, read about how to use Submission Views with Evaluation Queuessubmission views with evaluation queues. The scope of a View submission view can have a maximum of 20,000 evaluation queues.

Updating the Scope or Content of a View

Views can be edited to change the scope or what types of content are The scope of a view defines what items are grouped together to appear in the view. For example, you can set the scope to be multiple projects or a small number of folders. You can change the scope to edit the types of content displayed. Navigate to the View view and then select Show Scope of View in the Tools menu. Click Edit Scope to view and change your View view preferences. Once you click Save, Synapse may take a few moments to rebuild the updated Viewview.

...

Querying a View

A view can be queried like any other Table table in Synapse. See Tables

(plus) See /wiki/spaces/DOCS/pages/2667642897 for more examplesinformation.

Info

Note: Currently, a View is updated only after a query is run against it. If your query results appear to be stale, you will need to run your query again to see the expected updates.

Using Simple Search

Views are in Simple Search mode by default. You can filter for Projects or Files of interest by using the facet menu on the left. You can toggle between simple and advanced search using the Show advanced search/Show simple search link.

...

Using Advanced Search

In advanced search, you can use a SQL-like query to search for items in that view. In the example below, we’re selecting for all files that have a Cell Type of “PSC”.

...

Using Programmatic Clients

Like Tables, Views can also be queried directly from the programmatic clients. For example, to query for all contents of syn12345678:

Command Line

Code Block
synapse query 'SELECT * FROM syn12345678'

Python

Code Block
languagepy
query = syn.tableQuery('SELECT * FROM syn12345678')

R

Code Block
languager
query <- synTableQuery('SELECT * FROM syn12345678')

...

Inserting a View into a Wiki

Views can also be embedded in a Wikiwiki. You can embed the entire View view or a subset of it.

Navigate to a Wiki wiki and click the Wiki Tools menu. Select Edit Project Wiki. In the Wiki wiki editing window, select the Insert tab and then Table: Query on a Synapse Table/View. To embed the entire View view into the Wiki wiki enter SELECT * FROM syn12345678 in the resulting pop-up window, replacing syn12345678 with the synID for your view.

To embed a subset of the File View, like the advanced search query in the previous example, enter a view, use the WHERE clause to select certain rows. For example, entering SELECT * FROM syn12345678 WHERE Cell_Type = ‘PSC’.

...

embeds only rows where the value PSC is entered in the column for cell type. Save the query to embed the view.

...

...

Updating Annotations in Bulk Using a View

Views can be used to update annotations for many Files files or Tables tables at once.

(plus) To add new annotations, see the Annotations article. To update other metadata in bulk, such as Provenance, see the Bulk Processing article /wiki/spaces/DOCS/pages/2667708522.

For example, if you would like to use the Python client to update the annotation “dogSays:bark” to “dogSays:woof” in for every file in a File View file view with the synID syn12345678, you can use:

py
Code Block
language
from synapseclient import Table

foo = syn.tableQuery('select * from syn456')

bar = foo.asDataFrame()

# add in annotation as a column
bar['dogSays'] = 'woof'

# store the fileview with the new annotation in Synapse
fv = syn.store(synapseclient.Table(foo.tableId, bar))


See Also

Annotations and QueriesTablesWikis

...

Versioning a View

You can create a version history for any view in Synapse. Versioning helps you keep a record of what changes you made to the view and when you made them.

(plus) For more information on versioning a view, see /wiki/spaces/DOCS/pages/2667675758.