kenfigure

Kenfigure™: a YAML spec to define Benchling configurations


Project maintained by kennovation1 Hosted on GitHub Pages — Theme by mattgraham

Kenfigure™

License: ODC-BY 1.0 Version

Overview

Kenfigure: a YAML spec to define Benchling configurations

This approach provides a structured, accurate, reproducible, reviewable, and maintainable definition of your Benchling tenant configurations.

Because it is a structured human and machine readable format, it works exceptionally well with git and can therefore form the foundation of a top-notch change management process.

Kenfigure is highly useful solely as a standalone documentation tool, but I also use it for internal tools I’ve developed to programmatically deploy configurations, extract and document configurations, check against a set of schema quality rules and create dynamic ER diagrams. I created the spec for my internal tool use, but am making it publicly available since it is highly valuable as a way to document the source-of-truth for Benchling configurations even without leveraging any tools.

Here’s a very stripped down example:

Entity_schemas:
- Name: Chemical
  Description: A generic small molecule.
  Entity type: Molecule
  Prefix: CHEM
  System name: chemical
  Containable type: None
  Name template: []
  Constraint:
  - Canonical SMILES
  - CAS RN
  Naming options:
  - NEW_IDS
  # - Generate new registry IDs  # Long form is accepted, but I prefer the short form
  RegID chips: false
  RegID display: false
  Icon: small-molecule
  Access type: Registry-based
  Diagram:
    Group: Chemicals  # All entities with the same name are rendered in a group of that name
  Fields:
  - Name: CAS RN
    Description: If we don't have a SMILES, then a real or pseudo CAS RN drives uniqueness
    Tool tip: Create a pseudo CAS RN if no official number exists
    System name: cas_rn
    Type: Text

See examples/Chemical.yaml for a more complete annotated example.

Documentation

Benefits

Here are some benefits of documenting your Benchling configuration in kenfigure files in git. In no particular order: (Note that I’m included some benefits are required additional tooling that is not open source. I’ve left these bullet points here since it helps to show the future possibilities when it’s with Go2 Software proprietary tools or others.)

Mindset

Limitations

Schema

JSON schema technical notes

VS Code specific notes

Other IDEs

If you use a different IDE, please create a pull request so we can document and applicable notes.

Here’s some doc for how to configure PyCharm for YAML editing with a custom schema.

License and Trademark

Kenfigure™ is provided under the Open Data Commons Attribution License (ODC-BY 1.0).

You are free to use, adapt, and share this schema with proper attribution.

Commercial use of software tools that rely on this schema may require a separate license.
Please contact info@go2software.com for commercial licensing inquiries.

Kenfigure™ is an trademark of Go2 Software LLC.
Use of the name “Kenfigure” in derivative projects or commercial products is not permitted without permission.

Benchling is a trademark of Benchling, Inc.