In Vivo Sync App Summary
The sync between In Vivo and Benchling is a Benchling App that utilizes Benchling core’s and Benchling In Vivo’s API to sync data between the In Vivo product and the Registry product. This app is hosted on AWS and the code is controlled by Benchling.
In practicality, the In Vivo Sync app should be viewed as two, one-way integrations. Data should only be edited where it was originally entered, as this app itself is not a bidirectional integration. If data originally created in In Vivo is synced to Benchling’s Registry, and subsequently edited in Benchling’s Registry, those updates will not sync back to In Vivo. Thus, it is critical that data be edited only where it was originally created, with no exceptions.
Sync Direction | Sync Function |
Benchling Core → Benchling In Vivo | Surface registered custom entities for use as Treatments in Benchling In Vivo. |
Benchling In Vivo → Benchling Core | Create and update In Vivo Studies, Groups, Animals, Samples, Measurements, and Observations in Benchling core’s Registry. |
In Vivo Sync App Requirements
Benchling Registry Schema Requirements
The following schemas must be configured and mapped within the In Vivo Sync App. Each schema has a specific set of fields that accept distinct data from In Vivo. Schema type, field type, and required/optional designation on fields must strictly be adhered to. The name of each schema and the name of each field are customizable. After implementation, if removing or updating any existing fields on mapped schemas, it is important to contact customer support to avoid any errors that would cause downtime with the sync. Any schema field mapped for use in the In Vivo Sync App will utilize In Vivo as the source of truth; any data that is manually manipulated in Benchling’s Registry in a mapped field is at risk for being overridden by the In Vivo Sync App with reference to In Vivo. This situation should be avoided at all times.
Concept | Schema Type | Corresponding In Vivo Concept |
In Vivo Study | Registry; Custom | Study |
In Vivo Group | Registry; Custom | Group (ex. Group 1, Group 2, Control) |
In Vivo Animal | Registry; Custom | Animal (ex. Rat, Mouse) |
In Vivo Animal Sample | Registry; Custom | Sample (ex. Brain, Liver) |
In Vivo Treatment | Registry; Custom | Treatment (ex. Combination of substance selected via Registry → In Vivo sync, or via the glossary, AND dose, dose units, and other metadata) |
In Vivo Animal Sample Details | Result | Captures any metrics associated with an animal sample (ex. volume, weight, etc. recorded when taking the sample) |
In Vivo Measurement | Result | Captures any measurements recorded against an animal (ex. body weight, tumor volume, etc.) |
In Vivo Observation | Result | Captures any observations recorded against an animal (ex. barbering) |
- The In Vivo Sync app does not create distinct entities for Cages. Cage Names will be recorded in Benchling core as a text field on the In Vivo Animal schema.
There are many additional configurations that must be set and maintained in order for the In Vivo Sync app to function correctly. It is recommended that an appropriate Admin is identified and enabled to make metadata field updates to both In Vivo and Benchling's Registry.
- Important considerations must be in place when updating, removing, or creating new metadata fields that will be mapped into the Benchling Registry. If field types are incompatible, the integration will error out and will not be able to write certain data in Benchling. Our best practice recommendation is that any In Vivo field type other than a Number or a Date should be mapped to a Text field in Benchling.
- Only Registry schemas can be customized with additional metadata fields. Result schemas cannot be customized.
- For full compatibilty information, see the matrix below.
Benchling Registry Schema Field Type | ||||||
Text | Datetime | Decimal | Single-select dropdown | Multi-select dropdown | ||
Benchling In Vivo Field Type | Text | ✅ | ❌ | ❌ | ❌ | ❌ |
Date | ⚠️ Yes, but not best practice | ✅ | ❌ | ❌ | ❌ | |
Number | ⚠️ Yes, but not best practice | ❌ | ✅ | ❌ | ❌ | |
Single-select dropdown | ✅ | ❌ | ❌ | ⚠️ Possible but not recommended as it could cause the sync to fail if not properly set up. Contact Support if needed. | ❌ | |
Multi-select dropdown | ✅ | ❌ | ❌ | ❌ | ⚠️ Possible but not recommended as it could cause the sync to fail if not properly set up. Contact Support if needed. |
- One specifically importany concept is that if a metadata field is configured in the In Vivo glossary as a Select (aka Dropdown) type, the corresponding field on the corresponding Benchling schema should be configured as a Text.
- If you believe it is necessary to utilize a dropdown list in Benchling and in Invivo, please reach out to support for further help. Mapping to a dropdown list in Benchling is not recommended as best practice, but certain situations may require an alternate set up to Text
- Entity or Entry Link fields in In Vivo are not supported through the In Vivo Sync app outside of the Treatment selection in In Vivo. If there is a metadata field in the In Vivo Glossary that could correspond to an entity or entry on Benchling, this value will not populate as a chip, but will populate as text. You must configure the associated Registry Schema field type must be set to text in this case.
- Naming templates on all schemas must produce unique names for every registration event. Naming templates are customizable, but we recommend that you keep the best practice naming templates that will be set upon implementation.
- Updating the name of an object in In Vivo that corresponds to a field value used in a naming template on a schema in Benchling will not automatically result in the Benchling entity name being updated. A backfill can be performed in the app to resync the entities and resultantly produce a new entity name. This will not result in duplicate entities.
- If you would like to use a Registry ID of the synced entities you will have to set the “Registry ID Number” as well as a text value matching the Registry ID prefix in the naming template.
- A metadata field called “Benchling Integration Folder ID” must be configured on the Study within the In Vivo Glossary. The field must be configured as a text field.
- This metadata field should be added as a required field on every Study Form as the sync from In Vivo to Benchling core will not work without it.
- Computed fields can be created on Benchling Registry schemas used by the In Vivo Sync app. See the Computed Field Basics help article for more information on computed field functionality. Please reach out to Benchling Support to configure computed fields.
- If using the In Vivo Sync app to sync treatments from Benchling Core → Benchling In Vivo, all desired substances to be used as treatments will need to be registered custom entities in Benchling core.