SiLA 2 - The Emerging Standard for Lab Automation
- Fig. 1: SiLA 2 Integration. SiLA 2 connects all Hard- and Software components of a lab. Lab-Information- and Management-System (LIMS), Process Management System (PMS), Databases (DB).
- Fig. 2: SiLA 2 Server/Client. One SiLA 2 Server has multiple SiLA Features, consisting of SiLA Commands and Properties. SiLA Clients communicate via gRPC protocol with the SiLA Server. Laboratory-Informations- und Managementsystem (LIMS), Process Management System (PMS).
Silvana K. enters her lab, looks at the display of her smartphone and finds all lab devices listed. She selects the balance, let it tare and weighs her sample. The values of tare and weight are automatically transferred into her electronic lab notebook (including further (meta-)information, like time and date, lab, room temperature and air pressure).
Silvio L. plans a cell-growth experiment. He combines a liquid handling robot, incubator and microtiter plate reader, all controlled by one computer running a process management system (PMS). The PMS recognises all components through a plug-and-play mechanism, requests their features (properties and commands), and controls them in a device-manufacturer independent manner. Siyun M. is running a large scale robotic screening platform with three robot arms, multiple liquid handlers, incubators and plate readers (compare ). She planned and purchased the platform according to her screening demands and connected all components to a central control unit. After installing the system, the control unit recognises all components and she can immediately start to work with the platform. All measured data will be automatically captured in an long-term readable format, which includes all the meta-data to fully reproduce the measurement. The data will be automatically assigned to the experiment, all steps documented, evaluated and visualised. This helps to focus the scientist on the interpretation of the resulting data and planning new experiments (compare also ). The primary data is saved in a format, that will still be readable many years after its generation.
All Fiction or The Coming Reality?
Such and similar scenarios, starting from simple usage of a single lab device to the control of complex platforms will be easily realizable by the new SiLA 2 standard.
The standard is designed to cover the control of simple lab devices, like a thermometer, a balance etc. up to complex devices, like pipetting robots, HPLC or GC-MS instruments, providing a unified communication framework and data exchange format, which is designed to be fast, flexible and future-proof (Fig. 1). The standard is not limited to addressing physical devices, like a classical device driver.
It can also be used for the communication between different software components, like a chromatography application or a Laboratory Information System (LIMS), based on a classical client-server architecture.
The new standard enables a clear separation between the scientist as a subject matter expert defining the requirements and the engineer doing the implementing. To bridge the two roles, a formal description, the SiLA Feature Definition Language (FDL), has been developed, in order to define the server features very clearly as SiLA Features. It is important that the SiLA features can be read by both the scientist and the programmer, by humans and machines. This means that a functional specification is no longer required. Everyone is free to create their own features in an vendor-independent manner. If there is a common agreement of several people to re-use a feature, there is also the opportunity to standardise features and thus to increase their value.
The modularity of the SiLA2 standard is achieved by separating the different features of a device / SiLA server into functional units. A feature is a set of SiLA commands and properties (see Fig. 2). After the feature design phase, all features may be rapidly implemented into executable code using the code generators for Python or JAVA. Some common features, like initialisation, run-control/pausing, simulation-mode switching may be already found in the open SiLA Software-Repository and are ready to use.
The SiLA Server/Client Architecture utilises the very efficient, fast and well-established gRPC framework (gRPC Remote Procedure Call) with its underlying HTTP/2 protocol and Protocol Buffers (a kind of compressed JSON) as data transfer. This has the advantage that SiLA is backed by a large development community without being dependent on gRPC (SiLA is only bound to the format, but not to the actual libraries). gRPC has very little overhead, offers encrypted communication and supports all common programming languages (Python, C++, C#, Java, Go, Ruby), which can be directly used for implementations. For data exchange between server and client, SiLA data types have been defined, which correspond to commonly used types in science and common programming languages (e.g., Integer, String, …). Compound data types, like lists and structures are also available.
For the automatic network recognition of servers / devices the widely used Zeroconfig/Bonjour protocol is applied. This protocol enables immediate finding and addressing of all devices and does not require any manual configuration. An important aspect of the new standard is the ability of a SiLA server to expose its full set of features to the client, so that the client does not need to know anything about the server a priori, but can address everything dynamically at runtime. This helps to dramatically reduce integration costs in the future, since interfaces can be tested on a functional level without writing a single line of code.
The open and royalty-free SiLA standard is designed to be lightweight, focusing on a minimal set of definitions for the communication and data transfer. Through its extendable modular design and independence of a concrete framework implementation or programming language it will be future-proof.
For a quick entry into SiLA the development community offers open source repositories for the three most common programming languages (python, C# und JAVA). These repositories contain examples, libraries and tools which can be used as a good starting point for own developments.
Through its generic approach, SiLA 2 is not restricted to communication between lab devices. More complex interconnections of scientific data and a universal process description language is on the roadmap. For the transfer of analytical data, SiLA 2 uses the ASTM Standard AnIML (ASTM subcommittee E13.15.) . AnIML can also be applied for long-term data storage applications.
Vendors with already developed devices can very quickly integrate into the modern SiLA 2 infrastructure with the help of software adapters, microcontrollers such as the Raspberry Pi for which libraries in JAVA and python already exist.
The licence-free SiLA standard enables a broad development community which can release some of the vendors’ burdens to develop cost-intensive proprietary developments. Vendors can focus on their main expertise building good hardware. This creates synergies and customers satisfaction. There is hope that the interest of many users and vendors is rising and many implementations of SiLA 2 will be seen after its official release. SiLA can be tested already now, since all details are already freely available. One main goal of SiLA 2 is to make lab automation as simple and intuitive as possible, with a similar simplicity and ease as connecting a USB device to a computer. Furthermore the reproducibility of scientific data shall be increased dramatically.
Reference implementations and tools of SiLA 2 are developed by a team of volunteers of soft-and hardware developers, scientists, biotechnology/pharma/lab automation companies with a strong support of the SiLA non-profit-organisation.
The author acknowledges Daniel Juchli (SiLA CTO and Head of Lab & Research IT, Wega Informatik AG), Patrick Courtney (Patrick.Courtney@Sila-standard.org) and the members of the SiLA 2 core development teams: Stefan Koch (EQUIcon Software GmbH Jena), Maximilian Schulz (UniteLabs AG), Burkhard Schäfer (BSSN-Software GmbH) for all the valuable comments and hints.