SeroTrackR

Author

Dionne Argyropoulos

Published

July 30, 2025

Load the Package and Data

devtools::install_github("dionnecargy/SeroTrackR") # To download the package

── R CMD build ─────────────────────────────────────────────────────────────────
* checking for file ‘/private/var/folders/bh/0yzt0_x97vj_zktb_39c1xvh0000gn/T/RtmpQJAaAN/remotes7b6a4cb81ae9/dionnecargy-SeroTrackR-499eab4/DESCRIPTION’ ... OK
* preparing ‘SeroTrackR’:
* checking DESCRIPTION meta-information ... OK
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
Omitted ‘LazyData’ from DESCRIPTION
* building ‘SeroTrackR_0.5.0.tar.gz’
install.packages(c("tidyverse", "knitr", "targets"), repos = "https://cloud.r-project.org") # Download other packages in this tutorial

The downloaded binary packages are in
    /var/folders/bh/0yzt0_x97vj_zktb_39c1xvh0000gn/T//RtmpQJAaAN/downloaded_packages
library(SeroTrackR) # To load the package 
library(tidyverse) # for data wrangling and visualisation
library(knitr)    # for RMarkdown visualisation and PDF generation

File Name Convention

The following files are required for this app. You might like to organise your folder as follows:

my_R_project
└── raw_data_files/
    ├── raw_MAGPIX_data/
       ├── raw_data_plate1.csv
       ├── raw_data_plate2.csv
       └── raw_data_plate3.csv
    ├── raw_BioPlex_data/
       ├── raw_data_plate4.xlsx
       ├── raw_data_plate5.xlsx
       └── raw_data_plate6.xlsx
    ├── platelayout.xlsx
    └── outputs/

Raw Data Files

The raw data files should all contain “plate1”, “plate2”, “plate3”, etc., in the file name. Ensure there are no special characters or spaces between the “plate” and number. To keep things simple, please also do not write any leading 0’s before the number e.g., do not write “plate01”.

For the MAGPIX and Intelliflex Machines:

You can pre-program the MAGPIX machine so that you can export all the raw data directly from the machine once the plate reading is completed. There is no need to edit the raw data file that comes from the MAGPIX.

Within your plate layout in the MAGPIX, you can use the “U” button for all unknown samples, “B” button for Background or Blank samples, and “S” for Standard Curve samples. For the control wells, please feel free to edit these labels so that the ID is just “B”, “S1”, “S2”, “S3”….”S10”.

You can also write in the Operator i.e., who ran the assay! This is useful to track variation in plates between experiments.

For the Bioplex Machines:

Isolate names will tend to be written as ‘X1’, ‘X2’, ‘X3’… and saved as an .xlsx file. Specifics on Bio-Plex machines will be added shortly.

Plate Layout File

The plate layout file should contain all of the plate layouts in each tab. For each 96-well plate that you run on the Luminex machine, prepare a plate layout that includes the sample labels that will match your raw data. The application will match the raw data to the corresponding sample based on the plate layout that you import.

Make sure that your sample labels in the plate layout are as follows:

  • Standards: Labels start with “S” and then a number as required (e.g. S1, S2, S3 or Standard1, Standard2, Standard3).
  • Blanks: Labels start with “B” and then a number as required if there is more than one blank sample (.e.g ‘B1’, ‘B2’, or ‘Blank 1’, ‘Blank2’ etc).
  • Unknown Samples: Label your unknown samples according to your specific sample codes (e.g. ABC001, ABC002).

The package expects standards to start with “S” and blanks to start with “B”, but everything else with a label will be considered an unknown sample. If you have other types of samples, for example a positive control, you can use a different sample label to the other unknown study samples (i.e. “PositiveControl” in addition to the “ABC” study codes).

The standards S1-10 correspond to the following dilution concentrations:

S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
1/50 1/100 1/200 1/400 1/800 1/1600 1/3200 1/6400 1/12800 1/25600

The standards S1-5 correspond to the following dilution concentrations:

S1 S2 S3 S4 S5
1/50 1/250 1/1250 1/6250 1/31250

Data Analysis: runPvSeroPipeline()

Run this global function runPvSeroPipeline() embedded within the {SeroTrackR} R package! This function contains all of the steps in order of how to perform the Plasmodium vivax serology test and treat protocol as found in our application!

Using Tutorial Dataset: Load the Data

We will be using the build-in files in the R package for this tutorial, as shown below.

your_raw_data <- c(
  system.file("extdata", "example_MAGPIX_plate1.csv", package = "SeroTrackR"),
  system.file("extdata", "example_MAGPIX_plate2.csv", package = "SeroTrackR"), 
  system.file("extdata", "example_MAGPIX_plate3.csv", package = "SeroTrackR")
)
your_plate_layout <- system.file("extdata", "example_platelayout_1.xlsx", package = "SeroTrackR")

To run your OWN data, follow the code below and uncomment (i.e., remove the hashtags):

# your_raw_data <- c(
#   "PATH/TO/YOUR/FILE/plate1.csv",
#   "PATH/TO/YOUR/FILE/plate2.csv",
#   "PATH/TO/YOUR/FILE/plate3.csv"
# )
# your_plate_layout <- "PATH/TO/YOUR/FILE/plate_layout.xlsx"

Run Classification: Yes

final_analysis <- runPvSeroPipeline(
  raw_data = your_raw_data, 
  plate_layout = your_plate_layout, 
  platform = "magpix", 
  location = "ETH", 
  experiment_name = "experiment1", 
  classify = "Yes", 
  algorithm_type = "antibody_model", 
  sens_spec = "maximised"
)

Classification

This is a table containing the classification results (seropositive or seronegative) for each SampleID. In this case, the classification results are stored in the pred_class_max column as we chose the sens_spec = "maximised". If you change it to another type of threshold, then the suffix of that column will change accordingly.

You will also see the relative antibody unit (RAU) values (columns with antigen names), whether the sample passed QC check (QC_total) and the plate that they were run on.

final_analysis[[1]] %>%
  head() %>% 
  kable()
SampleID Plate QC_total EBP LF005 LF010 LF016 MSP8 PTEX150 PvCSS RBP2b.P87 pred_class_max
ABC013 plate1 pass 0.0003339 0.0015045 0.0002163 0.0014567 0.0000195 0.0001591 0.0000772 0.0003714 seropositive
ABC097 plate2 pass 0.0004324 0.0015615 0.0001944 0.0013373 0.0000195 0.0001549 0.0000705 0.0009189 seropositive
ABC181 plate3 pass 0.0003822 0.0015832 0.0002144 0.0013711 0.0000195 0.0001582 0.0000710 0.0002070 seropositive
ABC022 plate1 pass 0.0200000 0.0200000 0.0007373 0.0194885 0.0006247 0.0003145 0.0006008 0.0004895 seropositive
ABC106 plate2 pass 0.0057123 0.0193731 0.0007458 0.0195240 0.0006263 0.0003077 0.0006480 0.0126203 seropositive
ABC190 plate3 pass 0.0098260 0.0200000 0.0007400 0.0200000 0.0006020 0.0003171 0.0006555 0.0175253 seropositive

Standard Curve Plot

The standard curve plots are generated from the antibody data from the standards you indicated in your plate layout (e.g. S1-S10) and Median Fluorescent Intensity (MFI) units are displayed in log10-scale. In the case of the PvSeroTaT multi-antigen panel, the antigens will be displayed and in general your standard curves should look relatively linear (only when the y-axis is on logarithmic scale).

final_analysis[[2]]

Bead Counts QC Plot

A summary of the bead counts for each plate well are displayed, with blue indicating there are sufficient beads (≥15) or red when there are not enough. If any of the wells are red, they should be double-checked manually and re-run on a new plate if required.

The function will inform you whether there are “No repeats necessary” or provide a list of samples to be re-run. In the example data, the beads in plate 2 wells A1 and A2 will need to be repeated

final_analysis[[3]] # Plot

final_analysis[[4]] # Samples to repeat 
# A tibble: 2 × 4
  Location SampleID Plate  QC   
  <chr>    <chr>    <chr>  <chr>
1 A1       Blank1   plate2 fail 
2 A2       Blank2   plate2 fail 

Blanks QC Plot

The Median Fluorescent Intensity (MFI) units for each antigen is displayed for your blank samples. In general, each blank sample should have ≤50 MFI for each antigen, if they are higher they should be cross-checked manually.

In the example data, blank samples recorded higher MFI values for LF005 on plate 1 and should be checked to confirm this is expected from the assay.

final_analysis[[5]]

Model Output Plot

The automated data processing in this app allows you to convert your Median Fluorescent Intensity (MFI) data into Relative Antibody Units (RAU) by fitting a 5-parameter logistic function to the standard curve on a per-antigen level. The results from this log-log conversion should look relatively linear for each antigen.

final_analysis[[6]]
$plate1


$plate2


$plate3

Run Classification: No

no_classification_final_analysis <- runPvSeroPipeline(
  raw_data = your_raw_data, 
  plate_layout = your_plate_layout, 
  platform = "magpix", 
  location = "ETH", 
  experiment_name = "experiment1", 
  classify = "No", ########################## key if you do NOT want any classification performed i.e., you do not have PvSeroTaT antigens 
  algorithm_type = "antibody_model", 
  sens_spec = "maximised"
)

MFI and RAU Data

no_classification_final_analysis[[1]]  %>%
  head() %>% 
  kable()
SampleID Plate QC_total EBP_MFI EBP_Dilution LF005_MFI LF005_Dilution LF010_MFI LF010_Dilution LF016_MFI LF016_Dilution MSP8_MFI MSP8_Dilution PTEX150_MFI PTEX150_Dilution PvCSS_MFI PvCSS_Dilution RBP2b.P87_MFI RBP2b.P87_Dilution
ABC013 plate1 pass 2712 0.0003339 1569.0 0.0015045 673 0.0002163 327 0.0014567 182.0 1.95e-05 936.0 0.0001591 223 0.0000772 1068.0 0.0003714
ABC014 plate1 pass 134 0.0000216 378.0 0.0004204 117 0.0000277 197 0.0010331 58.0 1.95e-05 122.0 0.0000225 93 0.0000298 465.5 0.0001536
ABC015 plate1 pass 182 0.0000232 209.0 0.0002466 208 0.0000616 374 0.0015985 221.5 1.95e-05 293.0 0.0000535 868 0.0002235 463.0 0.0001527
ABC016 plate1 pass 152 0.0000222 229.5 0.0002688 101 0.0000244 89 0.0005994 48.0 1.95e-05 109.0 0.0000220 110 0.0000383 591.0 0.0001989
ABC017 plate1 pass 1135 0.0001478 236.0 0.0002758 299 0.0000950 507 0.0019840 209.5 1.95e-05 1665.5 0.0002668 266 0.0000893 671.0 0.0002277
ABC018 plate1 pass 174 0.0000229 395.0 0.0004370 175 0.0000460 78 0.0005452 70.0 1.95e-05 294.5 0.0000537 92 0.0000296 103.0 0.0000238

QC Plots

Repeat the same steps as above to find the QC plots!

#### Standard Curve Plot
no_classification_final_analysis[[2]]

#### Bead Counts QC Plot
no_classification_final_analysis[[3]] # Plot

no_classification_final_analysis[[4]] # Samples to repeat 
# A tibble: 2 × 4
  Location SampleID Plate  QC   
  <chr>    <chr>    <chr>  <chr>
1 A1       Blank1   plate2 fail 
2 A2       Blank2   plate2 fail 
#### Blanks QC Plot
no_classification_final_analysis[[5]]

#### Model Output Plot
no_classification_final_analysis[[6]]
$plate1


$plate2


$plate3

Create a PDF Report

renderQCReport(
  your_raw_data, 
  your_plate_layout, 
  "magpix", 
  location = "ETH",
  path = "tutorials/" # defaults to your current working directory
)

  |                                                     
  |                                               |   0%
  |                                                     
  |...                                            |   7%                       
  |                                                     
  |......                                         |  13% [setup]               
  |                                                     
  |.........                                      |  20%                       
  |                                                     
  |.............                                  |  27% [standard curves plot]

  |                                                     
  |................                               |  33%                       
  |                                                     
  |...................                            |  40% [model results plot]  

  |                                                     
  |......................                         |  47%                       
  |                                                     
  |.........................                      |  53% [bead counts plot]    

  |                                                     
  |............................                   |  60%                       
  |                                                     
  |...............................                |  67% [check repeats table] 
  |                                                     
  |..................................             |  73%                       
  |                                                     
  |......................................         |  80% [blank samples plot]  

  |                                                     
  |.........................................      |  87%                       
  |                                                     
  |............................................   |  93% [plate layouts]       
  |                                                     
  |...............................................| 100%                       
                                                                                                                 
/Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/x86_64/pandoc +RTS -K512m -RTS template.knit.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output /Users/Dionne/Documents/GitHub/SeroTrackR/tutorials/experiment1_20250904_ETH_v1.4.0_QCreport.tex --lua-filter /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/library/rmarkdown/rmarkdown/lua/pagebreak.lua --lua-filter /Library/Frameworks/R.framework/Versions/4.4-x86_64/Resources/library/rmarkdown/rmarkdown/lua/latex-div.lua --embed-resources --standalone --highlight-style tango --pdf-engine pdflatex --variable graphics --include-in-header /var/folders/bh/0yzt0_x97vj_zktb_39c1xvh0000gn/T//RtmpQJAaAN/rmarkdown-str7b6a3e5c488f.html --variable 'geometry:margin=1in' --include-in-header /var/folders/bh/0yzt0_x97vj_zktb_39c1xvh0000gn/T//RtmpQJAaAN/rmarkdown-str7b6a1c9fc445.html 

Data Analysis: Pk/Pv/Pf

For all of these analyses you can run as many plates as you wish.

5-Point Standard Curve

Step 1: Load your data!

Firstly, we will be using our example data that’s in-built in the package. Here replace the system.file() argument with the file path for your package.

your_raw_data_5std <- c(
  system.file("extdata", "example_MAGPIX_pk_5std_plate1.csv", package = "SeroTrackR"),
  system.file("extdata", "example_MAGPIX_pk_5std_plate2.csv", package = "SeroTrackR")
)
your_plate_layout_5std <- system.file("extdata", "example_platelayout_pk_5std.xlsx", package = "SeroTrackR")

Step 2: Read your data and process MFI to RAU

Caitlin and Dionne have worked on a function to (a) process raw Serological data and (b) convert MFI to RAU. The runPlasmoPipeline() function will output three data frames:

  1. All_Results: All columns of every MFI to RAU conversion
  2. MFI_RAU: Just the SampleID, Plate, MFI and RAU values per antigen
  3. MFI_RAU_long: SampleID, Plate, MFI, RAU, Antigen, Species (long-format df)
results_5stdcurve <- runPlasmoPipeline(
  raw_data = your_raw_data_5std,
  platform = "magpix",
  plate_layout = your_plate_layout_5std,
  panel = "panel1",
  std_point = 5, 
  experiment_name = "5-point standard curve"
)
Standard Curve Plot
results_5stdcurve$std_curve

Bead Counts QC Plot
results_5stdcurve$bead_counts

Blanks QC Ploat
results_5stdcurve$blanks

MFI to RAU Tables

All results:

results_5stdcurve$mfi_outputs$All_Results %>%
  head() %>% 
  kable()
SampleID Location Location.2 Sample Plate Pk8_MFI Pk8_log_mfi Pk8_max_s1 Pk8_max_dil Pk8_slope Pk8_low_asym Pk8_upp_asym Pk8_ed50 Pk8_asym_par Pk8_Dilution Pk8_rau_restricted PkMSP10_MFI PkMSP10_log_mfi PkMSP10_max_s1 PkMSP10_max_dil PkMSP10_slope PkMSP10_low_asym PkMSP10_upp_asym PkMSP10_ed50 PkMSP10_asym_par PkMSP10_Dilution PkMSP10_rau_restricted PkSERA3Ag2_MFI PkSERA3Ag2_log_mfi PkSERA3Ag2_max_s1 PkSERA3Ag2_max_dil PkSERA3Ag2_slope PkSERA3Ag2_low_asym PkSERA3Ag2_upp_asym PkSERA3Ag2_ed50 PkSERA3Ag2_asym_par PkSERA3Ag2_Dilution PkSERA3Ag2_rau_restricted PkSSP2_MFI PkSSP2_log_mfi PkSSP2_max_s1 PkSSP2_max_dil PkSSP2_slope PkSSP2_low_asym PkSSP2_upp_asym PkSSP2_ed50 PkSSP2_asym_par PkSSP2_Dilution PkSSP2_rau_restricted QC_total LF005_MFI LF005_PNG_Dilution LF005_DilutionReciprocal LF005_MinStd LF005_MaxDilution LF005_MaxStd LF005_MinDilution LF010_MFI LF010_PNG_Dilution LF010_DilutionReciprocal LF010_MinStd LF010_MaxDilution LF010_MaxStd LF010_MinDilution LF016_MFI LF016_PNG_Dilution LF016_DilutionReciprocal LF016_MinStd LF016_MaxDilution LF016_MaxStd LF016_MinDilution EBP_MFI EBP_PNG_Dilution EBP_DilutionReciprocal EBP_MinStd EBP_MaxDilution EBP_MaxStd EBP_MinDilution RBP2b.P87_MFI RBP2b.P87_PNG_Dilution RBP2b.P87_DilutionReciprocal RBP2b.P87_MinStd RBP2b.P87_MaxDilution RBP2b.P87_MaxStd RBP2b.P87_MinDilution PvCSS_MFI PvCSS_PNG_Dilution PvCSS_DilutionReciprocal PvCSS_MinStd PvCSS_MaxDilution PvCSS_MaxStd PvCSS_MinDilution PTEX150_MFI PTEX150_PNG_Dilution PTEX150_DilutionReciprocal PTEX150_MinStd PTEX150_MaxDilution PTEX150_MaxStd PTEX150_MinDilution MSP8_MFI MSP8_PNG_Dilution MSP8_DilutionReciprocal MSP8_MinStd MSP8_MaxDilution MSP8_MaxStd MSP8_MinDilution PfMSP1-19_MFI PfMSP1-19_PNG_Dilution PfMSP1-19_DilutionReciprocal PfMSP1-19_MinStd PfMSP1-19_MaxDilution PfMSP1-19_MaxStd PfMSP1-19_MinDilution PfAMA1_MFI PfAMA1_PNG_Dilution PfAMA1_DilutionReciprocal PfAMA1_MinStd PfAMA1_MaxDilution PfAMA1_MaxStd PfAMA1_MinDilution Pfetramp5Ag1_MFI Pfetramp5Ag1_PNG_Dilution Pfetramp5Ag1_DilutionReciprocal Pfetramp5Ag1_MinStd Pfetramp5Ag1_MaxDilution Pfetramp5Ag1_MaxStd Pfetramp5Ag1_MinDilution PfHSP40Ag1_MFI PfHSP40Ag1_PNG_Dilution PfHSP40Ag1_DilutionReciprocal PfHSP40Ag1_MinStd PfHSP40Ag1_MaxDilution PfHSP40Ag1_MaxStd PfHSP40Ag1_MinDilution PfGexp18_MFI PfGexp18_PNG_Dilution PfGexp18_DilutionReciprocal PfGexp18_MinStd PfGexp18_MaxDilution PfGexp18_MaxStd PfGexp18_MinDilution EBP_ETH_Dilution LF005_ETH_Dilution LF010_ETH_Dilution LF016_ETH_Dilution MSP8_ETH_Dilution PTEX150_ETH_Dilution PvCSS_ETH_Dilution RBP2b.P87_ETH_Dilution
ABC-0001 13(1,B1) B1 Unknown13 plate1 601 6.398595 8.631057 0.02 -0.2551633 1.721576 14.73937 0.0020267 1.430805 0.0017051 0.0017051 346.0 5.846439 9.847314 0.02 -0.5973278 5.71681 10.1382 5.14e-05 2.59044 8.60e-06 1.95e-05 858.0 6.754604 9.278139 0.02 -0.1799056 -7.461645 13.42899 5.16e-05 0.7581693 0.0005133 0.0005133 320.0 5.768321 7.38399 0.02 -0.3915935 2.269533 9.055807 6.98e-05 2.761969 0.0019574 0.0019574 pass 389.0 0.0000834 11989.154 159 3.2e-05 17367 0.02 392 0.0000853 11721.810 174.5 3.2e-05 12754 0.02 502 1.95e-05 51200 3558.5 3.2e-05 26809.5 0.02 387.0 0.0000966 10352.513 149 3.2e-05 13445 0.02 831.5 0.0000400 25018.377 713 3.2e-05 23660.5 0.02 438.0 0.0007845 1274.6183 37 3.2e-05 6152 0.02 556.0 0.0007196 1389.7172 37 3.2e-05 7636 0.02 303.0 0.0000233 43006.509 387 3.2e-05 23226 0.02 363 0.0004380 2283.2281 69 3.2e-05 2751.5 0.02 359.5 0.0011172 895.0603 37 3.2e-05 3007 0.02 467 0.0050186 199.25926 17 3.2e-05 1459 0.02 384.0 0.0061629 162.26245 12 3.2e-05 988 0.02 1113 0.0052569 190.22706 20 3.2e-05 2892 0.02 0.0000258 0.0000923 0.0000800 0.0000762 0.0000064 0.0001358 0.0002014 1.07e-05
ABC-0002 14(1,B2) B2 Unknown14 plate1 344 5.840642 8.631057 0.02 -0.2551633 1.721576 14.73937 0.0020267 1.430805 0.0008863 0.0008863 228.5 5.431536 9.847314 0.02 -0.5973278 5.71681 10.1382 5.14e-05 2.59044 NaN 1.95e-05 384.0 5.950643 9.278139 0.02 -0.1799056 -7.461645 13.42899 5.16e-05 0.7581693 0.0001859 0.0001859 112.5 4.722953 7.38399 0.02 -0.3915935 2.269533 9.055807 6.98e-05 2.761969 0.0005508 0.0005508 pass 217.0 0.0000441 22679.984 159 3.2e-05 17367 0.02 242 0.0000475 21038.445 174.5 3.2e-05 12754 0.02 337 1.95e-05 51200 3558.5 3.2e-05 26809.5 0.02 226.0 0.0000518 19298.142 149 3.2e-05 13445 0.02 532.0 0.0000199 50135.029 713 3.2e-05 23660.5 0.02 171.0 0.0002491 4014.0621 37 3.2e-05 6152 0.02 377.0 0.0004556 2194.8086 37 3.2e-05 7636 0.02 483.0 0.0000423 23632.795 387 3.2e-05 23226 0.02 234 0.0002323 4304.3814 69 3.2e-05 2751.5 0.02 229.0 0.0006105 1638.0163 37 3.2e-05 3007 0.02 319 0.0031701 315.45144 17 3.2e-05 1459 0.02 256.0 0.0038047 262.83255 12 3.2e-05 988 0.02 634 0.0026246 381.01243 20 3.2e-05 2892 0.02 0.0000103 0.0000384 0.0000281 0.0000566 0.0000064 0.0000865 0.0000687 8.10e-06
ABC-0003 15(1,B3) B3 Unknown15 plate1 716 6.573680 8.631057 0.02 -0.2551633 1.721576 14.73937 0.0020267 1.430805 0.0020815 0.0020815 584.0 6.369901 9.847314 0.02 -0.5973278 5.71681 10.1382 5.14e-05 2.59044 4.43e-05 4.43e-05 4397.0 8.388678 9.278139 0.02 -0.1799056 -7.461645 13.42899 5.16e-05 0.7581693 0.0049897 0.0049897 271.0 5.602119 7.38399 0.02 -0.3915935 2.269533 9.055807 6.98e-05 2.761969 0.0015955 0.0015955 pass 634.0 0.0001442 6936.336 159 3.2e-05 17367 0.02 663 0.0001605 6229.281 174.5 3.2e-05 12754 0.02 656 1.95e-05 51200 3558.5 3.2e-05 26809.5 0.02 673.5 0.0001845 5420.041 149 3.2e-05 13445 0.02 1390.5 0.0000777 12863.854 713 3.2e-05 23660.5 0.02 671.0 0.0013071 765.0369 37 3.2e-05 6152 0.02 731.5 0.0009975 1002.5022 37 3.2e-05 7636 0.02 519.0 0.0000463 21621.543 387 3.2e-05 23226 0.02 596 0.0009122 1096.3018 69 3.2e-05 2751.5 0.02 569.5 0.0020438 489.2749 37 3.2e-05 3007 0.02 913 0.0112317 89.03411 17 3.2e-05 1459 0.02 637.5 0.0114129 87.62002 12 3.2e-05 988 0.02 2061 0.0120404 83.05405 20 3.2e-05 2892 0.02 0.0000784 0.0001591 0.0001564 0.0000969 0.0000064 0.0001867 0.0003170 3.09e-05
ABC-0004 16(1,B4) B4 Unknown16 plate1 357 5.877736 8.631057 0.02 -0.2551633 1.721576 14.73937 0.0020267 1.430805 0.0009267 0.0009267 235.0 5.459586 9.847314 0.02 -0.5973278 5.71681 10.1382 5.14e-05 2.59044 NaN 1.95e-05 437.5 6.081077 9.278139 0.02 -0.1799056 -7.461645 13.42899 5.16e-05 0.7581693 0.0002185 0.0002185 143.5 4.966335 7.38399 0.02 -0.3915935 2.269533 9.055807 6.98e-05 2.761969 0.0007402 0.0007402 pass 238.0 0.0000487 20520.216 159 3.2e-05 17367 0.02 283 0.0000575 17381.236 174.5 3.2e-05 12754 0.02 318 1.95e-05 51200 3558.5 3.2e-05 26809.5 0.02 269.0 0.0000634 15768.912 149 3.2e-05 13445 0.02 582.0 0.0000233 42960.434 713 3.2e-05 23660.5 0.02 226.0 0.0003518 2842.7736 37 3.2e-05 6152 0.02 419.0 0.0005156 1939.5132 37 3.2e-05 7636 0.02 205.5 0.0000195 51200.000 387 3.2e-05 23226 0.02 266 0.0002796 3575.9145 69 3.2e-05 2751.5 0.02 265.0 0.0007440 1344.0629 37 3.2e-05 3007 0.02 322 0.0032063 311.89007 17 3.2e-05 1459 0.02 261.5 0.0039019 256.28686 12 3.2e-05 988 0.02 854 0.0037705 265.21947 20 3.2e-05 2892 0.02 0.0000114 0.0000484 0.0000408 0.0000542 0.0000064 0.0000978 0.0000959 8.50e-06
ABC-0005 17(1,B5) B5 Unknown17 plate1 1320 7.185387 8.631057 0.02 -0.2551633 1.721576 14.73937 0.0020267 1.430805 0.0041185 0.0041185 746.0 6.614726 9.847314 0.02 -0.5973278 5.71681 10.1382 5.14e-05 2.59044 6.74e-05 6.74e-05 1620.0 7.390181 9.278139 0.02 -0.1799056 -7.461645 13.42899 5.16e-05 0.7581693 0.0011931 0.0011931 778.0 6.656727 7.38399 0.02 -0.3915935 2.269533 9.055807 6.98e-05 2.761969 0.0063395 0.0063395 pass 746.0 0.0001737 5757.718 159 3.2e-05 17367 0.02 892 0.0002301 4346.284 174.5 3.2e-05 12754 0.02 1352 1.95e-05 51200 3558.5 3.2e-05 26809.5 0.02 918.5 0.0002673 3740.619 149 3.2e-05 13445 0.02 1768.0 0.0001038 9632.597 713 3.2e-05 23660.5 0.02 666.5 0.0012967 771.2116 37 3.2e-05 6152 0.02 1220.5 0.0018543 539.2732 37 3.2e-05 7636 0.02 760.5 0.0000735 13605.973 387 3.2e-05 23226 0.02 846 0.0015869 630.1508 69 3.2e-05 2751.5 0.02 801.0 0.0031965 312.8449 37 3.2e-05 3007 0.02 1048 0.0132789 75.30767 17 3.2e-05 1459 0.02 852.0 0.0164593 60.75578 12 3.2e-05 988 0.02 2191 0.0131474 76.06085 20 3.2e-05 2892 0.02 0.0001145 0.0001912 0.0002249 0.0001941 0.0000417 0.0003388 0.0003148 5.54e-05
ABC-0006 18(1,B6) B6 Unknown18 plate1 899 6.801283 8.631057 0.02 -0.2551633 1.721576 14.73937 0.0020267 1.430805 0.0026892 0.0026892 733.0 6.597146 9.847314 0.02 -0.5973278 5.71681 10.1382 5.14e-05 2.59044 6.56e-05 6.56e-05 2702.5 7.901933 9.278139 0.02 -0.1799056 -7.461645 13.42899 5.16e-05 0.7581693 0.0024371 0.0024371 1015.0 6.922644 7.38399 0.02 -0.3915935 2.269533 9.055807 6.98e-05 2.761969 0.0094379 0.0094379 pass 677.5 0.0001555 6430.683 159 3.2e-05 17367 0.02 895 0.0002310 4328.493 174.5 3.2e-05 12754 0.02 861 1.95e-05 51200 3558.5 3.2e-05 26809.5 0.02 888.0 0.0002566 3896.375 149 3.2e-05 13445 0.02 1728.0 0.0001010 9898.939 713 3.2e-05 23660.5 0.02 579.0 0.0010959 912.4657 37 3.2e-05 6152 0.02 967.5 0.0013970 715.8280 37 3.2e-05 7636 0.02 4955.0 0.0007581 1319.146 387 3.2e-05 23226 0.02 835 0.0015532 643.8484 69 3.2e-05 2751.5 0.02 788.5 0.0031310 319.3872 37 3.2e-05 3007 0.02 1040 0.0131555 76.01376 17 3.2e-05 1459 0.02 829.0 0.0158912 62.92790 12 3.2e-05 988 0.02 2080 0.0121993 81.97173 20 3.2e-05 2892 0.02 0.0001100 0.0001715 0.0002259 0.0001240 0.0006634 0.0002583 0.0002714 5.36e-05

MFI and RAU only:

results_5stdcurve$mfi_outputs$MFI_RAU %>%
  head() %>% 
  kable()
SampleID Plate Pk8_MFI PkMSP10_MFI PkSERA3Ag2_MFI PkSSP2_MFI LF005_MFI LF010_MFI LF016_MFI EBP_MFI RBP2b.P87_MFI PvCSS_MFI PTEX150_MFI MSP8_MFI PfMSP1-19_MFI PfAMA1_MFI Pfetramp5Ag1_MFI PfHSP40Ag1_MFI PfGexp18_MFI Pk8_Dilution PkMSP10_Dilution PkSERA3Ag2_Dilution PkSSP2_Dilution LF005_PNG_Dilution LF010_PNG_Dilution LF016_PNG_Dilution EBP_PNG_Dilution RBP2b.P87_PNG_Dilution PvCSS_PNG_Dilution PTEX150_PNG_Dilution MSP8_PNG_Dilution PfMSP1-19_PNG_Dilution PfAMA1_PNG_Dilution Pfetramp5Ag1_PNG_Dilution PfHSP40Ag1_PNG_Dilution PfGexp18_PNG_Dilution EBP_ETH_Dilution LF005_ETH_Dilution LF010_ETH_Dilution LF016_ETH_Dilution MSP8_ETH_Dilution PTEX150_ETH_Dilution PvCSS_ETH_Dilution RBP2b.P87_ETH_Dilution
ABC-0001 plate1 601 346.0 858.0 320.0 389.0 392 502 387.0 831.5 438.0 556.0 303.0 363 359.5 467 384.0 1113 0.0017051 8.60e-06 0.0005133 0.0019574 0.0000834 0.0000853 1.95e-05 0.0000966 0.0000400 0.0007845 0.0007196 0.0000233 0.0004380 0.0011172 0.0050186 0.0061629 0.0052569 0.0000258 0.0000923 0.0000800 0.0000762 0.0000064 0.0001358 0.0002014 1.07e-05
ABC-0002 plate1 344 228.5 384.0 112.5 217.0 242 337 226.0 532.0 171.0 377.0 483.0 234 229.0 319 256.0 634 0.0008863 NaN 0.0001859 0.0005508 0.0000441 0.0000475 1.95e-05 0.0000518 0.0000199 0.0002491 0.0004556 0.0000423 0.0002323 0.0006105 0.0031701 0.0038047 0.0026246 0.0000103 0.0000384 0.0000281 0.0000566 0.0000064 0.0000865 0.0000687 8.10e-06
ABC-0003 plate1 716 584.0 4397.0 271.0 634.0 663 656 673.5 1390.5 671.0 731.5 519.0 596 569.5 913 637.5 2061 0.0020815 4.43e-05 0.0049897 0.0015955 0.0001442 0.0001605 1.95e-05 0.0001845 0.0000777 0.0013071 0.0009975 0.0000463 0.0009122 0.0020438 0.0112317 0.0114129 0.0120404 0.0000784 0.0001591 0.0001564 0.0000969 0.0000064 0.0001867 0.0003170 3.09e-05
ABC-0004 plate1 357 235.0 437.5 143.5 238.0 283 318 269.0 582.0 226.0 419.0 205.5 266 265.0 322 261.5 854 0.0009267 NaN 0.0002185 0.0007402 0.0000487 0.0000575 1.95e-05 0.0000634 0.0000233 0.0003518 0.0005156 0.0000195 0.0002796 0.0007440 0.0032063 0.0039019 0.0037705 0.0000114 0.0000484 0.0000408 0.0000542 0.0000064 0.0000978 0.0000959 8.50e-06
ABC-0005 plate1 1320 746.0 1620.0 778.0 746.0 892 1352 918.5 1768.0 666.5 1220.5 760.5 846 801.0 1048 852.0 2191 0.0041185 6.74e-05 0.0011931 0.0063395 0.0001737 0.0002301 1.95e-05 0.0002673 0.0001038 0.0012967 0.0018543 0.0000735 0.0015869 0.0031965 0.0132789 0.0164593 0.0131474 0.0001145 0.0001912 0.0002249 0.0001941 0.0000417 0.0003388 0.0003148 5.54e-05
ABC-0006 plate1 899 733.0 2702.5 1015.0 677.5 895 861 888.0 1728.0 579.0 967.5 4955.0 835 788.5 1040 829.0 2080 0.0026892 6.56e-05 0.0024371 0.0094379 0.0001555 0.0002310 1.95e-05 0.0002566 0.0001010 0.0010959 0.0013970 0.0007581 0.0015532 0.0031310 0.0131555 0.0158912 0.0121993 0.0001100 0.0001715 0.0002259 0.0001240 0.0006634 0.0002583 0.0002714 5.36e-05

MFI and RAU long table:

results_5stdcurve$mfi_outputs$MFI_RAU_long %>%
  head() %>% 
  kable()
SampleID Plate Antigens MFI Species Beads RAU
ABC-0001 plate1 Pk8 601 Pk NA 0.0017051
ABC-0001 plate1 PkMSP10 346 Pk NA 0.0000086
ABC-0001 plate1 PkSERA3Ag2 858 Pk NA 0.0005133
ABC-0001 plate1 PkSSP2 320 Pk NA 0.0019574
ABC-0001 plate1 LF005 389 Pv PNG 0.0000834
ABC-0001 plate1 LF005 389 Pv ETH 0.0000923

10-Point Standard Curve

These steps are very similar to the 5-point standard curve, except where indicated.

Step 1: Load your data!

your_raw_data_10std <- c(
  system.file("extdata", "example_MAGPIX_pk_10std_plate1.csv", package = "SeroTrackR"),
  system.file("extdata", "example_MAGPIX_pk_10std_plate2.csv", package = "SeroTrackR")
)
your_plate_layout_10std <- system.file("extdata", "example_platelayout_pk_10std.xlsx", package = "SeroTrackR")

Step 2: Read your data and process MFI to RAU

results_10stdcurve <- runPlasmoPipeline(
  raw_data = your_raw_data_10std,
  platform = "magpix",
  plate_layout = your_plate_layout_10std,
  panel = "panel1",
  std_point = 10, ################################### here make sure you write 10! 
  experiment_name = "10-point standard curve"
)
Standard Curve Plot
results_10stdcurve$std_curve

Bead Counts QC Plot
results_10stdcurve$bead_counts

Blanks QC Ploat
results_10stdcurve$blanks

MFI to RAU Tables

All results:

results_10stdcurve$mfi_outputs$All_Results %>%
  head() %>% 
  kable()
SampleID Location Location.2 Sample Plate Pk8_MFI Pk8_log_mfi Pk8_max_s1 Pk8_max_dil Pk8_slope Pk8_low_asym Pk8_upp_asym Pk8_ed50 Pk8_asym_par Pk8_Dilution Pk8_rau_restricted PkMSP10_MFI PkMSP10_log_mfi PkMSP10_max_s1 PkMSP10_max_dil PkMSP10_slope PkMSP10_low_asym PkMSP10_upp_asym PkMSP10_ed50 PkMSP10_asym_par PkMSP10_Dilution PkMSP10_rau_restricted PkSERA3Ag2_MFI PkSERA3Ag2_log_mfi PkSERA3Ag2_max_s1 PkSERA3Ag2_max_dil PkSERA3Ag2_slope PkSERA3Ag2_low_asym PkSERA3Ag2_upp_asym PkSERA3Ag2_ed50 PkSERA3Ag2_asym_par PkSERA3Ag2_Dilution PkSERA3Ag2_rau_restricted PkSSP2_MFI PkSSP2_log_mfi PkSSP2_max_s1 PkSSP2_max_dil PkSSP2_slope PkSSP2_low_asym PkSSP2_upp_asym PkSSP2_ed50 PkSSP2_asym_par PkSSP2_Dilution PkSSP2_rau_restricted QC_total LF005_MFI LF005_PNG_Dilution LF005_DilutionReciprocal LF005_MinStd LF005_MaxDilution LF005_MaxStd LF005_MinDilution LF010_MFI LF010_PNG_Dilution LF010_DilutionReciprocal LF010_MinStd LF010_MaxDilution LF010_MaxStd LF010_MinDilution LF016_MFI LF016_PNG_Dilution LF016_DilutionReciprocal LF016_MinStd LF016_MaxDilution LF016_MaxStd LF016_MinDilution EBP_MFI EBP_PNG_Dilution EBP_DilutionReciprocal EBP_MinStd EBP_MaxDilution EBP_MaxStd EBP_MinDilution RBP2b.P87_MFI RBP2b.P87_PNG_Dilution RBP2b.P87_DilutionReciprocal RBP2b.P87_MinStd RBP2b.P87_MaxDilution RBP2b.P87_MaxStd RBP2b.P87_MinDilution PvCSS_MFI PvCSS_PNG_Dilution PvCSS_DilutionReciprocal PvCSS_MinStd PvCSS_MaxDilution PvCSS_MaxStd PvCSS_MinDilution PTEX150_MFI PTEX150_PNG_Dilution PTEX150_DilutionReciprocal PTEX150_MinStd PTEX150_MaxDilution PTEX150_MaxStd PTEX150_MinDilution MSP8_MFI MSP8_PNG_Dilution MSP8_DilutionReciprocal MSP8_MinStd MSP8_MaxDilution MSP8_MaxStd MSP8_MinDilution PfMSP1-19_MFI PfMSP1-19_PNG_Dilution PfMSP1-19_DilutionReciprocal PfMSP1-19_MinStd PfMSP1-19_MaxDilution PfMSP1-19_MaxStd PfMSP1-19_MinDilution PfAMA1_MFI PfAMA1_PNG_Dilution PfAMA1_DilutionReciprocal PfAMA1_MinStd PfAMA1_MaxDilution PfAMA1_MaxStd PfAMA1_MinDilution Pfetramp5Ag1_MFI Pfetramp5Ag1_PNG_Dilution Pfetramp5Ag1_DilutionReciprocal Pfetramp5Ag1_MinStd Pfetramp5Ag1_MaxDilution Pfetramp5Ag1_MaxStd Pfetramp5Ag1_MinDilution PfHSP40Ag1_MFI PfHSP40Ag1_PNG_Dilution PfHSP40Ag1_DilutionReciprocal PfHSP40Ag1_MinStd PfHSP40Ag1_MaxDilution PfHSP40Ag1_MaxStd PfHSP40Ag1_MinDilution PfGexp18_MFI PfGexp18_PNG_Dilution PfGexp18_DilutionReciprocal PfGexp18_MinStd PfGexp18_MaxDilution PfGexp18_MaxStd PfGexp18_MinDilution EBP_ETH_Dilution LF005_ETH_Dilution LF010_ETH_Dilution LF016_ETH_Dilution MSP8_ETH_Dilution PTEX150_ETH_Dilution PvCSS_ETH_Dilution RBP2b.P87_ETH_Dilution
ABC-0001 25(1,C1) C1 Unknown25 plate1 1953.0 7.577122 10.11523 0.02 -3.9205 -8.461397 8.564957 0.0006842 0.0163902 0.0002717 0.0002717 1095.0 6.998510 9.938372 0.02 -3.189242 2.674833 8.666433 0.0005417 0.0673263 0.0001188 0.0001188 5761.0 8.658866 8.724207 0.02 -3.933696 0.0330274 6.955762 0.0007694 0.0511214 NaN 0.0000195 901.5 6.804060 9.752665 0.02 -3.138855 0.0846336 8.270243 0.0007203 0.0453874 0.0001810 0.0001810 pass 1020 0.0009253 1080.6816 44 3.91e-05 13024 0.02 1987.0 0.0006430 1555.2402 161 3.91e-05 24023.5 0.02 5070 0.0019247 519.5718 121.5 3.91e-05 23687 0.02 3140 0.0011045 905.4032 116 3.91e-05 17664 0.02 15170.0 0.0200000 50.0000 86 3.91e-05 9648 0.02 672.0 0.0007170 1394.7239 29 3.91e-05 13146.5 0.02 1350 0.0011268 887.5057 52.5 3.91e-05 14354 0.02 1751.0 0.0004915 2034.5996 167 3.91e-05 24512 0.02 1221 0.0200000 50.0000 26 3.91e-05 792.5 0.02 873.5 0.0022293 448.5721 42 3.91e-05 2658 0.02 1058.0 0.0200000 50.0000 23.5 3.91e-05 1009 0.02 863.0 0.0200000 50.00000 15 3.91e-05 438 0.02 2303.0 0.0014824 674.5751 211 3.91e-05 9475 0.02 0.0005117 0.0010659 0.0005896 0.0165594 0.0004472 0.0002156 0.0001776 0.0181453
ABC-0002 26(1,C2) C2 Unknown26 plate1 492.5 6.199495 10.11523 0.02 -3.9205 -8.461397 8.564957 0.0006842 0.0163902 0.0000667 0.0000667 296.5 5.692047 9.938372 0.02 -3.189242 2.674833 8.666433 0.0005417 0.0673263 0.0000222 0.0000222 4583.0 8.430109 8.724207 0.02 -3.933696 0.0330274 6.955762 0.0007694 0.0511214 NaN 0.0000195 214.5 5.368310 9.752665 0.02 -3.138855 0.0846336 8.270243 0.0007203 0.0453874 0.0000333 0.0000333 pass 329 0.0003249 3077.9698 44 3.91e-05 13024 0.02 369.5 0.0001129 8856.0423 161 3.91e-05 24023.5 0.02 521 0.0001925 5195.1196 121.5 3.91e-05 23687 0.02 346 0.0001220 8197.3057 116 3.91e-05 17664 0.02 778.0 0.0004303 2324.0862 86 3.91e-05 9648 0.02 264.5 0.0003276 3052.1954 29 3.91e-05 13146.5 0.02 500 0.0004604 2172.1639 52.5 3.91e-05 14354 0.02 324.0 0.0000843 11861.3051 167 3.91e-05 24512 0.02 364 0.0032324 309.3699 26 3.91e-05 792.5 0.02 366.0 0.0006607 1513.5304 42 3.91e-05 2658 0.02 462.5 0.0037558 266.2533 23.5 3.91e-05 1009 0.02 368.5 0.0136927 73.03176 15 3.91e-05 438 0.02 1003.5 0.0003599 2778.7935 211 3.91e-05 9475 0.02 0.0000385 0.0003910 0.0000999 0.0019141 0.0000467 0.0000873 0.0000815 0.0002659
ABC-0003 27(1,C3) C3 Unknown27 plate1 136.5 4.916325 10.11523 0.02 -3.9205 -8.461397 8.564957 0.0006842 0.0163902 0.0000160 0.0000195 36.0 3.583519 9.938372 0.02 -3.189242 2.674833 8.666433 0.0005417 0.0673263 0.0000001 0.0000195 465.0 6.142037 8.724207 0.02 -3.933696 0.0330274 6.955762 0.0007694 0.0511214 0.0004228 0.0004228 63.0 4.143135 9.752665 0.02 -3.138855 0.0846336 8.270243 0.0007203 0.0453874 0.0000052 0.0000195 pass 64 0.0000636 15723.4853 44 3.91e-05 13024 0.02 50.0 0.0000195 51200.0000 161 3.91e-05 24023.5 0.02 113 0.0000376 26605.4907 121.5 3.91e-05 23687 0.02 45 0.0000195 51200.0000 116 3.91e-05 17664 0.02 726.0 0.0003985 2509.3247 86 3.91e-05 9648 0.02 101.5 0.0001440 6944.6800 29 3.91e-05 13146.5 0.02 1124 0.0009516 1050.9026 52.5 3.91e-05 14354 0.02 52.0 0.0000195 51200.0000 167 3.91e-05 24512 0.02 66 0.0002067 4838.8218 26 3.91e-05 792.5 0.02 75.0 0.0000872 11473.9634 42 3.91e-05 2658 0.02 64.0 0.0001931 5179.5184 23.5 3.91e-05 1009 0.02 60.0 0.0003624 2759.34921 15 3.91e-05 438 0.02 137.0 0.0000195 51200.0000 211 3.91e-05 9475 0.02 0.0000195 0.0000557 0.0000195 0.0006034 0.0000195 0.0001827 0.0000299 0.0002456
ABC-0004 28(1,C4) C4 Unknown28 plate1 464.0 6.139885 10.11523 0.02 -3.9205 -8.461397 8.564957 0.0006842 0.0163902 0.0000626 0.0000626 688.5 6.534515 9.938372 0.02 -3.189242 2.674833 8.666433 0.0005417 0.0673263 0.0000699 0.0000699 204.0 5.318120 8.724207 0.02 -3.933696 0.0330274 6.955762 0.0007694 0.0511214 0.0002013 0.0002013 6687.0 8.807921 9.752665 0.02 -3.138855 0.0846336 8.270243 0.0007203 0.0453874 NaN 0.0000195 pass 777 0.0007169 1394.8974 44 3.91e-05 13024 0.02 4357.0 0.0015099 662.3157 161 3.91e-05 24023.5 0.02 273 0.0001012 9877.6379 121.5 3.91e-05 23687 0.02 998 0.0003335 2998.0523 116 3.91e-05 17664 0.02 2673.0 0.0019523 512.2274 86 3.91e-05 9648 0.02 213.0 0.0002732 3660.7813 29 3.91e-05 13146.5 0.02 425 0.0003983 2510.5145 52.5 3.91e-05 14354 0.02 3718.0 0.0011290 885.7238 167 3.91e-05 24512 0.02 251 0.0016733 597.6160 26 3.91e-05 792.5 0.02 876.0 0.0022392 446.5842 42 3.91e-05 2658 0.02 275.0 0.0015644 639.2025 23.5 3.91e-05 1009 0.02 227.0 0.0045481 219.87220 15 3.91e-05 438 0.02 499.0 0.0001171 8538.4611 211 3.91e-05 9475 0.02 0.0001404 0.0008412 0.0013207 0.0011681 0.0010458 0.0000750 0.0000678 0.0011763
ABC-0005 29(1,C5) C5 Unknown29 plate1 2159.0 7.677400 10.11523 0.02 -3.9205 -8.461397 8.564957 0.0006842 0.0163902 0.0003004 0.0003004 1047.5 6.954162 9.938372 0.02 -3.189242 2.674833 8.666433 0.0005417 0.0673263 0.0001132 0.0001132 1563.0 7.354362 8.724207 0.02 -3.933696 0.0330274 6.955762 0.0007694 0.0511214 NaN 0.0000195 1002.5 6.910252 9.752665 0.02 -3.138855 0.0846336 8.270243 0.0007203 0.0453874 0.0002024 0.0002024 pass 1434 0.0012836 779.0668 44 3.91e-05 13024 0.02 2218.0 0.0007213 1386.4142 161 3.91e-05 24023.5 0.02 2318 0.0008246 1212.7647 121.5 3.91e-05 23687 0.02 3161 0.0011130 898.4415 116 3.91e-05 17664 0.02 14703.5 0.0200000 50.0000 86 3.91e-05 9648 0.02 1764.5 0.0016961 589.5992 29 3.91e-05 13146.5 0.02 1730 0.0014239 702.2986 52.5 3.91e-05 14354 0.02 3042.5 0.0008983 1113.1736 167 3.91e-05 24512 0.02 903 0.0200000 50.0000 26 3.91e-05 792.5 0.02 696.5 0.0015867 630.2310 42 3.91e-05 2658 0.02 1259.0 0.0200000 50.0000 23.5 3.91e-05 1009 0.02 765.0 0.0200000 50.00000 15 3.91e-05 438 0.02 1867.0 0.0010264 974.3160 211 3.91e-05 9475 0.02 0.0005156 0.0014398 0.0006586 0.0080539 0.0008397 0.0002702 0.0004059 0.0180255
ABC-0006 30(1,C6) C6 Unknown30 plate1 313.5 5.747799 10.11523 0.02 -3.9205 -8.461397 8.564957 0.0006842 0.0163902 0.0000410 0.0000410 317.0 5.758902 9.938372 0.02 -3.189242 2.674833 8.666433 0.0005417 0.0673263 0.0000246 0.0000246 4176.5 8.337229 8.724207 0.02 -3.933696 0.0330274 6.955762 0.0007694 0.0511214 NaN 0.0000195 157.0 5.056246 9.752665 0.02 -3.138855 0.0846336 8.270243 0.0007203 0.0453874 0.0000217 0.0000217 pass 173 0.0001778 5623.6783 44 3.91e-05 13024 0.02 244.5 0.0000706 14171.4429 161 3.91e-05 24023.5 0.02 1211 0.0004335 2306.8620 121.5 3.91e-05 23687 0.02 717 0.0002429 4116.6604 116 3.91e-05 17664 0.02 1808.0 0.0011610 861.3537 86 3.91e-05 9648 0.02 164.0 0.0002188 4569.5652 29 3.91e-05 13146.5 0.02 242 0.0002389 4185.2437 52.5 3.91e-05 14354 0.02 640.0 0.0001721 5809.2375 167 3.91e-05 24512 0.02 292 0.0021690 461.0521 26 3.91e-05 792.5 0.02 243.0 0.0003928 2545.7445 42 3.91e-05 2658 0.02 243.0 0.0012933 773.1932 23.5 3.91e-05 1009 0.02 213.5 0.0039935 250.40655 15 3.91e-05 438 0.02 410.0 0.0000862 11606.7618 211 3.91e-05 9475 0.02 0.0000975 0.0002066 0.0000592 0.0039599 0.0001246 0.0000393 0.0000524 0.0007162

MFI and RAU only:

results_10stdcurve$mfi_outputs$MFI_RAU %>%
  head() %>% 
  kable()
SampleID Plate Pk8_MFI PkMSP10_MFI PkSERA3Ag2_MFI PkSSP2_MFI LF005_MFI LF010_MFI LF016_MFI EBP_MFI RBP2b.P87_MFI PvCSS_MFI PTEX150_MFI MSP8_MFI PfMSP1-19_MFI PfAMA1_MFI Pfetramp5Ag1_MFI PfHSP40Ag1_MFI PfGexp18_MFI Pk8_Dilution PkMSP10_Dilution PkSERA3Ag2_Dilution PkSSP2_Dilution LF005_PNG_Dilution LF010_PNG_Dilution LF016_PNG_Dilution EBP_PNG_Dilution RBP2b.P87_PNG_Dilution PvCSS_PNG_Dilution PTEX150_PNG_Dilution MSP8_PNG_Dilution PfMSP1-19_PNG_Dilution PfAMA1_PNG_Dilution Pfetramp5Ag1_PNG_Dilution PfHSP40Ag1_PNG_Dilution PfGexp18_PNG_Dilution EBP_ETH_Dilution LF005_ETH_Dilution LF010_ETH_Dilution LF016_ETH_Dilution MSP8_ETH_Dilution PTEX150_ETH_Dilution PvCSS_ETH_Dilution RBP2b.P87_ETH_Dilution
ABC-0001 plate1 1953.0 1095.0 5761.0 901.5 1020 1987.0 5070 3140 15170.0 672.0 1350 1751.0 1221 873.5 1058.0 863.0 2303.0 0.0002717 0.0001188 NaN 0.0001810 0.0009253 0.0006430 0.0019247 0.0011045 0.0200000 0.0007170 0.0011268 0.0004915 0.0200000 0.0022293 0.0200000 0.0200000 0.0014824 0.0005117 0.0010659 0.0005896 0.0165594 0.0004472 0.0002156 0.0001776 0.0181453
ABC-0002 plate1 492.5 296.5 4583.0 214.5 329 369.5 521 346 778.0 264.5 500 324.0 364 366.0 462.5 368.5 1003.5 0.0000667 0.0000222 NaN 0.0000333 0.0003249 0.0001129 0.0001925 0.0001220 0.0004303 0.0003276 0.0004604 0.0000843 0.0032324 0.0006607 0.0037558 0.0136927 0.0003599 0.0000385 0.0003910 0.0000999 0.0019141 0.0000467 0.0000873 0.0000815 0.0002659
ABC-0003 plate1 136.5 36.0 465.0 63.0 64 50.0 113 45 726.0 101.5 1124 52.0 66 75.0 64.0 60.0 137.0 0.0000160 0.0000001 0.0004228 0.0000052 0.0000636 0.0000195 0.0000376 0.0000195 0.0003985 0.0001440 0.0009516 0.0000195 0.0002067 0.0000872 0.0001931 0.0003624 0.0000195 0.0000195 0.0000557 0.0000195 0.0006034 0.0000195 0.0001827 0.0000299 0.0002456
ABC-0004 plate1 464.0 688.5 204.0 6687.0 777 4357.0 273 998 2673.0 213.0 425 3718.0 251 876.0 275.0 227.0 499.0 0.0000626 0.0000699 0.0002013 NaN 0.0007169 0.0015099 0.0001012 0.0003335 0.0019523 0.0002732 0.0003983 0.0011290 0.0016733 0.0022392 0.0015644 0.0045481 0.0001171 0.0001404 0.0008412 0.0013207 0.0011681 0.0010458 0.0000750 0.0000678 0.0011763
ABC-0005 plate1 2159.0 1047.5 1563.0 1002.5 1434 2218.0 2318 3161 14703.5 1764.5 1730 3042.5 903 696.5 1259.0 765.0 1867.0 0.0003004 0.0001132 NaN 0.0002024 0.0012836 0.0007213 0.0008246 0.0011130 0.0200000 0.0016961 0.0014239 0.0008983 0.0200000 0.0015867 0.0200000 0.0200000 0.0010264 0.0005156 0.0014398 0.0006586 0.0080539 0.0008397 0.0002702 0.0004059 0.0180255
ABC-0006 plate1 313.5 317.0 4176.5 157.0 173 244.5 1211 717 1808.0 164.0 242 640.0 292 243.0 243.0 213.5 410.0 0.0000410 0.0000246 NaN 0.0000217 0.0001778 0.0000706 0.0004335 0.0002429 0.0011610 0.0002188 0.0002389 0.0001721 0.0021690 0.0003928 0.0012933 0.0039935 0.0000862 0.0000975 0.0002066 0.0000592 0.0039599 0.0001246 0.0000393 0.0000524 0.0007162

MFI and RAU long table:

results_10stdcurve$mfi_outputs$MFI_RAU_long %>%
  head() %>% 
  kable()
SampleID Plate Antigens MFI Species Beads RAU
ABC-0001 plate1 Pk8 1953.0 Pk NA 0.0002717
ABC-0001 plate1 PkMSP10 1095.0 Pk NA 0.0001188
ABC-0001 plate1 PkSERA3Ag2 5761.0 Pk NA NaN
ABC-0001 plate1 PkSSP2 901.5 Pk NA 0.0001810
ABC-0001 plate1 LF005 1020.0 Pv PNG 0.0009253
ABC-0001 plate1 LF005 1020.0 Pv ETH 0.0010659

Data Analysis: LDH

For the LDH data analysis, follow the steps below:

runLDHpipeline(
  raw_data = "your/raw/data.xlsx",                    # Mandatory
  plate_layout = "your/plate/layout/file.xlsx",       # Mandatory
  platform = "bioplex",                               # Defaults to "bioplex" but "magpix" also works
  location = "ETH",                                   # Defaults to "ETH" but "PNG" also works
  dilution = c(1000000, 333333.33, 111111.11, 37037.04, 12345.68, 4115.23, 1371.74, 457.25, 152.42, 50.81), # Default values shown but other levels can be added
  experiment_name = "experiment1",                    # Defaults to "experiment1"
  file_path = NULL                                    # Defaults to current folder/working directory
)

Visualisation of the {SeroTrackR} R Package

We have used the {targets} R package to generate a pipeline! This allows us to:

  • Automatically detect the dependencies of each step
  • One-command execution
  • Automatic caching
  • Automatic detection of changes in data and/or code

For more information on {targets} see this tutorial.

here() starts at /Users/Dionne/Documents/GitHub/SeroTrackR
✔ skipped pipeline [43ms, 15 skipped]
Warning message:
package ‘targets’ was built under R version 4.4.1 
here() starts at /Users/Dionne/Documents/GitHub/SeroTrackR
Warning message:
package ‘targets’ was built under R version 4.4.1 

FAQs

I have multiple plate layout files. How can I input them?

Use the getPlateLayout() function to create a master plate layout file to then input into the other functions in the package!

getPlateLayout("../inst/extdata/")

Here replace “../inst/extdata/” with the main file that contains your folders. For example, if your folder looks like this:

my_R_project/
└── raw_data_files/
    ├── plate_1/
       ├── raw_magpix_data_plate1.csv
       └── plate_layout_1.xlsx
    ├── plate_2/
       ├── raw_magpix_data_plate2.csv
       └── plate_layout_2.xlsx
    └── plate_3/
        ├── raw_magpix_data_plate3.csv
        └── plate_layout_3.xlsx

you would write:

getPlateLayout("raw_data_files/")

you could ALSO write:

getPlateLayout()

OR:

getPlateLayout(folder_path = c("plate_layout_1.xlsx", "plate_layout_2.xlsx", "plate_layout_3.xlsx"))