BIGP

A modern platform for psychiatric research: migrating an integrated database to Django

Context

CERVO have been conducting psychiatric genetics research for many years. This work requires managing large volumes of data: information on subjects and their families, clinical assessments, biological samples stored in the laboratory, genetic data, and statistical analysis results.

To meet these needs, a web platform named BIGP (Base de données Intégrée en Génétique Psychiatrique — Integrated Database in Psychiatric Genetics) was developed with the help of IBIS (Institut de Biologie Intégrative et des Systèmes). It centralizes all of this information, previously scattered across multiple Access applications, Excel files, and in-house tools, into a single MySQL database. The database now contains 287 tables, and the web interface used to access it represents over 100,000 lines of code.

This interface was built in PHP 5 using the Zend Framework 1 (ZF1) framework — a technology that is now obsolete and no longer maintained. This poses a growing risk to the platform’s security, stability, and long-term viability.

Our Contribution: Modernizing BIGP with Django

We were brought on to fully migrate BIGP’s web interface to Django, a modern, robust, and actively maintained Python web framework. The MySQL database remains unchanged: only the application layer — the website used to view and edit data — is being rebuilt from scratch using current technologies.

This migration is more than a language change: it is an opportunity to strengthen the platform’s security, adopt contemporary web development best practices, and position BIGP to evolve in response to future research team needs.

On the user interface side, the chosen approach is one of careful modernization rather than radical redesign. Users will find a familiar experience, with the same screens and workflows they already know, while benefiting from a refreshed, cleaner presentation better suited to today’s displays. The goal is to improve usability without disrupting the habits of a team that works with this tool every day.

Achievements

Master Index — the heart of the system

The Master Index module is the central hub of the entire platform. It manages study participants, their families, and the research projects they are associated with. All other modules for a given subject are accessed from this screen. Its migration is a priority, as every other module depends on it.

Clinical Data

Four modules cover the clinical and neuropsychological assessments of subjects:

  • Diagnostics — entry and review of psychiatric diagnoses.
  • CQDM — data from the CQDM project: inclusion and exclusion criteria, medication, lifestyle habits.
  • Neuropsy — detailed neuropsychological assessments.
  • Clinical Symptoms — data from the legacy application.

These modules, formerly separate Access databases, are integrated into BIGP to eliminate duplicate data entry and provide a comprehensive view per subject.

Biobanks — laboratory sample management

The Biobanksmodule manages the complete inventory of biological samples (DNA, RNA, cells) stored in laboratory freezers. It covers freezer management, sample production tracking, dilutions, and lymphocyte line history. A dashboard provides a real-time view of storage occupancy and stock levels.

Genetic Data

The Genetics module archives all subjects’ genetic data: genotypes, sequencing data, structural variants (CNVs), microsatellites, and information on genes and genomic markers. This information is link with the international reference databases (NCBI dbSNP).

Statistical Analyses

The Statistical Analyses module allows biostatisticians to generate the files needed to run genetic analyses, while maintaining a complete history of the data used in each analysis (the “snapshots”). This ensures the reproducibility of scientific results.

ERG — Electroretinography

The ERG module stores the results of electroretinographic assessments performed on subjects, generates charts from raw data, and computes the summary values used by biostatisticians.

Administration and Security

An administration module manages users, their roles, and their access permissions. Security is enforced hierarchically through an access control list (ACL), allowing read or write permissions to be defined at every level of the platform.

Hosting on Université Laval Infrastructure

Notre mandat inclut également la mise en place de l’hébergement de la nouvelle plateforme. Le site sera déployé sur l’infrastructure OpenShift de l’Université Laval. OpenShift est une plateforme d’applications basée sur Kubernetes (développée par Red Hat) qui permet de déployer et gérer des applications dans des conteneurs, de façon fiable, sécurisée et évolutive. Ce type d’infrastructure, utilisé par de nombreuses grandes organisations, garantit une haute disponibilité du service et facilite les mises à jour sans interruption. Le fait que l’hébergement soit assuré par l’Université Laval elle-même assure également que les données de recherche sensibles restent dans un environnement institutionnel contrôlé.

The result

Towards a modern solution

A Secure and Sustainable Platform

The migration to Django will allow BIGP to run on a maintained and secure technology, eliminating the risks associated with using an abandoned PHP framework. Researchers and laboratory staff will continue using the same features without interruption or data loss.

A Foundation for the Future

Beyond the migration itself, this work establishes a modern, well-structured codebase that will make it easier to add new features going forward. This project illustrates how a collaboration between software development and scientific research can ensure the sustainability of tools that are essential to the production of knowledge.

Collaborators