SmartPlexer
This is a workflow to develop multiplex assay from singleplex data in PCR
Install / Use
/learn @LMigliet/SmartPlexerREADME
Smart-Plexer: A Framework for Hybrid Development of Multiplex PCR Assays
Please use the branch: "smartplexer_paper_nature" if you want to see the code reported in the Nature paper.
Welcome to the Smart-Plexer repository! This repository contains the code used for the development and validation of the Smart-Plexer framework, as described in our paper. Smart-Plexer is designed to optimize the selection of primer mixes for multiplex PCR assays through a combination of empirical testing and in-silico simulations.
How It Works
You should first use the AdaptiveFilter Algorithm to get the processed dataframes and the metadata needed.
This impluies that you are extracting data from the fluidigm real-time digital PCR machine. If data have different format please raise an issue. Check the section below and the test_data to see the structure.
Introduction
The Smart-Plexer framework is developed to streamline the development of multiplex PCR assays by combining empirical testing with computer simulations. The framework leverages kinetic inter-target distances among amplification curves to optimize the selection of primer sets for accurate multi-pathogen identification. Initially, the ‘c’ parameter was used as the main feature for optimization. However, we have extended the feature set to include additional robust features that enhance the reliability and accuracy of the assay selection process.
Features
- Curve Fitting: Fits the PCR amplification curves using a 5-parameter sigmoid model.
- Feature Extraction: Extract features from the amplification curves, including the ‘c’ parameter and additional robust features.
- Distance Calculation: Calculates distances between amplification curves using various metrics.
- Assay Selection: Ranks and selects optimal multiplex PCR assays based on feature distances.
- Empirical Validation: Validates selected assays through wet-lab experiments.
Disclaimer: There are two patents related to this work at Imperial College London:
Folder Structure
Your folder structure should look like this:
How your folder should look like:
Usr/code/data/20210701_01/
Inside the folder (if you used AdaptiveFilter Algorithm), there will be:
- raw_data,
- processed,
- plots
- metadata.csv
Metadata Structure
In this example, there are 5 columns in the metadata:
| Panel | PrimerMix | Target | Assay | Conc | |-------|-----------|--------|----------|-----------| | 1 | PM3.17 | MER | MER_N_02 | 1.00E+05 | | 2 | PM3.17 | COC | COC_N_05 | 1.00E+05 |
Data Retrieval and Experiment Object Creation
The first step involves retrieving the data and creating experiment objects using the create_experiment_objects function. This function loads data from specified directories and structures it into experiment objects for further processing.
# Define the path where experiment folders are stored
data_path = Path.cwd().parents[0] / "00_data"
# Experiment IDs (ensure folders are named only with the experiment ID)
experiment_ids = ["20210701_01", "20210701_02"]
# Define the METADATA LEN as they will be exclueded from the curve/param data.
META_LEN = 5
Assay Combination Generation
Once the experiment data is loaded, the next step is to generate all possible combinations of assays based on their targets. The process involves:
- Grouping assays by target: Assays are grouped by their target gene.
- Filtering for singleplex panels: Only panels with primermix set to "singleplex" are considered for combinations.
- Generating combinations: The Combinator class is used to generate and store all possible combinations of assays forthe given targets.
Explanation of Key Components
-
Combinator Class: The Combinator class is responsible for generating all possible combinations of assays based on the provided assay dictionary. It stores the combinations and provides methods to access the generated combinations and the count.
-
create_experiment_objects Function: This function initializes experiment objects from raw data, facilitating further processing and analysis.
Running the Code
- Ensure your experiment data is correctly formatted and stored in the specified directory.
- Update the
experiment_idslist with the IDs of your experiments. - Run the code to generate assay combinations and analyze the results.
Conclusion
The Smart-Plexer framework is a powerful tool for the development and validation of multiplex PCR assays. By combining in-silico simulations with empirical testing, it optimizes the selection of primer sets, ensuring accurate and reliable multi-pathogen identification.
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
