Sequencing Files
Sequencers write files. SeqDesk’s job is to work out which file belongs to which
sample, record that link durably, and then control who can see it. This section
covers the whole path from “there is a directory full of .fastq.gz” to “the
researcher can download their reads”.
Everything here is facility-admin only and lives on a sequencing order’s
Sequencing Data page (/orders/[id]/sequencing). There is no standalone
Files page: the legacy /orders/[id]/files route redirects — non-demo facility
admins to the Sequencing Data page, everyone else to the order page. The order
must be SUBMITTED or COMPLETED; a DRAFT order rejects every sequencing
action.
The mental model
SeqDesk never moves or renames your sequencing data. It points at it.
site.dataBasePath ← one configured root directory
└── 20260415/ ← whatever the sequencer wrote
├── barcode01/
│ └── FAX12345_pass_barcode01_a1b2c3d4_0.fastq.gz
└── barcode02/
└── …
▼ scan (read-only) ▼ match ▼ assign
Read { sampleId, file1: "20260415/barcode01/FAX…_0.fastq.gz", file2: null,
dataClass: "cleaned", isActive: true }Four consequences follow, and they explain nearly every question people have:
- Paths are stored relative to the data base path. Moving the root directory and re-pointing the setting keeps every link working. Moving a file inside the root breaks its link, and the sequencing overview flags the sample as pointing at a missing file.
- A file is never copied on assignment. Only uploads and promoted pipeline candidates put new bytes on disk.
- Assignment creates a
Readrecord on the sample. Reads are the unit that pipelines, delivery and ENA submission consume — not files, not runs. - Nothing escapes the root. Every path is resolved through a traversal check;
absolute paths and
..segments are rejected outright.
The three ways files get linked
| Route | When to use it | What it produces |
|---|---|---|
| Auto-Discover on the Associate view | The normal case — data has landed in the data directory | Suggestions you review and apply |
| Manual association | Names are ambiguous, or discovery found nothing | A link you pick file-by-file |
| Upload | The files are not on the server at all | A copied file plus a Read, under a generated path |
All three converge on the same Read record, and all three respect the
raw-data protection rules described in
Assigning Files to Samples.
Why the run plan comes first
Discovery tries a run-plan barcode before anything else. On a Nanopore output tree where every filename is a meaningless flow-cell id, that is the difference between deterministic matching and no matching at all.
Set up the run plan before the data arrives. If your order form collects a per-sample barcode, the run plan builds itself when you create the run.
Linking is not releasing
Assigning a read makes it visible to the facility. The researcher still sees
nothing until a facility admin presses Make downloadable to user on the
Delivery to user card. Even then, only active reads classified cleaned
and customer-visible reports are released.
That two-step design is deliberate: it lets the facility associate raw output, run cleaning pipelines and review QC without ever exposing unfiltered — possibly human-contaminated — reads. See Releasing data to the researcher.
Related sections
- Sequencing Order Lifecycle — the statuses that gate every action here.
- Running a Pipeline — what consumes the reads once they are linked.
- ENA Submission — where read files acquire
ERX…andERR…accessions.