/PCR_station

Primary LanguageC#MIT LicenseMIT

Hi reader,

A GOOD AND RECOMMENDED STARTING POINT IS TO REFER TO THE DOCUMENTATION https://github.com/covmatic/PCR_station/blob/main/PCR_Documentation/Covmatic-PCR_API%20documentation.pdf in this repository.

What is this?

This repository consists of an API that:

  1. Allows the user to control the BioRad CFX96 PCR with C1000 Touch or C1000 thermal cycler
  2. Interprets the results of PCR run and consolidates it into a single JSON file
  3. Signals the Covmatic digital server that the json file is ready to be picked up

The Covmatic digital webserver then reconciles the contents of each well in the 96-well PCR plate to the patient from whom the sample was extracted. The code for this BioRad API is written in C# following the .NET framework. The API communicates with the BioRad PCR machine (via the BioRad application, CFX Manager/Maestro) by exchanging XML files (via USB serial connection) that follow a defined schema.

This API can be run from the local Covmatic Webserver, or it can also be run as a standalone application. If you run it from the Covmatic Webserver, then the JSON file generated at the end of the PCR run will be picked up by the server and stored in the Covmatic digital records.

Why is this?

Imagine that you insert a 96-well plate into a PCR. These wells are labeled A1,A2, A3, B1, B2, B3 …, etc. Now, of course it has 96 samples all from different patients. Inside the PCR, the samples undergo a thermo-chemical reaction. The PCR captures the status of this reaction at regular time intervals and generates reaction curves for each well. After the PCR run, a result file of the extension .pcrd (readable by BioRad software – CFX Manager or CFX Maestro) is generated that displays these reaction curves with an interactive interface. Additionally, many .csv files are generated which contain the data required to plot these reaction curves and details of the PCR run. This API was designed to:

  1. Interpret the data generated by the PCR from these .csv files
  2. Compile all the essential data of the PCR run into a single, universal file format (json) following a user-friendly scheme to store in on the Covmatic digital server

How does it work?

Refer to contents of the “PCR_Documentation” folder to understand how the API works and what are the requirements to deploy this system. In brief, the API can be divided into 3 parts:

  1. Part 1 Handles the User Interface (front-end code auto-generated by windows forms)
  2. Part 2 Is the code that controls the PCR. Sends and receives data to and from the PCR. This is achieved by event-driven and status polling architecture
  3. Part 3 Interprets the results of the PCR run and consolidates it into a json file. This is done by the “Data_Processor_App2” project

A GOOD AND RECOMMENDED STARTING POINT IS TO REFER TO THE DOCUMENTATION "PCR_station/PCR_documentation/Covmatic-PCR_API_documentation.pdf" in this repository.

Please inform us if you discover any bugs in this project by using the "Issues" tab here on GitHub