interpretation of the results obtained with digital PCR
1
0
Entering edit mode
22 days ago
Lorenzo • 0

I'm using non-droplet digital PCR to identify the presence or absence of an RNA using the cDNA made from that RNA. I wanted to ask if the threshold can be set based on the internal negative control or the NTC. I need this because each sample has its own threshold, different from the others, and I can't interpret the data.

I'd also like to know if I can consider a sample positive with just one distribution, or if there must be a specific number of multiple distributions.

Thank you for your attention.

dPCR • 350 views
ADD COMMENT
0
Entering edit mode
14 hours ago

Hello,

Thanks for the details on your setup. I'll keep this concise, focusing on standard dPCR practices (e.g., per dMIQE guidelines).

Threshold Setting

Yes, set a global threshold based on NTC or internal negative controls—place it just above the negative cluster in the NTC to separate signal from noise. Avoid per-sample thresholds; use controls for consistency across wells. If software auto-varies them, switch to manual mode and check for issues like matrix effects or contamination.

Positive Calls

For presence/absence, require at least 3 positive partitions for a confident positive (to exceed false-positive risk per Poisson stats). A single positive is often ambiguous—treat as negative or re-test, especially if NTCs are clean.

Example R Analysis Code

If you're analyzing raw partition data (e.g., fluorescence amplitudes), use the dpcR package in R for thresholding and calling. Install via install.packages("dpcR") if needed. Here's a basic script assuming you have a CSV with columns: sample_id, partition_id, amplitude.

library(dpcR)

# Load your data (replace with your file)
data <- read.csv("your_dPCR_data.csv")

# Subset NTC for threshold estimation
ntc_data <- data[data$sample_id == "NTC", "amplitude"]

# Set threshold as mean + 3*SD of NTC negatives (adjust as needed)
threshold <- mean(ntc_data) + 3 * sd(ntc_data)

# Apply to all samples and count positives
data$positive <- data$amplitude > threshold
positives_per_sample <- aggregate(positive ~ sample_id, data, sum)

# Print results; e.g., call positive if >=3
print(positives_per_sample)
positives_per_sample$call <- ifelse(positives_per_sample$positive >= 3, "Positive", "Negative")

# For Poisson-based confidence, use built-in functions
poisson_test(positives_per_sample$positive[1], total_partitions = nrow(data[data$sample_id == unique(data$sample_id)[1], ]))

Adapt this to your platform's output (e.g., QuantStudio exports). For more advanced fits, check ddpcr package too.

Kevin

ADD COMMENT

Login before adding your answer.

Traffic: 4552 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6