Chapter 6

Phase 3: Integration

Overview

6.1 What Phase 3 Adds to a Part Registry

Phase 1 of WIA-BIO-021 fixes the shape of a part record, and Phase 2 exposes those records over HTTPS. Phase 3 deals with what happens after a part has been published. A promoter that one laboratory characterized in 2024 may be re-optimized by another team months later. A part may be licensed to academics but not to companies. A record may be requested by a registry that has never heard of its author. The protocol layer therefore defines three things:

Phase 3 must handle a property specific to biological parts: a part is a DNA sequence, and a single changed base can alter behavior in a living cell. A software library can often absorb a small change silently. A genetic circuit that has been assembled, sequenced and characterized cannot. Much of this phase is therefore about making change visible, attributable and reversible in the record, even when it cannot be reversed in the freezer.

Technical Foundation

6.2 Immutable Records and the Version Graph

Once published, a part record is immutable. An update does not overwrite the old record. It creates a new version with a new identifier. The earlier version is kept, carries a replacedBy link, and receives a deprecation notice. Consumers can therefore always retrieve exactly what a published paper or earlier design referred to.

The version history is a directed acyclic graph, not a flat list. Two groups may edit the same ancestor independently, and the protocol permits such forks. Merging two lines of descent is deliberately not automatic. It follows an explicit-acknowledgement model in which the contributing institutions co-sign the merge. The reasoning is practical. Two sequence edits that each worked in isolation may interact badly, and a merge should record that someone accepted responsibility for the combined result.

A consumer who wants to understand a part's lineage walks the graph from the current version back through its ancestors. Each node says who changed what, when, and whether the underlying sequence differs from its parent.

6.3 Semantic Versioning for DNA

Parts use MAJOR.MINOR.PATCH, with the meaning of each position tied to the sequence:

IncrementTriggerExample from the specification
MAJORIncompatible sequence change1.1.0 → 2.0.0, sequence optimization
MINORBackward-compatible addition1.0.0 → 1.1.0, new characterization data
PATCHBug fix or documentation update1.1.0 → 1.1.1, typo fixed in description

The history entries carry a sequenceHash next to each version. This makes the rule checkable. In the specification's own example, versions 1.0.0 and 1.1.0 share the same hash because only fluorescence data was added, and 2.0.0 has a different hash because the sequence was codon-optimized for mammalian cells. A registry can therefore flag an inconsistent record, such as a MAJOR bump with an unchanged hash or an unchanged MAJOR number with a changed hash. The example below is shortened from the specification:

{
  "versionHistory": [
    { "version": "1.0.0", "author": "initial-creator",
      "changes": "Initial part submission",
      "sequenceHash": "sha256:abc123..." },
    { "version": "1.1.0", "author": "lab-member-2",
      "changes": "Added fluorescence characterization",
      "sequenceHash": "sha256:abc123..." },
    { "version": "2.0.0", "author": "optimization-team",
      "changes": "Codon optimization for mammalian cells",
      "sequenceHash": "sha256:def456..." }
  ]
}

Market Analysis

6.4 Who Moves Parts: Registries, Repositories and Material Providers

The registry ecosystem is split between sites that hold information about parts and sites that hold the physical DNA. The specification models this split in a materialTransfer block, which records whether material is available and from which provider. It also records the provider's catalog number, cost with currency, shipping restrictions, and whether a material transfer agreement is required:

{
  "materialTransfer": {
    "available": true,
    "provider": "Addgene",
    "catalogNumber": "12345",
    "cost": 65.00,
    "currency": "USD",
    "shippingRestrictions": ["country:CN", "country:IR"],
    "requiresMTA": true
  }
}

Shipping restrictions are part of the record because moving biological material across borders is regulated, and a researcher should learn that before designing around a part they cannot receive. The licensing model also matters commercially. A part under a restricted licence behaves differently for a startup than for a teaching lab, and the protocol makes that difference explicit at read time rather than leaving it in a PDF.

Industry Applications

6.5 Deprecation as a Working Practice

Parts are rarely wrong in the sense of being invalid. More often a better part appears, for instance one with improved expression. The deprecation block lets the registry say so without removing anything:

{
  "deprecation": {
    "deprecated": true,
    "date": "2024-11-15",
    "reason": "Superseded by BBa_K789012 with improved expression",
    "replacementPart": "BBa_K789012",
    "stillAvailable": true
  }
}

The stillAvailable flag matters in a laboratory setting. A team midway through a project, with a validated construct already in the freezer, needs the old part's record to remain retrievable even after a better alternative exists. A consumer such as a design tool can use replacementPart to suggest an upgrade while still allowing the original to be resolved.

The design tools named in the provenance protocol (Benchling, SnapGene, Geneious, j5, RAVEN and Cello) are where this metadata gets used day to day. A part that appears in a Cello-generated circuit or a j5 assembly plan carries its version, its history and any deprecation notice with it.

Standards Compliance

6.6 Licensing Terms Attached to Parts

Every part carries licence terms, and the protocol exposes both the licence and the contributor declarations on every read. The specification lists six supported licences:

LicenceCodeMeaning
CC-BY-4.0CC-BYAttribution required
CC-BY-SA-4.0CC-BY-SAShare-alike required
CC0-1.0CC0Public domain
MITMITPermissive software licence
ProprietaryPROPCustom terms required
OpenMTAOMTAOpen Material Transfer Agreement

In practice these fall into three families: open use with attribution, open use under copyleft (CC-BY-SA or OpenMTA), and restricted use such as academic-only. The inclusion of OpenMTA reflects a biological reality. Sharing a plasmid is the transfer of a physical object, not only a copy of information, so a material agreement can apply even when the sequence is openly documented. When a commercial user's request intersects a restricted-licence part, the protocol emits a typed licensing.restricted event instead of silently refusing or silently allowing the request.

6.7 Access Tiers and Per-Action Permissions

Access is described at two levels. The coarse level has three tiers:

The fine level is the accessControl object, which assigns roles to four actions:

{
  "accessControl": {
    "visibility": "public|private|restricted",
    "permissions": {
      "view": ["public"],
      "download": ["registered-users"],
      "modify": ["part-owner", "admin"],
      "characterize": ["registered-users"]
    },
    "embargoUntil": "2025-01-01T00:00:00Z",
    "requiresAgreement": true,
    "agreementUrl": "https://example.com/mta.pdf"
  }
}

Separating characterize from modify is a deliberate choice for this domain. Registered users can add measurements to a part, which is how a registry accumulates evidence, but only the owner or an administrator can change the part itself. The embargoUntil field supports a common research pattern: a team can register a part before a publication appears and have it become visible only afterwards. Where requiresAgreement is set, the agreementUrl points to the terms a requester must accept first.

Implementation Considerations

6.8 Federation Envelopes and Trust Classes

Federation lets a search at one registry surface results from peers. The specification names the iGEM Registry, JBEI Public Inventories, Addgene and institutional repositories as examples. A federated result arrives in an envelope that carries four things: the source registry, the source part identifier, the resolution policy (cached copy or live lookup), and the trust class.

The trust class tells a downstream consumer whether it may rely on the record without independent verification. It is derived from four declared properties of the peer:

FactorValues
Biosecurity screeningDeclared support for the IGSC Harmonized Screening Protocol
Signing-key custodyHSM-backed, software-only, or shared
Audit-log retentionAt least 10 years, at least 5 years, at least 1 year, or undeclared
Curation-board membershipMember or non-member status

The first factor links the registry to DNA biosecurity: it asks whether a peer participates in the harmonized approach to screening synthetic sequences. Peers with weaker classes are not rejected. Their records are flagged at retrieval time, and a consumer can decide that a record is good enough for browsing but not for ordering material.

6.9 The Provenance Graph

Alongside the version graph, every part keeps a provenance graph describing how it came to exist. For each step it names the design tool, the design parameters, the assembly method (cross-walked in Phase 4 §A.4), the sequencing verification, and the laboratory that performed the work. The responsible institution signs the graph at every step.

The aim is for a downstream user to verify the chain without having to ask. A part that appears in a registry with a sequence trace and a named verifying laboratory carries more evidence than a bare sequence string. A user can also see at a glance whether a sequence was only designed in software or was also confirmed by sequencing.

Future Outlook

6.10 Conflict Handling, Audit Trails and Curation

As more laboratories contribute measurements, disagreement is inevitable. When two contributors submit overlapping characterization data with conflicting headline values, the protocol layer does not average them or let the later one win. It flags the conflict and routes it to the registry curator, who has three options: let one record supersede the other, retain both with annotations, or escalate to the principal investigators of the contributing institutions. The conflict envelope stays in the audit log for later researchers.

The audit log records the actor, the action, the resource identifier, hashes of the state before and after, and an Ed25519 signature made with the actor's institutional key. Each entry includes the previous entry's signature, so tampering is detectable. Retention is bounded by the lower of ten years, the academic provenance norm, or the donor-consent window where a part derives from human or non-public material. Bulk imports are idempotent on the hash of the part-identifier set, and control-plane calls use a 96-bit nonce with a 300-second skew window.

Disputed records, deprecation requests and federation policy changes go to a curation board with rotating, staggered two-year terms. Its decisions are published together with the dissent record, and a ruling can be appealed once to the full board on new evidence.

합성생물학 레지스트리 생태계

A synthetic biology registry sits between design software, DNA synthesis and assembly laboratories, and repositories that store physical clones. The part record is the object that ties these together. The design tool reads its sequence and metadata, the assembly lab uses its identifier, and the repository ships the matching material. Phase 3 is the point at which these independent actors begin to share records across organizational boundaries instead of within one site.

BioBrick 조립 표준

BioBrick parts are DNA fragments flanked by a standard prefix and suffix. The prefix carries EcoRI and XbaI sites and the suffix carries SpeI and PstI sites. XbaI and SpeI leave compatible cohesive ends, so two parts can be joined, and the junction is no longer cut by either enzyme. The result is itself a BioBrick that can be composed again. This composability is why the identifier and the sequence must stay stable. A composite part refers to its components, and if a component's sequence were silently replaced, every composite built from it would change meaning. The MAJOR/MINOR/PATCH rules and the sequence hash are the registry's guard against that outcome.

iGEM 대회 구조

The iGEM competition engages student teams who design, build and test engineered biological systems and contribute new parts to the iGEM Registry. Part identifiers of the form BBa_..., such as the BBa_K789012 used in the deprecation example, descend from this tradition. The competition shows why the protocol needs both licensing and curation. A large number of contributors with varying experience submit parts every year, and later teams rely on the accumulated records. Versioned history, attributable characterization data and a deprecation path let a registry grow without becoming unreliable.

코드 예제: BioBrick 파츠 검색기

6.11 A Client-Side Part Resolver

The following Python sketch works on parsed records that use the field names shown earlier in this chapter. It does not call any registry endpoint, and the catalog is a dictionary keyed by part identifier. It follows deprecation links to a current part, checks whether a part can be shipped to a country, and verifies that MAJOR bumps match sequence-hash changes.

from datetime import datetime, timezone

def resolve(catalog, part_id, max_hops=5):
    """Follow replacementPart links from deprecated parts."""
    for _ in range(max_hops):
        rec = catalog[part_id]
        dep = rec.get("deprecation", {})
        nxt = dep.get("replacementPart")
        if not dep.get("deprecated") or not nxt or nxt not in catalog:
            return part_id, rec
        part_id = nxt
    return part_id, catalog[part_id]

def can_ship(record, country_code):
    mt = record.get("materialTransfer", {})
    blocked = mt.get("shippingRestrictions", [])
    return mt.get("available", False) and ("country:" + country_code) not in blocked

def publicly_visible(record, now=None):
    ac = record.get("accessControl", {})
    if ac.get("visibility", "private") != "public":
        return False
    until = ac.get("embargoUntil")
    if until:
        now = now or datetime.now(timezone.utc)
        return now >= datetime.fromisoformat(until.replace("Z", "+00:00"))
    return True

def semver_consistent(record):
    """MAJOR bump if and only if the sequence hash changed."""
    hist = sorted(record["versionHistory"], key=lambda h: h["date"])
    for prev, cur in zip(hist, hist[1:]):
        major_up = int(cur["version"].split(".")[0]) != int(prev["version"].split(".")[0])
        seq_changed = cur["sequenceHash"] != prev["sequenceHash"]
        if major_up != seq_changed:
            return False
    return True

Applied to the version history in section 6.3, semver_consistent returns true. Running resolve on a deprecated part whose replacement is present returns the replacement. If the replacement is absent from the local catalog, it returns the original record rather than failing, which matches the intent of stillAvailable. The hop limit in resolve is a local safeguard of this sketch, not a rule from the specification.

합성생물학 응용 분야

Typical uses of registry parts include biosensors, metabolic pathway engineering, logic-gate circuits designed with tools such as Cello, and cell-based therapeutics. The protocol features matter differently in each. A biosensor developer cares about characterization data and whether a newer version changed the sequence. A metabolic engineer working in a new host cares about codon-optimized MAJOR versions. A therapeutics group working with human-derived material is the main reason for the donor-consent bound on audit-log retention and for strict access tiers.

복습 질문

Review Questions

Summary

6.12 Summary and Transition to Phase 4

Phase 3 treats a registry part as a long-lived scientific object, not as a mutable database row. Records are immutable and form a version graph. Semantic versioning is tied to the sequence hash. Deprecation retires parts without erasing them. Licences and access tiers are exposed on every read, and material transfer records carry cost, provider and shipping restrictions. Federation envelopes carry a trust class derived from screening support, key custody, audit retention and curation membership, and a provenance graph signed at each step lets consumers verify how a part was made. Curators resolve conflicts, and the audit log preserves the decisions.

Within the 1.x line, every Phase 1 envelope, Phase 2 endpoint and Phase 3 exchange must stay reachable. Hosts may add optional fields but may not remove existing ones, and breaking changes need a major version bump with a 12-month deprecation window. Phase 4 builds on this foundation by integrating the registry with the surrounding ecosystem. That includes the assembly-method cross-walk that the provenance graph already refers to, and the shared identity and audit services used by other WIA family standards.