Skip to content

Commit

Permalink
Merge pull request #10 from LMigliet/dev
Browse files Browse the repository at this point in the history
merge DEV into MAIN
  • Loading branch information
LMigliet authored Aug 13, 2024
2 parents 9eda661 + 95c8709 commit 49bd1f9
Show file tree
Hide file tree
Showing 10 changed files with 9,376 additions and 6 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ Please use the branch: "smartplexer_paper_nature" if you want to see the code re

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](https://github.com/LMigliet/AdaptiveFiltering) 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.
Expand All @@ -21,11 +27,6 @@ There are two patents related to this work at Imperial College London:
- [Patent 1 - AI for PCR data analysis](https://scholar.google.com/citations?view_op=view_citation&hl=en&user=msNVZbcAAAAJ&sortby=pubdate&citation_for_view=msNVZbcAAAAJ:qxL8FJ1GzNcC)
- [Patent 2 - Smart-Plexer](https://scholar.google.com/citations?view_op=view_citation&hl=en&user=msNVZbcAAAAJ&sortby=pubdate&citation_for_view=msNVZbcAAAAJ:Tyk-4Ss8FVUC)


## How It Works

You should first use the [AdaptiveFilter Algorithm](https://github.com/LMigliet/AdaptiveFiltering) to get the processed dataframes and the metadata needed.

### Folder Structure

Your folder structure should look like this:
Expand Down Expand Up @@ -82,7 +83,7 @@ Once the experiment data is loaded, the next step is to generate all possible co

1. Ensure your experiment data is correctly formatted and stored in the specified directory.
2. Update the `experiment_ids` list with the IDs of your experiments.
3. Run the code to generate assay combinations and RANK the results. It will also plot the combinations
3. Run the code to generate assay combinations and analyze the results.

## Conclusion

Expand Down
49 changes: 49 additions & 0 deletions test_data/20210701_01/metadata.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
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
3,PM3.17,ADE,ADE_HEX_06,1.00E+05
4,PM3.25,MER,MER_N_01,1.00E+05
5,PM3.25,COC,COC_N_05,1.00E+05
6,PM3.25,ADE,ADE_HEX_12,1.00E+05
7,PM3.18,MER,MER_N_04,1.00E+05
8,PM3.18,COC,COC_N_05,1.00E+05
9,PM3.18,ADE,ADE_HEX_06,1.00E+05
10,PM3.26,MER,MER_N_02,1.00E+05
11,PM3.26,COC,COC_N_05,1.00E+05
12,PM3.26,ADE,ADE_HEX_12,1.00E+05
13,PM3.19,MER,MER_N_01,1.00E+05
14,PM3.19,COC,COC_N_01,1.00E+05
15,PM3.19,ADE,ADE_HEX_12,1.00E+05
16,PM3.27,MER,MER_N_04,1.00E+05
17,PM3.27,COC,COC_N_05,1.00E+05
18,PM3.27,ADE,ADE_HEX_12,1.00E+05
19,PM3.20,MER,MER_N_02,1.00E+05
20,PM3.20,COC,COC_N_01,1.00E+05
21,PM3.20,ADE,ADE_HEX_12,1.00E+05
22,singleplex,MER,MER_N_01,1.00E+05
23,singleplex,COC,COC_N_01,1.00E+05
24,singleplex,ADE,ADE_HEX_03,1.00E+05
25,PM3.21,MER,MER_N_04,1.00E+05
26,PM3.21,COC,COC_N_01,1.00E+05
27,PM3.21,ADE,ADE_HEX_12,1.00E+05
28,singleplex,MER,MER_N_02,1.00E+05
29,singleplex,COC,COC_N_04,1.00E+05
30,singleplex,ADE,ADE_HEX_06,1.00E+05
31,PM3.22,MER,MER_N_01,1.00E+05
32,PM3.22,COC,COC_N_04,1.00E+05
33,PM3.22,ADE,ADE_HEX_12,1.00E+05
34,singleplex,MER,MER_N_04,1.00E+05
35,singleplex,COC,COC_N_05,1.00E+05
36,singleplex,ADE,ADE_HEX_12,1.00E+05
37,PM3.23,MER,MER_N_02,1.00E+05
38,PM3.23,COC,COC_N_04,1.00E+05
39,PM3.23,ADE,ADE_HEX_12,1.00E+05
40,singleplex,MER,MER_N_04,1.00E+05
41,singleplex,COC,COC_N_05,1.00E+05
42,singleplex,ADE,ADE_HEX_12,1.00E+05
43,PM3.24,MER,MER_N_04,1.00E+05
44,PM3.24,COC,COC_N_04,1.00E+05
45,PM3.24,ADE,ADE_HEX_12,1.00E+05
46,PM3.27,NTC,MER_N_04,0.00E+00
47,PM3.27,NTC,COC_N_05,0.00E+00
48,PM3.27,NTC,ADE_HEX_12,0.00E+00
4,525 changes: 4,525 additions & 0 deletions test_data/20210701_01/processed/inliers_ac.csv

Large diffs are not rendered by default.

4,525 changes: 4,525 additions & 0 deletions test_data/20210701_01/processed/inliers_params.csv

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions test_data/20210701_01/raw_data/panel01_AC.txt

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions test_data/20210701_01/raw_data/panel02_AC.txt

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions test_data/20210701_01/raw_data/panel03_AC.txt

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions test_data/20210701_01/raw_data/panel04_AC.txt

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions test_data/20210701_01/raw_data/panel05_AC.txt

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions test_data/20210701_01/raw_data/panel06_AC.txt

Large diffs are not rendered by default.

0 comments on commit 49bd1f9

Please sign in to comment.