Skip to content

🚧 Sequencing Assay Setup - #113

Draft
awarkow wants to merge 2 commits into
mainfrom
sequencing-assays
Draft

awarkow wants to merge 2 commits into
mainfrom
sequencing-assays

Conversation

@awarkow

@awarkow awarkow commented Oct 19, 2026 •

Copy link
Copy Markdown

Summary

This PR adresses #89 by adding sequencing-specific assay classes to the Common Access Model. They extend the existing generic Assay class so we can capture experiment metadata for whole genome, whole exome and RNA sequencing data.

New Assay Classes

The new classes form a hierarchy under the existing Assay class:
Assay
└── SequencingAssay
├── GenomicsAssay (WGS/WXS)
└── TranscriptomicsAssay (RNA-Seq)

Each subclass inherits all slots from its parent. Every sequencing assay therefore keeps the core Assay fields (assay_id, subject_id, sample_id, file_id, assay_type, etc.) and adds its own experiment metadata.

SequencingAssay

Sequencing Experiment Assay: a sequencing experiment performed on a Biospecimen. This is the shared base for all sequencing assays.

Slot Range Description
sequencing_center_id The sequencing center that performed the experiment
library_name string Name of the sequencing library
experiment_date date Date the sequencing experiment was performed
experiment_strategy EnumSequencingStrategy Sequencing strategy used
is_paired_end boolean Whether reads are paired-end
platform EnumSequencingPlatform Sequencing platform used
instrument_model EnumSequencingInstrument Sequencing instrument model used
total_reads integer Total number of reads generated
is_adapter_trimmed boolean Whether adapter sequences were trimmed
adapter_sequencing string Adapter sequence used, if known (expected when is_adapter_trimmed is false)
quality_scale EnumReadGroupQualityScale Quality score scale used for the read group
reference_genome EnumReferenceGenome Reference genome build the data was aligned to or generated against
workflow_type string Type of workflow that produced the file (Kids First Dataservice: workflow_type)
workflow_tool string Tool used by the workflow (Kids First Dataservice: workflow_tool)
workflow_version string Version of the workflow tool
workflow_endpoint Workflow endpoint
flow_cell string Flow cell identifier for the read group
lane_number integer Lane number for the read group

GenomicsAssay

WGS/WXS Assay: a whole genome or whole exome sequencing experiment performed on a Biospecimen. It extends SequencingAssay with alignment and coverage metrics.

Slot Range Description
max_insert_size integer Maximum insert size (bp)
mean_insert_size float Mean insert size (bp)
mean_depth float Mean sequencing depth of coverage
mean_read_length integer Mean read length (bp)
target_capture_kit string Target capture kit used, if any (relevant for WXS)

TranscriptomicsAssay

RNA Sequencing Assay: an RNA sequencing experiment performed on a Biospecimen. It extends SequencingAssay with library construction details.

Slot Range Description
library_strand EnumLibraryStrand Strandedness of the sequencing library
library_prep EnumLibraryPrep Library preparation method
library_selection EnumLibrarySelection Library selection method

New Enums

Caution

Work in progress. The new slots reference several enums. Only the 3 below are defined so far. Need to pair others with correct ontologies

EnumLibraryPrep

Library preparation methods for RNA sequencing. Values are drawn from OBI and constrained to subclasses of an OBI source node.

Value Title Description
OBI:0000848 polyA RNA extraction An RNA extraction process, typically using poly dT oligomers, whose desired output material is polyA RNA.
OBI:0000855 total RNA depletion An RNA extraction process in which total cellular and organelle RNA are extracted.

EnumAnalyteType

The type of analyte extracted from the biospecimen. Values are drawn from NCIt and constrained to subclasses of NCIt C706 (including the source node itself).

Value Title Description
C449 DNA A long linear double-stranded polymer formed from nucleotides attached to a deoxyribose backbone and found in the nucleus of a cell; associated with the transmission of genetic information.
C812 RNA Single-stranded long chain of nucleotides containing ribose.

EnumLibrarySelection

Library selection methods used to enrich or select nucleic acid for sequencing. Values are drawn from NCIt and constrained to subclasses of NCIt C15241 (including the source node itself).

Value Title Description
C163986 Hybrid Selection A genomic library where the sample has been subjected to enrichment via nucleic acid hybridization.
C17003 PCR A method for amplifying a DNA base sequence using multiple rounds of heat denaturation of the DNA and annealing of oligonucleotide primers complementary to flanking regions in the presence of a heat-stable polymerase.
C163987 Affinity Enrichment A genomic library where the sample has been subjected to enrichment via binding to a target protein or oligonucleotide prior to molecular analysis.
C163988 Poly-T Enrichment A genomic library where the sample has been subjected to enrichment via binding to immobilized poly-T oligonucleotides, which will preferentially isolate polyadenylated (poly-A) RNAs.
C163989 Random A genomic library constructed to generate random DNA fragments by subjecting a genomic sample to either amplification using random primers or fragmentation via exposure to restriction enzymes or shear stress.
C163990 rRNA Depletion A genomic library where the sample has been subjected to a ribosomal RNA depletion step before it is amplified.
C163991 miRNA Size Fractionation A RNA library that has been fractionated by size exclusion methods to enrich for microRNAs.

Open Questions

  • Is library_prep the same thing as library_construction? If so, should we rename or alias it?
  • Should adapter_sequencing be conditionally required when is_adapter_trimmed is false? Can we enforce this with a LinkML rule?

@awarkow awarkow changed the title Sequencing Assay Setup 🚧 Sequencing Assay Setup Oct 19, 2026
@awarkow
awarkow marked this pull request as draft October 19, 2026 14:45

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant