The design

The design says what each column of the count table is (which sample, its role, its replicate and time point) and what the assay measures. MaveScape drafts the columns from their names; you check them and say what the scores mean in the Experiment view.

Drafting the design

Once a table is open, the workflow strip offers Draft the design. MaveScape reads the column names (input, pre, lib; output, post, sel; rep1; t0, gen3; bin1; tile2), finds shared samples by comparing the columns' values, and sets aside every column it does not use, with the reason. The number of time points tells conditions apart: two assays in one table become two conditions. A time point's name gives the time unit when every one says the same (t_02hrs in hours, day5 in days, gen10 in generations). A lone sample beside a time series or sorted bins (a plasmid library counted beside day 5 and day 11) is no replicate: it is set aside, with the reason, for you to give it a role if it has one.

The Experiment view after drafting the design of GRB2's counts from the column names: six columns mapped to three replicates of an input and an output, and the design in wordsThe Experiment view after drafting the design of GRB2's counts from the column names: six columns mapped to three replicates of an input and an output, and the design in words
A design drafted from GRB2's column names: three replicates, each with an input and an output.

The Experiment view

The design is two tables. Columns → samples: each column is a sample of its own, a technical replicate of another (summed), a copy of a shared sample's column, or not used, with why. Replicates × slots: each replicate's input and output, its time points (edited in the column heads) or its bins, with its condition and tile. With two or more conditions, one is the reference the others are compared with (Scoring); an input selected under several conditions is one sample named by each of their replicates. Tiles grown together are one sample too, named by each tile's replicates (DHFR's sub-libraries were grown two at a time): each replicate measures only its own tile's positions there, and the inspector lists only the replicates of a variant's tile. Beside them: the kind of experiment, the time unit, what the assay measures and its controls, and the target's name, offset, coding start and identifiers.

Every change is checked as you make it. The design is described in plain words, and each error and warning is listed: a column that is neither a sample's nor set aside is an error, so nothing is dropped silently.

What the analysis can do

The hardest part of an analysis is often gathering what the experiment was, not scoring it: which sample is which, what the assay selects for, and numbers kept at the bench that never reach the count table. What the analysis can do, in the Experiment view, goes through every analysis MaveScape offers for the design (each way of scoring, normalizing and rescaling, combining replicates, differential scores, each quality-control finding, the record) and says whether it is ready, partial (it runs, and something missing would make it more complete) or not possible, and why.

Below it, what is missing: each gap with why it matters, where it is usually found, and Give it, which takes you to where it goes in the view. Some are in the counts (the wild type's reads, synonymous or nonsense variants), some in the protocol (what the assay measures, how the library was made), some kept at the bench:

What would take another experiment (a second or third replicate, a second condition, more time points) is listed apart. Nothing is filled in by guessing: a gap stays visible until it is given, and the methods paragraph names what was not recorded and what that meant. The workflow strip shows how many analyses are possible and how many gaps the bench or the protocol could fill; the Start page lists what is worth bringing; mavescape validate prints the same account (Scripting).

The Experiment view of the GRB2 example: What the analysis can do, 19 of 25 analyses ready, 2 partial and 4 not possible, and what is missing: synonymous variants, how the library was made and the cells carried into selection, each with why it matters, where it is usually found and a Give it buttonThe Experiment view of the GRB2 example: What the analysis can do, 19 of 25 analyses ready, 2 partial and 4 not possible, and what is missing: synonymous variants, how the library was made and the cells carried into selection, each with why it matters, where it is usually found and a Give it button
GRB2's readiness: what each analysis can do with the published counts, and the three things that would unlock or improve more.

The analysis package

Write the analysis package (here, or a run's export menu) writes one ZIP of what the analysis needs: the count table as imported, the target as FASTA, the design (with what the assay measures, the gates and the cells recorded), the design again as a sample sheet, the parameters (a run's, or MaveScape's defaults), the readiness as data, and a README with what each file is, the mavescape run command that scores it, and what is missing. These are the files mavescape run reads, and what the MAVE minimum information asks of an experiment, so the package that analyzes an experiment is the one that will deposit it (MaveScape 0.3). Scored from a run's package alone, mavescape run gives that run's output hash.

Kinds of experiment

KindSamples per replicateScored
Two populationsAn input and an outputYes
Time seriesTime points, with their timesBy weighted regression on every time point (three or more), or by the log ratio of the first and last
Sorted binsBins, each with its value, and optionally its gates and the cells sortedBy the weighted average of the bins' values, or by maximum likelihood from the gates
ScoresPrecomputed scoresNothing to score; shown on the map in 0.3

What the assay measures

A score's sign means nothing without the selection. In a selection for function, a variant that becomes rarer has lost some of it, and scores low. But an assay can just as well enrich the variants that lose function: a toxic protein, a sort for a dim reporter. What the assay measures records which, in MaveDB's terms (the MAVE minimum information's vocabulary):

The direction is used wherever the scores' meaning matters. The map's legend reads "blue is less function, red more function" only when the direction is stated, and plain "lower" and "higher" otherwise. The separation of the controls expects loss of function on the stated side. The design's summary, the methods and the exports carry the readout. Until the direction is stated, MaveScape takes a higher score to mean more of the function, and says so rather than guessing quietly.

The Experiment view of the GRB2 example: What the assay measures, with the cellular abundance of the domain measured by a reporter in yeast, a higher score meaning more of the function, and the controls with the positions where they serveThe Experiment view of the GRB2 example: What the assay measures, with the cellular abundance of the domain measured by a reporter in yeast, a higher score meaning more of the function, and the controls with the positions where they serve
GRB2's readout: abundance, in yeast, a higher score meaning more of it; and its controls.

Controls that fit the assay

The wild type, synonymous and nonsense variants are found from their names, or listed, or set to none. Each class can be limited to the positions where it serves, with why it is a control. Nonsense variants are loss-of-function controls only where a stop loses the function assayed: in BRCA1's yeast two-hybrid assay, stops after the RING domain keep binding BARD1 and score like the wild type. Quality control finds such a position and suggests it. The limits apply to everything that uses the controls (normalization to synonymous variants, rescaling, the separation of the controls), and the reasons go into the design's summary and the methods.

Bins, gates and cells

For two populations, the Cells column records the cells carried into selection from each input (from the transformation's titer, or the cells plated) and, when known, those recovered after it in each output; quality control checks the bottleneck it infers from the replicates against them. For sorted bins, each bin's value (its weight in the weighted average: a rank or a fluorescence) is edited in the replicates table's heads. Bins and gates records the gates each bin was sorted between, on the reporter's fluorescence (the lowest bin's lower gate and the highest bin's upper gate open), and the Cells column the cells sorted into each bin. With the gates, the bins can be scored by maximum likelihood; with the cells, its reads are reweighted by them, and QC reads the cells per variant.

The Experiment view of the simulated sort-seq example: the bins and gates table with each bin's value and gates, and the columns with the cells sorted into each binThe Experiment view of the simulated sort-seq example: the bins and gates table with each bin's value and gates, and the columns with the cells sorted into each bin
A sort's design: each bin's value and gates, and the cells sorted into it.

Missing = 0

Missing is not zero: an empty or NA count means the variant was not counted. But some pipelines write a variant that dropped out during selection, counted zero times, as missing. Quality control's "Missing after selection" finding notices when the missing variants are the ones that had been most depleted. Tick Missing = 0 for those samples after selection, never for a replicate's first sample (a variant missing there was not in the library), and score again: the run records the design, setting included.

The Experiment view of the simulated time series: three replicates of five time points, and the columns table with a Missing = 0 checkbox for each sampleThe Experiment view of the simulated time series: three replicates of five time points, and the columns table with a Missing = 0 checkbox for each sample
A time series' design: each replicate's sample at each time, and Missing = 0 per sample.

Sample sheets

A sample sheet is a table with one row per sequenced sample: its column, role, replicate and, as needed, technical replicate, condition, time, bin, value and tile. Columns are recognized under many names, and DiMSum's experiment design file reads as a sample sheet. A sample shared by several replicates lists them (1;2;3), and one selected under several conditions lists those too (Without ligand;With ligand). The analysis package writes the design back as a sheet, one row per column of counts, which reads as the same design; the gates, the readout and the controls are the design file's alone.

column,role,replicate,technical_replicate,condition,time,bin,value,tile
input_rep1,input,1,1,,,,,
output_rep1,output,1,1,,,,,

Design files and history

A design is saved and opened as *.design.json, described by a JSON schema in the repository; mavescape run reads the same file, readout included. Every material change to the workspace (an import, a target, the design) goes into its history, each entry chained to the one before by its hash, so that an entry edited afterward is caught. The drawer (⌘J) shows it.