// Project Pipeline — part 2: protocol designer, experiment marketplace, // LaTeX drafting, submit-to-publication checklist. // ─────────────────────────────────────────────── PROTOCOL DESIGNER ─────────── function PipelineProtocolDapp() { const steps = [ { n: 1, t: 'Animal prep', d: '8w C57BL/6J · GAT3-flox', dur: '20 min', op: 'Manual', tone: 'default', risk: 'low' }, { n: 2, t: 'Decapitation · brain extraction', d: 'ACSF 4°C · sucrose-substituted', dur: '6 min', op: 'Manual', tone: 'default', risk: 'low' }, { n: 3, t: 'Vibratome slice · 350 μm', d: 'Coronal · CA1', dur: '14 min', op: 'Manual', tone: 'default', risk: 'low' }, { n: 4, t: 'Recovery', d: 'ACSF 32°C · 30 min · 95/5 O₂/CO₂', dur: '30 min', op: 'Manual', tone: 'default', risk: 'low' }, { n: 5, t: 'Mount in chamber', d: 'Slice anchor · perfusion 2 ml/min', dur: '4 min', op: 'Manual', tone: 'default', risk: 'low' }, { n: 6, t: 'Patch electrode pull', d: 'Sutter P-97 · 4–6 MΩ', dur: '6 min', op: 'Hamilton', tone: 'ok', risk: 'low' }, { n: 7, t: 'Apply lead H-3', d: '10 μM bath · 8 min wash-in', dur: '8 min', op: 'Hamilton', tone: 'ok', risk: 'med' }, { n: 8, t: 'Baseline fEPSP · 20 min', d: 'Schaffer collateral · θ-burst probe', dur: '20 min', op: 'MultiClamp · auto', tone: 'ok', risk: 'low' }, { n: 9, t: 'LTP induction · θ-burst', d: '4× TBS · 20 Hz · 10 trains', dur: '2 min', op: 'MultiClamp · auto', tone: 'ok', risk: 'low' }, { n: 10, t: 'Post-LTP recording · 60 min', d: 'fEPSP every 30 s', dur: '60 min', op: 'MultiClamp · auto', tone: 'ok', risk: 'low' }, { n: 11, t: 'Wash-out + control', d: 'ACSF only · 20 min', dur: '20 min', op: 'Hamilton', tone: 'ok', risk: 'med' }, { n: 12, t: 'Slice fixation', d: '4% PFA · 24h · 4°C', dur: '24 h', op: 'Manual', tone: 'default', risk: 'low' }, { n: 13, t: 'Confocal imaging', d: '20× tile · GAT-3 antibody', dur: '90 min', op: 'CRO · CzBiohub', tone: 'info', risk: 'low' }, { n: 14, t: 'Data upload · UB-Storage', d: 'IPFS pin · 14 GB · sha-512', dur: '8 min', op: 'Auto', tone: 'accent', risk: 'low' }, ]; return ( }> } title="Protocol designer" sub="Drag steps from the palette. Each step compiles to a machine-readable run book — your bench protocol, the Hamilton script, and the CRO statement of work all stay in sync." actions={<> Import .protocol Variant fork Send to experiment } />
{/* Step palette */} {[ ['Animal prep · IACUC', 'manual'], ['Tissue extraction', 'manual'], ['Vibratome slice', 'manual'], ['Reagent application', 'hamilton'], ['Patch · whole cell', 'auto'], ['Patch · field', 'auto'], ['Optogenetic stim', 'auto'], ['LTP · θ-burst', 'auto'], ['Calcium imaging', 'auto'], ['Confocal · IHC', 'cro'], ['Data upload', 'auto'], ['Animal sacrifice', 'manual'], ].map(([k, kind], i, arr) => (
{k} {kind.toUpperCase()}
))}
{/* Steps timeline */}
BLOCK A · in vivo prep BLOCK B · electrophysiology BLOCK C · imaging + upload
{steps.map((s, i, arr) => (
{String(s.n).padStart(2, '0')}
{s.t}
{s.d}
{s.dur} {s.op} · {s.risk} ⋮⋮
))}
Total · 14 steps · 26 h 18 min · 4 person-hours · 22 h auto Cost estimate · 4,820 USD
{/* Step inspector */}
Bath-apply 10 μM lead H-3 in ACSF (vehicle DMSO 0.1%) for 8 min wash-in. Final concentration verified by inline UV (280 nm).
{[ ['lead H-3', 'PENDING', 'warn', '14 mg · UCSF #211'], ['ACSF (slice)', 'OK', 'ok', '4 L batch · 04 May'], ['DMSO · 100%', 'OK', 'ok', 'Sigma · D2650'], ['Picrotoxin (back-up)', 'PENDING', 'warn', 'Tocris · 1128'], ].map((r, i) => (
{r[0]}
{r[3]}
{r[1]}
))}
{[ ['IACUC #21408', 'ok'], ['Biosafety BL-2', 'ok'], ['Chemical SDS · H-3', 'pending'], ['Animal welfare check', 'ok'], ].map((c, i) => (
{c[0]} {c[1] === 'ok' ? '✓' : '!'}
))}
{[ ['v0.4 · current', 'BASELINE', 'accent'], ['v0.4-A · 5 μM dose', 'CHILD', 'default'], ['v0.4-B · 25 μM dose', 'CHILD', 'default'], ].map((v, i) => (
{v[0]} {v[1]}
))}
); } // ─────────────────────────────────────────── EXPERIMENT MARKETPLACE ────────── function PipelineExperimentDapp() { return ( }> } title="Experiment marketplace" sub="Run the protocol yourself, hand it to your automation rig, or post the run book to vetted CROs and other UB-Chain labs that bid on your statement of work." actions={<> Run locally Send to rig Hire CRO } />
{/* Active runs */}
{[ { id: 'RUN-441', op: 'Charles River · CRO', cohort: 'Cohort B · 12/24 mice', stage: 'Step 9 · LTP induction', pct: 64, eta: '4d 11h', cost: '$3,840' }, { id: 'RUN-442', op: 'In-house · Hamilton + MultiClamp', cohort: 'Cohort A · 6/6 slices', stage: 'Step 11 · wash-out', pct: 88, eta: '0h 42m', cost: '$420' }, { id: 'RUN-443', op: 'CzBiohub · CRO', cohort: 'Imaging · 96 slices queued', stage: 'Pending intake', pct: 4, eta: 'Mon 09:00', cost: '$1,800' }, ].map((r, i, arr) => (
{r.id} {r.op}
{r.cohort}
60 ? 'accent' : r.pct > 20 ? 'ok' : 'default'}>{r.pct > 80 ? 'WRAP-UP' : r.pct > 20 ? 'EXECUTING' : 'INTAKE'}
{r.stage} {r.pct}% · ETA {r.eta} · {r.cost} escrowed
))} {/* Live data feed */}
{[0, 1, 2, 3].map(ch => { const off = ch * 36 + 18; let d = `M 0 ${off}`; for (let x = 0; x <= 480; x += 4) { const sp = (x === 120 || x === 220 || x === 340) ? 14 : 0; const noise = (Math.sin(x * 0.18 + ch) + Math.sin(x * 0.07 + ch * 1.3)) * 1.2; d += ` L ${x} ${off + noise - sp}`; } return ; })} CH1 fEPSP · CA1 sr CH2 stim mark CH3 perfusion T° CH4 H-3 conc · UV
SAMPLE · 20 kHz · 4 ch · live STREAM → IPFS · 2.4 MB/s · pinned
{[ ['Charles River', 'Boston, MA', '★ 4.9 · 2,140 runs', '$1,800', '4d', 'top'], ['CzBiohub Imaging', 'San Francisco', '★ 4.8 · 410 runs', '$1,640', '6d', 'good'], ['Inscopix Services', 'Mountain View', '★ 4.7 · 198 runs', '$2,200', '3d', 'fast'], ['Verily · Brain', 'Boulder, CO', '★ 4.6 · 88 runs', '$2,400', '7d', 'good'], ['Lab · Tanaka (RIKEN)', 'Tokyo · UB-Chain', '★ 4.9 · 84 runs', '$1,400', '9d', 'frontier'], ].map((b, i, arr) => (
{b[0]} {b[1]} {b[2]} {b[3]} {b[4]} Award
))}
{/* Right column */}
v0.4 · 14 steps · 26 h
PARTY-A · UCSF · Harriot Lab
PARTY-B · selected vendor
ASSETS · 24 mice · GAT3-flox
DATA · raw + analyzed → IPFS pin
IP · paper credit + license-back
ESCROW · UB-Chain smart contract
View full SoW
{[ ['RUN-441', '$3,840', 'In escrow'], ['RUN-442', '$420', 'Released'], ['RUN-443', '$1,800', 'Pending award'], ].map((e, i) => (
{e[0]} {e[1]} {e[2]}
))}
Total escrowed · $6,060
Released to vendors · $420
Refundable on dispute · 100%
{[ ['No outliers detected · last 14 trials', 'ok'], ['Cohort B variance trending up · check', 'warn'], ['Drift on CH3 perfusion T°', 'warn'], ['CRO sign-off pending on cohort A', 'default'], ].map((f, i) => (
{f[0]}
))}
); } // ─────────────────────────────────────────────── LATEX DRAFTING ────────────── function PipelineDraftingDapp() { return ( }> } title="LaTeX drafting" sub="Write in TeX, get a live PDF preview. Citations come from your library, figures from your experiments, and reviewers from your TRID network." actions={<> Citations · 184 Figures · 5 Send for internal review } />
{/* File tree */}
FILES · DRAFT-219
{[ ['📁', 'draft-219/', false, 0], ['📄', 'main.tex', true, 1], ['📄', 'preamble.tex', false, 1], ['📄', 'macros.tex', false, 1], ['📁', 'sections/', false, 1], ['📄', '01-intro.tex', false, 2], ['📄', '02-results.tex', false, 2], ['📄', '03-discussion.tex', false, 2], ['📄', '04-methods.tex', false, 2], ['📁', 'figures/', false, 1], ['🖼', 'fig01-pipeline.pdf', false, 2], ['🖼', 'fig02-ltp.pdf', false, 2], ['🖼', 'fig03-dose.pdf', false, 2], ['🖼', 'fig04-ihc.pdf', false, 2], ['🖼', 'fig05-cohort.pdf', false, 2], ['📄', 'references.bib', false, 1], ['📄', 'cell.cls', false, 1], ['', '', false, 0], ['📁', 'output/', false, 0], ['📄', 'draft-219.pdf', false, 1], ].map((f, i) => f[1] === '' ?
: (
{f[0]} {f[1]}
))}
{/* Editor */}
main.tex 02-results.tex references.bib SAVED 2s BUILD ✓ 1.4s
{/* line numbers */}
{Array.from({ length: 28 }).map((_, i) =>
{i + 142}
)}
{`\\section{Results}\\label{sec:results}

We first asked whether `}{`\\textbf{lead H-3}`}{` modulates astrocytic GAT-3
without affecting GAT-1-mediated synaptic clearance. Bath
application of `}{`10\\,$\\mu$M H-3`}{` in
acute hippocampal slices `}{`\\citep{harriot2025astro}`}{`
produced a `}{`33.4\\,\\%$\\pm$2.1`}{` reduction in tonic GABA
current relative to vehicle (Fig.~`}{`\\ref{fig:ltp}`}{`a),
without affecting paired-pulse ratios `}{`\\citep{lin2024rwif,
yamamoto2025sleep}`}{`.

\\subsection{LTP induction is preserved under H-3}

Theta-burst stimulation evoked normal LTP in slices treated
with H-3 (potentiation `}{`172\\,\\%$\\pm$8`}{` of baseline
at 60\\,min) compared to vehicle (`}{`168\\,\\%$\\pm$11`}{`;
$p\\,{=}\\,0.42$, $n\\,{=}\\,12$ slices per group). This finding
contrasts with non-selective `}{`SNAP-5114, which`}{`
suppresses LTP at equivalent doses `}{`\\citep{patel2025sparse}`}{`,
suggesting that astrocyte-selective GABA reuptake inhibition
spares the synaptic mechanisms required for LTP.`}
              
main.tex · ln 168 · col 24 UTF-8 · LaTeX spell · en-GB · 2 issues Twin · suggested 3 cites ● live build
{/* PDF preview */}
draft-219.pdf p.4 / 18 112% LIVE

2 · Results

We first asked whether lead H-3 modulates astrocytic GAT-3 without affecting GAT-1-mediated synaptic clearance. Bath application of 10 μM H-3 in acute hippocampal slices4 produced a 33.4% ± 2.1 reduction in tonic GABA current relative to vehicle (Fig. 1a), without affecting paired-pulse ratios1,2.

2.1 · LTP induction is preserved under H-3

Theta-burst stimulation evoked normal LTP in slices treated with H-3 (potentiation 172% ± 8 of baseline at 60 min) compared to vehicle (168% ± 11; p = 0.42, n = 12 slices per group). This finding contrasts with non-selective SNAP-5114, which suppresses LTP at equivalent doses5, suggesting that astrocyte-selective GABA reuptake inhibition spares the synaptic mechanisms required for LTP.

FIG. 1 · LTP under H-3
{Array.from({ length: 60 }).map((_, i) => { const x = 20 + i * 4; const dip = i > 30 ? 8 : 0; const v = 38 - Math.sin(i * 0.4) * 2 - dip - (i > 30 ? Math.min((i - 30) * 0.5, 14) : 0); return 30 ? UB.accent : UB.ink2} />; })} θ-burst
); } // ────────────────────────────────────────────── SUBMIT TO PUBLICATION ──────── function PipelineSubmitDapp() { return ( }> } title="Submit for publication" sub="One canonical paper, many destinations. Submit to a journal, a preprint server, and the UB-Chain Publication dapp simultaneously — with reproducible artifacts attached." actions={<> View paper Save preflight Submit · all destinations } />
{/* Paper bundle */}
{[ ['Manuscript · main.pdf', '1.4 MB · 18 pp', '✓', UB.ok], ['Manuscript · main.tex', '184 KB', '✓', UB.ok], ['Supplementary · 6 figures', '8.2 MB', '✓', UB.ok], ['Supplementary · 2 videos', '142 MB', '✓', UB.ok], ['Code · GitHub release', 'harriot/glia-h3 v1.0.0', '✓', UB.ok], ['Data · IPFS pin', '482 GB · sha-512', '✓', UB.ok], ['Reagents · BoM', '14 items', '✓', UB.ok], ['Animal model card', 'IACUC #21408', '✓', UB.ok], ['Author contributions', 'CRediT taxonomy', '✓', UB.ok], ['Conflicts of interest', '0 declared', '✓', UB.ok], ['Pre-registration', 'OSF · DOI 10.17605', '✓', UB.ok], ['ORCIDs · all authors', '7 of 7', '✓', UB.ok], ].map((f, i, arr) => (
{f[0]} {f[1]} {f[2]}
))}
{[ ['Title length ≤ 14 words', 'ok', 'PASS · 11 words'], ['Abstract ≤ 250 words', 'ok', 'PASS · 218 words'], ['Page limit (Cell article)', 'ok', 'PASS · 18 / 22'], ['References formatted · Nature', 'ok', 'PASS · 184 entries'], ['Figures resolution ≥ 300 dpi', 'ok', 'PASS · all 5'], ['Reproducibility statement', 'ok', 'PASS · code + data'], ['Reagents · RRIDs assigned', 'warn', 'WARN · 2 missing'], ['Statistics · effect sizes', 'ok', 'PASS'], ['Sex as biological variable', 'ok', 'PASS · M+F included'], ['Conflict of interest', 'ok', 'PASS · 0 declared'], ['Author CRediT taxonomy', 'ok', 'PASS · 7 / 7'], ['Open data DOI registered', 'ok', 'PASS · Zenodo'], ['Cover letter (Cell req.)', 'warn', 'PENDING · 0 / 1'], ['Pre-print embargo decision', 'ok', 'PASS · biorxiv · concurrent'], ].map((c, i, arr) => (
{c[1] === 'ok' ? '✓' : '!'} {c[0]} {c[2]}
))}
{/* Destinations */}
{[ { n: 'Cell · primary', k: 'Editorial Manager', s: 'Cover letter pending', tone: 'warn', pri: 'P1' }, { n: 'eLife · backup', k: 'eLife submission', s: 'Ready · holds for Cell decision', tone: 'default', pri: 'P2' }, { n: 'bioRxiv · preprint', k: 'Public · concurrent', s: 'Auto-post on submit', tone: 'ok', pri: 'P1' }, { n: 'UB-Chain Publication', k: 'Decentralized peer review', s: 'Mints dPID + reviewer pool', tone: 'accent', pri: 'P1' }, { n: 'Zenodo · data', k: 'Dataset DOI', s: '482 GB · pinned', tone: 'ok', pri: 'AUTO' }, { n: 'GitHub · release', k: 'Tag v1.0.0', s: 'Auto-tag on submit', tone: 'ok', pri: 'AUTO' }, ].map((d, i, arr) => (
{d.n} {d.pri}
{d.k}
{d.s}
))}
dPID · pending · v1
License · CC-BY-4.0
Reviewer pool · TRID-matched · est. 4–7d
Reproducibility cap · auto-claim post-review
Patent token · OPTIONAL · see Stage 8 →
Configure on-chain mint
{[ ['Lin C. · UCSF', '★ 0.91', 'cited 6×'], ['Yamamoto K. · RIKEN', '★ 0.88', 'replicated your work'], ['Mehta R. · Stanford', '★ 0.84', 'methods overlap'], ['Park S. · KAIST', '★ 0.81', 'astrocyte field'], ].map((r, i) => (
{r[0]} {r[1]} {r[2]}
))}
); } window.PipelineProtocolDapp = PipelineProtocolDapp; window.PipelineExperimentDapp = PipelineExperimentDapp; window.PipelineDraftingDapp = PipelineDraftingDapp; window.PipelineSubmitDapp = PipelineSubmitDapp;