The Quilt catalog renders previews of the following file types. Whenever possible, Quilt streams the smallest possible subset of the data needed to generate the preview.
Previews are supported for uncompressed files as well as for gzip (.gz) and bzip2 (.bz2) archives.
Quilt can display any plaintext file format, including the following.
Changed in Quilt Platform version 1.70
Markdown file previews (.md) render using standard GitHub-Flavored Markdown (GFM), a superset of CommonMark. Idiosyncratic Pandoc/PHP-Markdown-Extra shortcuts are no longer supported; author Markdown against the CommonMark + GFM spec for consistent rendering.
The Quilt catalog uses the NGL Viewer library to render structures. By default, v3000 Molfiles are converted to v2000 by the JavaScript client for rendering.
The following file formats are supported:
The Quilt Catalog uses a Lambda
function
to automatically generate thumbnail previews of common image formats
and select microscopy image formats such as .bmp, .gif, .jpg, .jpeg,
.png, .webp, .tif, .tiff (including OME-TIFF), and .czi.
8-bit, 16-bit, 32/64-bit integer (signed or unsigned), and floating-point pixel data are all supported. Quilt reduces multi-dimensional microscopy images to a single 2D preview: channels are laid out as a grid of per-channel previews, Z-stacks are flattened with a maximum-intensity projection, and time-series show their middle timepoint.
Thumbnails are a visual aid, not a faithful reproduction of the original pixel values.
Previews of high-bit-depth and microscopy images are contrast-stretched per image to keep faint, low-contrast detail visible: each grayscale image — and each channel of a multi-channel image — is rescaled from its own range of pixel values, after clipping the most extreme values so a few hot or dead pixels don’t flatten the rest. Color previews are stretched the same way, jointly across their channels so the colors aren’t skewed.
As a result, displayed brightness does not represent absolute pixel intensity: it is not comparable between thumbnails, nor between the channels of a multi-channel montage. Ordinary 8-bit images (such as .jpg files) are already display-ready and are shown unchanged.
The Quilt Catalog supports HTML and JavaScript in preview via iframes. By default, preview iframes do not have IAM permissions and are therefore unable to access private files in S3.
If you wish for your HTML to access data within the enclosing package or bucket
(at the viewer’s level of permissions) and/or use origin-aware Web APIs such as
data storage/cookies, you must opt in to Enable permissive HTML rendering in
Bucket settings. This explicitly allows cross-origin resource
sharing (CORS).
You should only enable this feature for buckets where you implicitly trust the contents of the HTML files.
Depending on the context where the HTML file is rendered (package vs bucket view), the iframe gets the following origin:
Inside a package view with permissive rendering enabled: the origin is the Quilt Package File Server.
Inside a bucket view with permissive rendering enabled: the origin is the AWS S3 bucket endpoint.
With permissive rendering disabled (irrespective of package or bucket
view): the resource is treated as being from a special origin that always
fails the same-origin policy (allow-same-origin iframe sandbox
token
is not set).
An important implication of same-origin policy is that the scripts executed under the same origin share LocalStorage data and cookies.
New in Quilt Platform version 1.59.0 or higher
Enabling Permissive HTML now allows forms and popups to work from iframes.
report.html is a file in a package that includes a publicly available JS
library and a custom embedded script.report.html in a package view generates a new session temporary-session-id./temporary-session-id/report.html path../img.jpg is resolved to /temporary-session-id/img.jpgscript.js is resolved to /temporary-session-id/script.jsallow-same-origin iframe sandbox token is enabled,
the origin is the Quilt Package File Server,
the LocalStorage API is available.report.html is a file in a bucket example-bucket that includes a publicly
available JS library and custom embedded script.report.html in bucket view, it is served directly by S3
via a signed HTTPS URL, e.g.
https://example-bucket.s3.region.amazonaws.com/report.html?versionId=...&X-Amz-...../img.jpg is resolved to /img.jpgscript.js is resolved to /script.jsallow-same-origin iframe sandbox token is enabled,
the origin is the S3 bucket endpoint
(e.g. https://example-bucket.s3.region.amazonaws.com),
the LocalStorage API is available.report.html is a file in a bucket example-bucket that includes a publicly
available JS library and custom embedded script.report.html in any view it is served directly by S3 via a
signed HTTPS URL, e.g.
https://example-bucket.s3.region.amazonaws.com/report.html?versionId=...&X-Amz-...../img.jpg is resolved to /img.jpgscript.js is resolved to /script.jsallow-same-origin iframe sandbox token is disabled,
a virtual unique origin is used (always failing the same-origin policy),
the LocalStorage API is unavailable.