Benchling's Registry models complex linkages between conceptual and physical entities. Previously, there were no restrictions on entity linkages besides defining the schema of the entity linkage. With lineage enforcement, users can now restrict what values are considered valid for a given linkage, assuring better design and quality control of data models.
Enforcement Path Options
Let's use the data model below to explain the three types of enforcement relationships that can exist:
Path 1: Linear Path
The linear path (outlined in blue) is the most straightforward usage of the entity enforcement. If:
-
Child 1 is the child of Parent 1
-
Child 2 is the child of Parent 2
-
Parent 1 and 2 are linked
Child 1 and 2 can be linked. For example, let's say that plasmid A (Parent 1) links to gene A (Parent 2). Through enforcing lineage, users can ensure that the plasmid preps of plasmid A (Child 1) can only link to the parts of gene A (Child 2). The designated arrows under the "Enforce Parent Lineage" could be either:
-
Plasmid A (Parent 1) -> Gene A (Parent 2)
-
Gene A (Parent 2) -> Plasmid A (Parent 1)
Path 2: Shared Source Path
The shared source path (outlined in purple) enforces that if:
-
Child 1 is the child of Parent 1
-
Child 2 is the child of Parent 2
-
Parent 1 and 2 come from the same source
Child 1 and 2 can be linked. In this example, let's say that domain 1 (Parent 1) and AA sequence 1 (Parent 2) come from Plasmid 1 (Shared Source). Lineage enforcement ensures that smaller DNA portions of Domain 1 (Child 1) can only be linked to short AA sequences of AA sequence 1 (Child 2). The designated arrows under the "Enforce Parent Lineage" could be either:
-
Domain 1 (Parent `) -> Plasmid 1 (Shared Source)
-
-
-> AA sequence 1 (Parent 2)
-
AA Sequence 1 (Parent 2) -> Plasmid 1 (Shared Source) -> Domain 1 (Parent 1)
-
Domain 1 (Parent `) <- Plasmid 1 (Shared Source) -> AA sequence 1 (Parent 2)
-
Path 3: Shared Target Path
The shared source path (outlined in purple) enforces that if:
-
Child 1 is the child of Parent 1
-
Child 2 is the child of Parent 2
-
Parent 1 and 2 share a target
Child 1 and 2 can be linked. In this example, let's say that cell line 1 (Parent 1) links to protein lot 1 (Shared Target) that links to protein 1 (Parent 2). With lineage enforcement, lots of cell line 1 (Child 1) can only link to lots of protein 1 (Child 2). The designated arrows under the "Enforce Parent Lineage" could be either:
-
Cell line 1 (Parent 1) -> Protein Lot 1 (Shared Target) -> Protein 1 (Parent 2)
-
Protein 1 (Parent 2) -> Protein Lot 1 (Shared Target) -> Cell line 1 (Parent 1)
-
Cell line 1 (Parent 1) -> Protein Lot 1 (Shared Target) <- Protein 1 (Parent 2)
How to Setup this Feature
This feature can be configured as a setting on an entity link between registry schemas.
Once configured, users can only enter valid values via the UI, API, and spreadsheet uploader.