NGS laboratories are nowadays faced with hard challenges, due to the continuously increasing data volumes and sample throughput and to the advances in sequencing technology. Some of these challenges are:
-
Standardization of data processing and data set procedures are requested for the full exploitation of the potential of genetic information in clinical research.
-
Provenance information should be tracked to support the re-usability of existing workflows.
-
Streamlining of laboratory operations
In response to these challenges, we have released Penelope, a web-based Laboratory Information Management System (LIMS) to support the production of accurate, reproducible and provenance aware data faster and more reliably. Penelope, which is currently in production at the CRS4 NGS Core Facility laboratory (http://next.crs4.it), supports seamlessly management of samples, allowing data from sequencing runs easier to manage, store, and track.
The core of the penelope system is BIKA, an open source, ISO 17025 compliant community-based LIMS.
-
Handles roles and authorizations
-
Manages inventory and supply chain
-
Tracks samples
-
Prioritizes analysis requests
-
Organizes worksheets per project
However, BIKA has been designed for clinical and medical laboratories. Its database schema does not meet natively all the needs of a NGS laboratory operational workflow.
In order to reshape the database schema we have developed a three layer model-view-controller (mvc) architecture:
-
a Python client library that overlaps native API: bika.client
- Oversees and simplify connection and common CRUD (Create, Read, Update, Delete) operations
- Extends them with more complex and dedicated queries.
-
a Python REST Web Service that exposes remodeled methods and features: back
- Receives the user's request from the web application and drives it to the client for execution.
- The response from the client is packaged according to an appropriate format and sent back to the web application.
-
a Web application based on AngularJS that implements the MVC pattern: front
- Implements the MVC pattern and exposes a graphic interface to the users:
- carries out a logical overwriting of the native Bika database schema
- manages the application logic and the interactions between the objects
- shows data to the wet laboratory technicians, exposing them in modules and tables for easy and immediate review
- Implements the MVC pattern and exposes a graphic interface to the users:
Penelope manages the objects and events of a NGS Sequencing Laboratory. The essential objects are the samples, the sequencing machines, the whole laboratory supply chain, the customers, research partners and budget requirements. In turn, events span the "life cycle" of those objects, with reference for example to the acceptance, assignment and planning of the analytical activity, activity monitoring, verification and approval of results, reporting (test reports, statistics, export), and data delivery.
Penelope supports seamlessly management of samples, allowing data from sequencing runs easier to manage, store, and track. Moreover, while also supporting support the production of accurate, reproducible and provenance aware sequencing data, PENELOPE facilitates assessment of the laboratory workflows over time and across experiments so that one can easily evaluate and improve the laboratory operational efficiency.
Penelope is currently in production at the CRS3 Next Generation Sequencing Core Facility (http://next.crs4.it), one of the most productive sequencing facilities in Italy.
The first execution could require several minutes, from the second one will be faster.
1 - Clone the repository:
$ git clone https://github.com/next-crs4/penelope.git
2 - Cd into the docker directory:
$ cd penelope
3 - Edit configuration file
$ cp front/html/app/init.module.js.sample front/html/app/init.module.js
$ nano front/html/app/init.module.js
4 - Bring up the Penelope app
$ make start
5 - Point your browser to:
http://0.0.0.0:81
Logging to an ELK Stack
$ make ELK_HOST=your-elk-host ELK_PORT=your-elk-port start
Bring down the Penelope app
$ make stop
Remove Penelope app from your machine
$ make clean
Print the help message
$ make help
===================================================================================================
Penelope - a complete LIMS for NGS Labs
https://github.com/next-crs4/penelope
Please use `make [options] <target>` where <target> is one of
start bring up Penelope LIMS
stop bring down Penelope LIMS
clean remove Penelope LIMS from your computer
To redirect logs on a ELK stack a, digit:
make ELK_HOST=your-elk-site.com ELK_PORT=5044 start
Docs: https://github.com/next-crs4/penelope/blob/master/README.md