import { CONCENTRATION_UNITS, ICONS, PLATE_FORMAT_OPTIONS, } from './controlSchemaConstants' import type { BioTemplateControlSchema, } from './controlSchemaTypes' import { templateControlSchemas, } from './templateControlSchemas' import type { TemplatePresetId, } from './types' export const presetControlSchemas = { 'wellplate-screen': { ...templateControlSchemas['plate-map'], ...templateControlSchemas['dose-response'], sampleNames: { ...templateControlSchemas['plate-map'].sampleNames, default: ['Control', 'Treatment'], }, }, 'qpcr-expression': { sampleNames: { type: 'tags', label: 'Samples', default: ['Control', 'Treatment'], section: 'samples', sectionLabel: 'Samples', sectionSubtitle: 'Expression groups', view: 'design', sidebar: { icon: ICONS.samples, iconColor: '#10b981', iconBg: '#d1fae5' }, }, targets: { type: 'tags', label: 'Targets', default: ['ACTB', 'GAPDH'], section: 'assay', sectionLabel: 'Assay', view: 'design', sidebar: { icon: ICONS.plate, iconColor: '#0d9488', iconBg: '#ccfbf1' }, }, ...templateControlSchemas['qpcr-plate'], }, 'lcms-batch': { sampleNames: { type: 'tags', label: 'Samples', default: ['S001', 'S002'], section: 'samples', sectionLabel: 'Samples', sectionSubtitle: 'Batch samples', view: 'run', sidebar: { icon: ICONS.samples, iconColor: '#10b981', iconBg: '#d1fae5' }, }, featureNames: { type: 'tags', label: 'Features', default: ['Glucose', 'Lactate'], section: 'features', sectionLabel: 'Features', view: 'analysis', sidebar: { icon: ICONS.table, iconColor: '#0ea5e9', iconBg: '#e0f2fe' }, }, ...templateControlSchemas['instrument-run'], ...templateControlSchemas['assay-matrix'], }, 'targeted-metabolomics': { sampleNames: { type: 'tags', label: 'Samples', default: ['S001', 'S002'], section: 'samples', sectionLabel: 'Samples', sectionSubtitle: 'Unknowns and QC pool', view: 'run', sidebar: { icon: ICONS.samples, iconColor: '#10b981', iconBg: '#d1fae5' }, }, metaboliteNames: { type: 'tags', label: 'Metabolites', default: ['Glucose', 'Lactate', 'Pyruvate'], section: 'features', sectionLabel: 'Metabolites', sectionSubtitle: 'Quantitation panel', view: 'analysis', sidebar: { icon: ICONS.table, iconColor: '#0ea5e9', iconBg: '#e0f2fe' }, }, internalStandards: { type: 'tags', label: 'Internal standards', default: ['Stable isotope internal standard mix'], section: 'standards', sectionLabel: 'Standards', sectionSubtitle: 'Calibration and internal standards', view: 'analysis', sidebar: { icon: ICONS.dose, iconColor: '#8b5cf6', iconBg: '#ede9fe' }, }, standardConcentrations: { type: 'tags', label: 'Calibration levels', default: ['0.1', '1', '10', '100'], section: 'standards', view: 'analysis', }, concentrationUnit: { label: 'Concentration unit', default: 'uM', options: CONCENTRATION_UNITS, section: 'standards', view: 'analysis', }, responseUnit: { label: 'Response unit', default: 'peak area ratio', section: 'readout', sectionLabel: 'Readout', view: 'analysis', sidebar: { icon: ICONS.table, iconColor: '#0ea5e9', iconBg: '#e0f2fe' }, }, instrument: { ...templateControlSchemas['instrument-run'].instrument, default: 'LC-MS', }, method: { ...templateControlSchemas['instrument-run'].method, default: 'Targeted metabolomics', }, prepType: { ...templateControlSchemas['sample-prep'].prepType, default: 'extraction', }, outputVolume: templateControlSchemas['sample-prep'].outputVolume, includeQc: templateControlSchemas['instrument-run'].includeQc, }, 'elisa-assay': { sampleNames: { type: 'tags', label: 'Samples', default: ['Control', 'Treatment'], section: 'samples', sectionLabel: 'Samples', sectionSubtitle: 'Unknowns and controls', view: 'design', sidebar: { icon: ICONS.samples, iconColor: '#10b981', iconBg: '#d1fae5' }, }, analyte: { label: 'Analyte', default: 'Analyte', section: 'standards', sectionLabel: 'Standards', sectionSubtitle: 'Calibration setup', view: 'analysis', sidebar: { icon: ICONS.dose, iconColor: '#8b5cf6', iconBg: '#ede9fe' }, }, standardConcentrations: { type: 'tags', label: 'Standards', default: ['1000', '100', '10', '1'], section: 'standards', view: 'analysis', }, unit: { label: 'Concentration unit', default: 'pg/mL', options: ['pg/mL', 'ng/mL', 'ug/mL', 'nM', 'uM'], section: 'standards', view: 'analysis', }, responseUnit: { label: 'Response unit', default: 'OD450', section: 'readout', sectionLabel: 'Readout', view: 'analysis', sidebar: { icon: ICONS.table, iconColor: '#0ea5e9', iconBg: '#e0f2fe' }, }, plateName: { label: 'Plate name', default: 'ELISA plate', section: 'layout', sectionLabel: 'Layout', sectionSubtitle: 'Plate geometry', view: 'design', sidebar: { icon: ICONS.plate, iconColor: '#0d9488', iconBg: '#ccfbf1' }, }, plateFormat: { label: 'Format', default: 96, options: PLATE_FORMAT_OPTIONS, section: 'layout', view: 'design', }, }, 'flow-cytometry-assay': { sampleNames: { type: 'tags', label: 'Samples', default: ['Control', 'Treatment'], section: 'samples', sectionLabel: 'Samples', sectionSubtitle: 'Assay groups', view: 'design', sidebar: { icon: ICONS.samples, iconColor: '#10b981', iconBg: '#d1fae5' }, }, markers: { ...templateControlSchemas['flow-cytometry-panel'].markers, default: ['CD3', 'CD4', 'CD8'], }, featureNames: { type: 'tags', label: 'Readouts', default: ['CD3+ cells', 'CD4+ cells', 'CD8+ cells'], section: 'features', sectionLabel: 'Readouts', sectionSubtitle: 'Assay matrix columns', view: 'analysis', sidebar: { icon: ICONS.table, iconColor: '#0ea5e9', iconBg: '#e0f2fe' }, }, instrument: { ...templateControlSchemas['flow-cytometry-panel'].instrument, default: 'Flow cytometer', }, includeDefaultControls: templateControlSchemas['flow-cytometry-panel'].includeDefaultControls, }, 'western-blot-assay': { sampleNames: { type: 'tags', label: 'Samples', default: ['Control', 'Treatment'], section: 'samples', sectionLabel: 'Samples', sectionSubtitle: 'Blot lanes and groups', view: 'design', sidebar: { icon: ICONS.samples, iconColor: '#10b981', iconBg: '#d1fae5' }, }, targets: { type: 'tags', label: 'Targets', default: ['Target protein'], section: 'assay', sectionLabel: 'Assay', sectionSubtitle: 'Protein targets', view: 'design', sidebar: { icon: ICONS.table, iconColor: '#0ea5e9', iconBg: '#e0f2fe' }, }, loadingControl: { label: 'Loading control', default: 'ACTB', section: 'normalization', sectionLabel: 'Normalization', view: 'analysis', sidebar: { icon: ICONS.settings, iconColor: '#0d9488', iconBg: '#ccfbf1' }, }, }, } satisfies Record