How can I upload a Custom Dose Response Dataset?
The Custom Dose Response Upload lets you upload your own processed dose-response tables and visualise them with the same modules used for datasets built directly in Mass Dynamics.
Steps to upload your Custom Dose Response Dataset
- Go to the Dataset Creation page and select Custom Dose Response Upload.
- Select the Intensity Dataset you want to link the upload to.
- As with a standard dose-response dataset, use "Filter Experiment Design by Column" to specify which samples in your experiment design the uploaded dataset corresponds to. This step is required so your upload behaves like a dataset processed directly on the platform: able to be filtered, compared, and visualised alongside the rest of your data.
- Upload your four tables: output_volcanoes.tsv, output_curves.tsv, input_drc.tsv, and runtime_metadata.tsv. Each table is checked against its required columns before the dataset is created.
- Your tables need to follow the same structure originally used for the 4-parameter log-logistic (LL4) regression from the standard Mass Dynamics dose-response workflow. If you used a different model, your tables still need to conform to this structure for the visualisations to work. You can download an example dataset here to use as a template.
- Once the dataset is uploaded and completes processing, get started exploring your dose-response curves and volcano plots!

Custom Dose Response Upload creation page.
You can download here an example small dataset with all the required tables for the upload.
Below, each table's required columns are described in detail, along with what every column means in the standard Mass Dynamics workflow.
For every column, the Notes column tells you:
- Whether it's Required for visualisation: read directly by the dose-response curve plot, volcano plot, or cross-plot entity selection, so it needs a real value;
- Or Not used for visualisation: needed to pass the upload's column checks, but a placeholder (e.g. NA) is fine if you don't have a real value.
Example File: output_volcanoes.tsv
Data behind the dose-response volcano plot for a single dataset including the effect magnitude, significance, and goodness-of-fit for each protein's model.
The LL4 model estimates four parameters: 𝑏 (slope), 𝑐 (lower asymptote), 𝑑 (upper asymptote), 𝑒 (ED50). Measures derived from these estimated parameters carry the suffix Model; measures derived directly from intensity data carry the suffix Data.
|
Column Name |
Notes |
|
GroupId, ProteinIds, GeneNames (Primary keys) |
Required for visualisation. Entity identifiers: need real, matching values with the rest of the dataset. Used to join/label rows across all four tables and to power entity selection between plots. |
|
SlopeModel |
Required for visualisation. Model estimate for the 𝑏 parameter: steepness of the dose-response curve (Hill Slope). |
|
ED50 |
Required for visualisation. Model estimate for the 𝑒 parameter: the dose at which there's a 50% reduction in average intensity relative to the model's upper/lower limits. |
|
PValueSlopeModel |
Required for visualisation. P-value of the SlopeModel (𝑏) parameter. |
|
PValueDoseEffect |
Required for visualisation. Likelihood-ratio test p-value comparing the fitted model against a null model: reflects how well the model fits. |
|
DMaxModel |
Required for visualisation. Maximal degradation, computed as (1 − 𝑐/𝑑) × 100. |
|
SpanModel |
Required for visualisation. Computed as sign(𝑏) × log2(𝑐/𝑑). May not always agree in direction with SpanData, especially for poorly-fitting curves. |
|
R2Model |
Required for visualisation. Goodness-of-fit: 1 − SSE/SST: proportion of variance in intensity data explained by the model. |
|
DMaxData |
Required for visualisation. Maximal degradation (%), computed directly from the data: (1 − minimum response / response at minimum dose) × 100. |
|
SpanData |
Required for visualisation. Empirical, log2-scale measure of the maximal intensity change relative to the minimum dose. Positive = increases with dose; negative = decreases. |
|
ED50Absolute |
Required for visualisation. Computed only for decreasing curves: the dose yielding half the estimated upper plateau (𝑑) or the mean response at the lowest dose, depending on absolute_ed50_source. |
|
CurveReaches50 |
Required for visualisation. 1/TRUE if the estimated curve reaches a level at or below the response level used for ED50Absolute; 0/FALSE otherwise. |
|
EDMaxPotency |
Required for visualisation. Absolute Effective Dose at the estimated MaxPotency. |
|
MaxPotencyPerc |
Required for visualisation. Computed as (1 − MaxPotency / Upper Plateau) × 100. |
|
R2Corr |
Required for visualisation. Pearson's correlation coefficient between the original intensities and the estimated dose-response curve. |
|
AdjustedPValueSlopeModel |
Required for visualisation. Benjamini-Hochberg adjusted p-value for SlopeModel. |
|
AdjustedPValueDoseEffect |
Required for visualisation. Benjamini-Hochberg adjusted p-value for PValueDoseEffect. |
|
ModelPassed |
Required for visualisation. TRUE/FALSE: whether the model was fitted/converged. |
|
GroupLabel, Description |
Not used for visualisation. Protein-metadata style string fields, placeholder OK. |
|
UpperAsymptote |
Not used for visualisation. Model estimate for the 𝑑 parameter, placeholder OK. |
|
LowerAsymptote |
Not used for visualisation. Model estimate for the 𝑐 parameter, placeholder OK. |
|
ED50AbsoluteRespLevel |
Not used for visualisation. The response level used as the basis for ED50Absolute, placeholder OK. |
|
MaxPotency |
Not used for visualisation. By default, the average intensity at the two highest doses or the lower plateau 𝑐, depending on max_potency_source, placeholder OK. |
|
IsCurveDecreasingData |
Not used for visualisation. 1/TRUE if the mean intensity at the lowest dose exceeds the mean intensity at the highest dose (decreasing, based on raw data), placeholder OK. |
|
IsCurveDecreasingModel |
Not used for visualisation. 1/TRUE if the estimated slope (𝑏) of the LL4 model is positive, placeholder OK. |
Example File: output_curves.tsv
The predicted dose-response curve for each protein including one row per point on a dose grid spanning the input data's dose range, used to draw the curve plot. Shares several fitted-model measures with output_volcanoes, narrowed to the curve-plotting subset.
If the actual minimum dose is 0, the minimum dose on the grid is set to the smaller of 0.1 and the mean of 0 and the second-lowest dose, to avoid taking log(0).
|
Column Name |
Notes |
|
GroupId, ProteinIds, GeneNames (Primary keys) |
Required for visualisation. Same as in output_volcanoes: need real, matching values for joining, labelling, and entity selection. |
|
Dose |
Required for visualisation. The grid of doses the predictions were computed for: x-axis of the curve plot. |
|
DrcPred |
Required for visualisation. The predicted response at each Dose, from the fitted model (R's predict()). |
|
SpanData |
Required for visualisation. Same meaning as in output_volcanoes: drives per-curve annotation text. |
|
ED50 |
Required for visualisation. Same meaning as in output_volcanoes. |
|
SlopeModel |
Required for visualisation. Same meaning as in output_volcanoes. |
|
ED50Absolute |
Required for visualisation. Same meaning as in output_volcanoes. |
|
CurveReaches50 |
Required for visualisation. Same meaning as in output_volcanoes. |
|
EDMaxPotency |
Required for visualisation. Same meaning as in output_volcanoes. |
|
MaxPotencyPerc |
Required for visualisation. Same meaning as in output_volcanoes. |
|
GroupLabel, Description |
Not used for visualisation. Protein-metadata style string fields, placeholder OK. |
|
ModelPassed |
Not used for visualisation. Same meaning as in output_volcanoes, placeholder OK. |
|
DrcPredMin, DrcPredMax |
Not used for visualisation. 95% confidence limits of the prediction: computed but not currently plotted, placeholder OK. |
|
UpperAsymptote, LowerAsymptote |
Not used for visualisation. Model estimates for 𝑑 and 𝑐, placeholder OK. |
|
R2Corr |
Not used for visualisation. Same meaning as in output_volcanoes, placeholder OK. |
|
DMaxData |
Not used for visualisation. Same meaning as in output_volcanoes, placeholder OK. |
|
IsCurveDecreasingModel |
Not used for visualisation. Same meaning as in output_volcanoes, placeholder OK. |
|
MaxPotency |
Not used for visualisation. Same meaning as in output_volcanoes, placeholder OK. |
Example File: input_drc.tsv
The per-replicate input data used to fit the models including one row per protein / replicate / dose combination.
|
Column Name |
Notes |
|
GroupId, ProteinIds, GeneNames (Primary keys) |
Required for visualisation. Same as above: need real, matching values. |
|
replicate |
Required for visualisation. The sample/replicate identifier, shown in the curve plot's hover text. |
|
Imputed |
Required for visualisation. 1/0 flag: draws imputed points as diamonds vs. observed points as circles on the curve plot. In the standard workflow this comes from Mass Dynamics' initial preprocessing; no imputation happens while building the dose-response dataset itself. |
|
Dose |
Required for visualisation. The range of doses available in the data: x-axis values for the plotted points. |
|
InitialIntensity |
Required for visualisation. The initial intensities from the input data, before normalisation or log transformation: the plotted y-axis value. |
|
GroupLabel, Description |
Not used for visualisation. Protein-metadata style string fields, placeholder OK. |
|
ResponseIntensity |
Not used for visualisation. The (normalised/transformed) intensities actually used to fit the models, placeholder OK. |
|
ConditionHasEnoughReplicates |
Not used for visualisation. TRUE/FALSE: whether a given protein/dose has enough replicates with non-missing values, per prop_required_replicates. Only drives filtering in the standard run_dose_response pipeline; not re-read once a dataset is uploaded here. Placeholder OK. |
|
GroupIdHasEnoughConditions |
Not used for visualisation. TRUE/FALSE: whether a protein has enough conditions meeting the replicate requirement, per prop_required_conditions. Same note as above. Placeholder OK. |
|
GroupIdHasEnoughValues |
Not used for visualisation. TRUE/FALSE: whether a protein has enough non-missing intensity values overall, per prop_required_in_protein (default 0.5). Same note as above. Placeholder OK. |
Example File: runtime_metadata.tsv
A single-row table recording the settings used to produce the dataset. No specific columns are enforced on upload: only the file itself is required. None of its columns are read by the curve, volcano, or summarised-table visualisation modules, so it's for record-keeping only: any values, including placeholders, are acceptable.
In the standard workflow, this table typically records:
|
Column Name |
Notes |
|
Normalisation |
The method used to normalise the intensity data. |
|
MinPropRequiredInProtein |
Minimum proportion of data required for a protein to be included in the dataset. |
|
SpanObsRollmeanK |
The 𝑘 value used in the rolling mean when calculating SpanData. |
|
IsIntensityLogTransformed |
Whether intensity data has been log-transformed. |
|
UseImputedIntensities |
Whether imputed intensity values are used. |
|
R_version |
The version of R used to create the dataset. |
|
DoseResponseMDVersion |
The version of the DoseResponseMD R package used. |
|
DigitsRoundingDrcModel |
Number of rounding digits used for the analysis (applied via options(digits = ...)). |
|
AdjPvalMethod |
Method used to adjust p-values for multiple comparisons (default: Benjamini-Hochberg). |
|
InputIntensityColumn |
The column in the input dataset containing intensity values (default: NormalisedIntensity). |
|
InputDoseColumn |
The column in the input dataset containing dose values (default: dose). |
|
DrcModelType |
The dose-response model type applied (default: LL4). |
|
MinPropReplicates |
Minimum proportion of replicates required per dose (default 0 = no filter). |
|
MinPropConditions |
Minimum proportion of conditions required in the dataset (default 0 = no filter). |
|
OptimRelativeTolerance |
Relative tolerance passed to R's optim() during model fitting (default: 1e-10). |
|
MaxPotencySource |
Data source ("model" or observed "intensity") used to compute maximum potency, for decreasing curves. |