Chapter 4: Quality Control and Validation

Extended Discussion — Further Topics in ALCOA+ 9 attributes and ICH E6 R3 GCP validation

4.1 Why Quality Control Is a Data Problem in Cryobiology

A cryopreservation result is the end of a long chain. A formulation is prepared from specific reagent lots and cooled along a controlled profile. The sample is stored, warmed, and then counted or stained, often days later. A viability percentage reported at the end of that chain is only as trustworthy as every record before it. A wrong lot number, an unsynchronized clock, or a count that does not add up can make a good protocol look bad, or the reverse.

WIA-CRYO-010 Phase 1 addresses this by making each link in the chain a typed JSON-LD record: experiment, cryoprotectant formulation, viability assessment, and long-term outcome study. Each record can carry its own quality and provenance blocks. This chapter shows how those blocks, together with schema validation and a few arithmetic checks, implement the ALCOA+ attributes. It also shows how they support the risk-based thinking of ICH E6 R3 where research data feed clinical work.

4.2 The Nine ALCOA+ Attributes Mapped to the Schemas

ALCOA+ is the data-integrity vocabulary used by regulators and auditors. The original five attributes are Attributable, Legible, Contemporaneous, Original and Accurate. The "plus" adds Complete, Consistent, Enduring and Available. The specification does not use these names, but its fields line up with them closely.

AttributePractical meaning in the labWhere the standard supports it
AttributableWho produced or changed the valueprovenance.creator, modifiedBy; assay operator; investigator orcid
LegibleReadable and unambiguousControlled vocabularies; mandatory units; JSON-LD context
ContemporaneousRecorded when observedassessmentTime; quality.timeliness
OriginalFirst capture or a certified copyrawDataLinks; uncompressed TIFF; HDF5 logs
AccurateCorrect and verifiedquality.accuracy; standardError; assay quality flag
CompleteNothing missingquality.completeness (0–1)
ConsistentNo internal contradictionsquality.consistency; shared enumerations
EnduringSurvives for the retention periodPDF/A, semantic versioning, changeLog
AvailableRetrievable for reviewPersistent @id URNs, DOIs, ORCID and ROR identifiers

4.3 Attributable and Contemporaneous: People and Clocks

Attribution works at two levels. At the study level, the experiment record names a principalInvestigator with an ORCID and an institution with a ROR identifier. These are stable identifiers that survive a change of employer or a renamed department. At the measurement level, each assay entry has an operator and an equipment string. This matters because a single post-thaw count can be read by different people on different hemocytometers or flow cytometers, and systematic differences between them are a common source of unexplained variance.

Contemporaneity depends on clocks. Every timestamp must be ISO-8601, and Annex E of the specification notes that deadlines depend on synchronized time sources; NTPv4 against stratum-2 servers is described as sufficient for most uses. A freezer controller, a plate reader and a laboratory notebook that disagree by several minutes can make a warming step appear to follow the assay it preceded. quality.timeliness records when the data were collected, as distinct from created, which records when the record was written. A large gap between the two is a signal to review.

4.4 Original and Enduring: Raw Files and Archival Formats

The experiment record's results.rawDataLinks field holds an array of URIs, so a summary figure can always be traced to the files behind it. The standard's choice of file formats follows from what must be preserved:

JSON-LD remains the primary format for everything structured. XML is an alternative serialization only where JSON cannot be used.

4.5 ICH E6 R3 in a Research-Data Context

ICH E6 R3 is the revised Good Clinical Practice guideline. Its emphasis on proportionate, risk-based quality management, on data governance and on fit-for-purpose computerized systems applies to the data pipeline as well as the trial site. Most cryopreservation research is laboratory work rather than a clinical trial. The guideline becomes relevant when results inform clinical use of gametes, embryos, cells or tissues, or when a study is registered as a human outcome study.

The schemas contain the hooks for that situation. The experiment record has an irbApproval field and a fundingSource field. The long-term outcome study carries a registration block with registry, identifier and registration date. Its design block records randomization and blinding. A risk-based approach asks which values are critical to quality. In this domain these are typically the primary endpoint, the CPA concentrations, the thermal history, and the assay timing relative to thaw. Those fields deserve the strictest validation and review, while descriptive keywords need far less.

4.6 The Quality and Provenance Blocks

Phase 1 says every record should include quality metadata. The block below follows the specification's field names; the values are illustrative.

{
  "quality": {
    "completeness": 0.96,
    "consistency": true,
    "accuracy": "counts verified by second operator",
    "timeliness": "2025-01-14T09:32:00Z",
    "validation": {
      "validated": true,
      "validator": "QA-reviewer-02",
      "validationDate": "2025-01-15T10:00:00Z",
      "method": "schema + arithmetic checks"
    }
  },
  "provenance": {
    "creator": "operator-17",
    "created": "2025-01-14T09:40:00Z",
    "modified": "2025-01-15T08:05:00Z",
    "modifiedBy": "operator-17",
    "changeLog": []
  }
}

completeness is the share of required fields that are populated, expressed from 0 to 1. consistency is a boolean set only after consistency checks have run. A blank changeLog next to a modified time later than created is itself a finding: something changed without being recorded.

4.7 Schema Validation as the First Gate

The standard requires every JSON-LD document to validate against the published JSON Schema. It lists the ajv command line, the Python jsonschema library, and the JavaScript ajv library as tools. A batch gate in a pipeline can be as small as:

ajv validate -s schema.json -d data.json

Structural validation catches missing required strings such as title and the investigator's name, enumeration values outside the allowed set, and numbers delivered as strings. It cannot catch a well-formed record that is scientifically impossible. That is the job of the content checks in the following sections.

Custom fields are permitted, but only with an organization prefix such as myorg:customField. This keeps local additions visibly separate from the standard's own terms, so a validator can tell an extension from a typo.

4.8 Vocabulary Drift Between Records

Controlled vocabularies are what make records from different laboratories comparable, and the specification requires standardized enumeration values. Implementers should read the vocabulary section of Phase 1 carefully, because the schema listings and the controlled-vocabulary section do not always use identical tokens. For example, the experiment schema shows COOLING_RATE where the vocabulary section lists COOLING_RATE_OPTIMIZATION. Likewise, the viability schema shows ATP and ANNEXIN_V where the vocabulary lists ATP_ASSAY and ANNEXIN_V_PI. The vocabulary section also includes the lifecycle states SUSPENDED and FAILED, which the inline lifecycle enumeration omits.

The practical rule is to treat the published JSON Schema as the arbiter and to pin the schema version used for each validation run. A mapping table in the local pipeline, from legacy spellings to the current token, is better than silently accepting both. Otherwise one lab's "ATP" and another's "ATP_ASSAY" will split into two groups when results are pooled.

4.9 Units and Formulation Plausibility

The standard requires every numeric value to carry a unit, with QUDT as the recommended vocabulary. Concentrations may be %v/v, %w/v, M, mM, μM or mg/mL. Temperature is °C or K. A permeating CPA recorded as a bare number cannot be interpreted, because 10 %v/v and 10 mM of the same agent differ enormously in effect.

Formulation records add traceability fields for each component: casNumber, manufacturer, catalogNumber, lotNumber and, for permeating agents, purity. Useful content checks include:

4.10 Arithmetic Checks on Viability Data

The viability assessment schema stores totalCells, viableCells, deadCells and viabilityPercent side by side. This redundancy makes cheap and powerful checks possible. The three counts must reconcile, and the percentage must follow from them. The sketch below assumes the document is already parsed.

def check_assay(r, tol=0.5):
    issues = []
    if r["viableCells"] + r["deadCells"] != r["totalCells"]:
        issues.append("counts do not sum to total")
    if r["totalCells"] > 0:
        calc = 100.0 * r["viableCells"] / r["totalCells"]
        if abs(calc - r["viabilityPercent"]) > tol:
            issues.append("percent does not match counts")
    if not (0 <= r["viabilityPercent"] <= 100):
        issues.append("percent out of range")
    return issues

The tolerance is a local choice that covers rounding. A record that fails any check should have its quality flag on the assay set to FAIL or UNCERTAIN rather than being deleted. The three-value flag (PASS, FAIL, UNCERTAIN) exists so that doubtful measurements stay visible and are excluded deliberately, not quietly.

4.11 Choosing and Recording the Assay

The same sample can give different viability values depending on what the assay measures, so the method field is part of the result's meaning. The vocabulary covers these methods:

TokenWhat it reports
TRYPAN_BLUEMembrane exclusion of dye by intact cells
PROPIDIUM_IODIDE, 7AADNuclear stain entering cells with compromised membranes
CALCEIN_AMIntracellular enzyme activity in living cells
MTT, ALAMAR_BLUE, ATP_ASSAYMetabolic activity as a proxy for viability
ANNEXIN_V_PISeparates early apoptotic from necrotic cells
LDH_RELEASEEnzyme leakage from damaged membranes
TUNELDNA fragmentation
FLOW_CYTOMETRYPopulation-level readout, usually with one of the stains above

A membrane-integrity test immediately after thaw can overestimate survival of cells that are already committed to apoptosis. Comparing results across studies is only meaningful when the assay, protocol description and timing are all recorded.

4.12 Post-Thaw Timing, Recovery and Effective Viability

The timePostThaw object (a value and a unit such as hours or days) is one of the most important fields in the viability record. Cryoinjured cells can look intact shortly after warming and then die over the following hours or days. A viability figure without its time point is therefore incomplete in the ALCOA+ sense, even when every other field is filled in.

The recovery block separates two ideas that are often conflated. recoveryPercent expresses how many cells were found after thaw relative to cellsPreFreeze. viabilityPercent expresses how many of the cells counted were alive. effectiveViability combines them. A protocol that keeps 90 % of surviving cells viable but loses most of the cells during handling is not a good protocol, and only the combined view shows it. A consistency rule should confirm that cellsPostThaw and cellsPreFreeze use the same unit and that the recovery percentage follows from them.

4.13 Quality Control for Long-Term Outcome Studies

Long-term studies add risks that single experiments lack: attrition, changing protocols across centers, and selective reporting. The LongTermOutcomeStudy schema captures the controls an auditor looks for. Registration details (registry, identifier, date) allow the reported primary endpoint to be compared with what was declared in advance. The design block records study type, enrollment target, number of centers, randomization and blinding. The assessmentSchedule lists planned time points and samples per time point.

Useful checks compare planned and actual figures. successfulSamples must not exceed totalSamples. The stated successRate must follow from them. The confidenceInterval must have a lower bound below the upper bound and must contain the point estimate. Subgroup analyses in bySubgroup should be traceable to the pre-registered plan, so that a favorable subgroup is not simply the one that happened to work.

4.14 Typical Data-Integrity Failure Patterns

The failures that quality control catches in cryopreservation data are rarely dramatic. They are small, recurring mismatches:

Most of these are detectable automatically by comparing records with each other. The skill lies in deciding which findings block a release and which only require a note.

4.15 Review Workflow and Conformance Evidence

Automated checks produce a report, and a person decides what it means. A workable sequence is: schema validation, vocabulary and unit checks, arithmetic and cross-record checks, then human review of everything flagged UNCERTAIN or FAIL. The reviewer's identity and date go into quality.validation. The specification also defines a conformance tier model, and implementations claiming the higher tiers must pass its published test vectors and keep evidence, so the reports from this pipeline double as audit material.

4.16 Summary and Link to the Next Chapter

Data quality in this standard is built from specific, checkable parts. Identifiers and operators make records attributable. Timestamps and synchronized clocks make them contemporaneous. Raw-data links and archival formats preserve the original. The quality block reports completeness and consistency, while provenance and changeLog keep the history. Arithmetic checks on cell counts, plausibility checks on formulations, and careful recording of assay method and post-thaw timing guard against the errors that most often distort cryopreservation results. A risk-based reading of ICH E6 R3 tells reviewers to concentrate effort on the fields that drive the primary endpoint.

Validated records are the input for everything that follows. Phase 2 of the standard, which defines algorithms, works on these records, so its calculations inherit whatever quality the data already has. The next chapter therefore moves from asking whether a record can be trusted to asking what can be computed from it.