Illumina HumanHT-12 V4.0 analysis but I only have the .IDAT files
0
0
Entering edit mode
22 days ago
isaac_mani • 0

Im pretty new working with Illumina beadchips, I have some troubles to analyze this type of Microarray, because they only gave me the .idat files and de bgx manifest, so Im very confused because reading other posts related precisely to the microarray I am working on and they have more files than I actually have, I understand that I must extract fluorescence levels in the GenomeStudio analysis program but I still have several problems to be able to do a differential expression analysis.

From the documentation I have been reading from various libraries in R I have made a code that only works until I try to normalize my data:

library(limma)
library(lumi)
library(illuminaHumanv4.db)

# 1. Load .IDAT and .bgx files
directory <- "Data"
idat_files <- list.files(directory, pattern = "\\.idat$", full.names = TRUE)
bgx_file <- list.files(pattern = "\\.bgx$", full.names = TRUE)[1] # Use the first .bgx file

# 2. Read raw data using limma::read.idat
raw_data <- read.idat(idat_files, bgx_file)

# 3. Calculate detection p-values
pvalues <- detectionPValues(raw_data)

# 4. QC: Proportion of expressed genes (adjust the threshold according to your experiment)
proportion_expressed <- propexpr(pvalues, cutoff = 0.05)
print(proportion_expressed) # Should be > 0.5 in most samples

# 5. Normalization with neqc (Normexp + Quantile)
normalized_data <- neqc(raw_data)
Illumina Expression-Analysis Microarray • 475 views
ADD COMMENT
0
Entering edit mode

I understand that I must extract fluorescence levels in the GenomeStudio analysis program

Does it mean you have already done this part or not?

ADD REPLY
0
Entering edit mode

I think so I got oonly AVG_SIGNAL and AVG.DETECTION_P-value for my three conditions

ADD REPLY
0
Entering edit mode

This is what I did after exporting my data from GenomeStudio although I personally think I did something wrong when exporting

library(limma)

# 1. Load data from CSV
file_path <- "Data_R.csv"
data <- read.csv(file_path, stringsAsFactors = FALSE)

# 2. Select relevant columns
expr_data <- data[, c("PROBE_ID", "SYMBOL", "Basal.AVG_Signal", "LPS.AVG_Signal", "LDLOX.AVG_Signal")]
detection_pvals <- data[, c("Basal.Detection.Pval", "LPS.Detection.Pval", "LDLOX.Detection.Pval")]

# 3. Filter probes with low detection (p-value < 0.05 in at least 50% of the samples)
keep_probes <- rowSums(detection_pvals < 0.05) >= 2 
filtered_data <- expr_data[keep_probes, ]

# 4. Create expression matrix (without PROBE_ID and SYMBOL)
expression_matrix <- as.matrix(filtered_data[, 3:5])
rownames(expression_matrix) <- filtered_data$SYMBOL

# 5. Define experimental design
groups <- factor(c("Basal", "LPS", "LDLOX"))
design <- model.matrix(~ 0 + groups)
colnames(design) <- levels(groups)

# 6. Fit linear model for differential analysis
fit <- lmFit(expression_matrix, design)
cont.matrix <- makeContrasts(LPS_vs_Basal = LPS - Basal,
                            LDLOX_vs_Basal = LDLOX - Basal,
                            LPS_vs_LDLOX = LPS - LDLOX,
                            levels = design)
fit2 <- contrasts.fit(fit, cont.matrix)
fit2 <- eBayes(fit2)

My script ends here because it stops working with the folowwing error:

Error en .ebayes(fit = fit, proportion = proportion, stdev.coef.lim = stdev.coef.lim, : 
  No finite residual standard deviations
ADD REPLY
0
Entering edit mode

You need replicates in your sample groups otherwise it is impossible to estimate variability. As we do not know your design matrix we cannot check whether it is the case or not.

ADD REPLY
0
Entering edit mode

What do you mean by having replicates?

ADD REPLY
0
Entering edit mode

At least two samples in one group

ADD REPLY

Login before adding your answer.

Traffic: 2400 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