ResearchOS/Wiki

Methods Library

A method is a reusable protocol you write once and attach to any experiment as a tab. The library ships ten method types, from free-form Markdown to specialized structured editors for PCR, LC gradients, plate layouts, and more, so a method matches the shape of the work instead of forcing everything into prose.

The Method Library. Cards are grouped under category headings and carry a colored type pill. The library supports ten method types.
Watch the app demos

What you see on the page

The Method Library page lists every protocol you and your lab have saved, grouped under category headings (e.g., "Molecular Biology", "Imaging"). Each method is a card with its name, a colored type pill (Markdown, PDF, PCR, LC Gradient, Plate Layout, and so on), and any tags you added. Click a card to open the method in a popup with the editor on the left and a sidebar listing every experiment that currently uses it on the right.

Two buttons sit in the top-right of the page: + New Category creates an empty category heading you can drag methods into later, and + New Method opens the create-method modal.

The ten method types

The type picker in the New Method modal. Nine types appear as tiles. Kit does not appear here because kits are created by extending an existing method, not by starting from scratch.

The create-method modal groups types into two sections. Each type gets its own viewer when the method is opened, its own icon on experiment tabs, and its own colored pill on the library card.

Standard methods are body-only, with no structured fields beyond title and tags.

  • Markdown is the default. Free-form protocol text in the same markdown editor used for lab notes and results, with toolbars, image drag-drop, and live preview. See The Markdown Editor for the full shortcut set.
  • PDF lets you upload an existing protocol PDF (a kit insert, a published paper). PDFs render in an iframe and can't be edited inline.

Structured methods swap the markdown body for a purpose-built editor.

  • PCR opens a thermal-gradient editor and reaction-recipe table. Full details on the PCR Reaction Builder page.
  • LC Gradient opens a solvent-gradient chart editor with flow, column, and mobile-phase fields for HPLC and LC-MS protocols.
  • Plate Layout renders an interactive well-plate grid with sample, control, and blank annotations.
  • Cell culture passaging tracks a passaging schedule, media, and cell line, with per-task passage history.
  • Mass spec captures ionization mode, source and scan params, and calibration. Pairs with LC for LC-MS workflows.
  • qPCR analysis records Cq readouts, melt-curve Tm, standard-curve efficiency, and ΔΔCq fold-change. A typical qPCR workflow pairs a PCR cycling method with a qPCR analysis method by bundling both into a kit, so the thermal program and the analysis fields travel together when attached to an experiment.
  • Coding workflow stores reusable scripts (Python, R, SQL) and Jupyter notebooks alongside protocol text.
  • Kit bundles two or more existing methods into one attachable unit (for example, a plate layout plus an assay PDF, or a PCR cycling method plus a qPCR analysis). Because kits are created by extending an existing method (via the Add component (extend into kit) affordance on the method popup) rather than by starting from scratch, the Kit type does not appear as a tile in the New Method picker.

Create a method

  1. Click + New Method. Pick a type from the Standard or Structured section and give it a name. The Folder (optional) field autocompletes against existing categories (the page-level headings) so methods drop into the right bucket.
  2. Fill in the body. Write markdown, upload a PDF, draw an LC gradient, lay out a plate, or build a PCR program and recipe. For markdown methods you can drag images and attachment files directly into the editor.
  3. Click Create Method. The new card lands in its category on the Method Library page and is immediately available to attach to experiments.

Start from a template

You do not have to start from a blank protocol. ResearchOS ships a Template Library of pre-built, ready-to-use protocols, from a Q5 PCR recipe to a 384-well viability plate to an LC-MS run. Browse the catalog, preview a template, and copy it into your own library as a fully editable method you own. Many templates bundle the vendor PDF they were transcribed from, so you can verify any value against the original insert before you run the bench. See the Template Library page for the full catalog, the source-PDF model, and the LC-MS combination templates.

Categories and drag-to-organize

Categories are flat (no sub-folders). To move a method into a different category, grab its card by the ⋮⋮ handle and drop it on another category heading. The drop target highlights blue while you hover. Drop a card on the "Drop here to move to Uncategorized" bar at the top to clear its category.

Use + New Category to set up an empty bucket before you have anything to put in it. Empty categories persist in your browser until at least one method lives there or you remove it.

Sharing a method with the lab

Every method is private to you by default. To make one visible to the rest of the lab, open the method and click the Private pill in the header. The share popup opens. In the User dropdown, select All Lab Users. A confirmation box appears below. Click Apply. The pill flips from Private (a lock icon) to Public (a globe icon) to confirm the method is now visible to the whole lab.

Lab-shared methods show a green Public badge on their card and appear in every user's library.

How method sharing works

Sharing is stored on the method's shared_with array. Choosing All Lab Users writes the WHOLE_LAB_SENTINEL value into the array, which the permission system expands to "every user in this lab folder, present and future." Read access is gated by the canRead primitive: owner, anyone explicitly in shared_with, the sentinel, or a PI. See Sharing and permissions for the full model (including the one-time auto-migration from the retired Lab Mode account).

Sharing a method does not lock the creator out of it. Editing is gated by canWrite, which always passes for the original owner regardless of sharing status, so you keep your inline Edit button on a lab-shared method just like a private one. This holds for every type, Markdown and the structured editors alike. Other lab members can read and attach the shared method but cannot modify your library copy.

All users can always attach a shared method to their own experiments and record per-run variations without touching the shared library copy.

Transient read access when a task is shared with you

There is one more way a method becomes readable. When a user shares a task with you and that task references a method, you get a transient read on the underlying protocol even if the method itself is not in your shared_with. The check lives in canReadMethodViaTask (in lib/sharing/unified.ts) and the method owner sees a method-transient-read entry land in their audit log the first time it fires for a given viewer. So sharing a task does not silently leak the protocol without a paper trail, and a method owner can see who has been reading their protocols through someone else's task. The grant is depth-1 only, so kit children are not transitively included, and only the directly referenced method is unlocked. See Sharing and permissions for the full rule.

Attach a method to an experiment

Inside an experiment popup, methods appear as a row of browser-style tabs at the top of the Methods area. Click the + button on the tab bar to open the method picker.

The picker has a search box at the top (search by name or#tag), a Recently used in this project section pinned to the top, and a folder-grouped list below. Hover or arrow through entries to preview the method body in the right pane, then press Enter or click to attach.

Recording variations on a single experiment

When you open a method tab on an experiment, the amber Variation Notes bar sits at the top. Expand it and click + Add Note to add a timestamped ### Variation entry where you can describe what you did differently for this run (e.g., "halved the elongation time", "substituted Q5 for Phusion"). Each entry gets its own delete button on hover.

Most method types also let you edit the protocol itself directly inside the experiment tab, not just leave a note about it. A PCR tab edits its thermal gradient and recipe table, an LC tab its gradient, a Plate tab its layout, and the Cell Culture, qPCR Analysis, and Markdown tabs their own bodies. Your edits save as an experiment-local copy when you click Save Changes, so the original protocol in the library stays untouched, and a Reset to Method button reverts the experiment's copy back to the library version whenever you want.

PDF methods are the exception. They render the original file and have no per-experiment copy, so the Variation Notes panel is the only place to record what you did differently for that run.