IMPORTANT HINTS

First set normalizeData=FALSE on the webpage.
Then you should get a response within 10 minutes or so. If you don’t get a response, it means your data crashed the R session.
Only if you get a response, set normalizeData=TRUE to arrive at the final estimates.

If you submit a sample annotation file make sure it includes columns “Tissue”, “Age”, “Female”.
Note the spelling (capitalization).

Make sure to submit a comma delimited file (that was saved with Excel to avoid end of line character issues). Unusual end of line characters will crash the R session!

Make sure to upload all the probe names (cg numbers) mentioned in the file datMiniAnnotation.csv. If the corresponding probes are missing in your data set, fill up the row with “NA” (which indicates that the values are not available).

Please take a good look at the file TutorialOnlineCalculator.doc which you can find here https://horvath.genetics.ucla.edu/html/dnamage/
Here is an excerpt:

Why does the web based calculator not return any results for my data set?
Answer: A small data set (say fewer than 100 samples) should lead to a response within an hour or so. Try a small subset of your data to see whether you get a response. If not, your data lead to an error. Here are some common remedies.
a) If you uploaded a sample annotation file, make sure that its numbers of rows correspond to the number of samples, i.e. the numbers of columns of dat0 minus 1.
b) Make sure that your DNA methylation data file contains all the necessary probes. While it is OK to have missing DNA methylation levels, it is not OK to have missing probe IDs. Unless you use all probes on the 450K array or the 27K array, please make sure that your file includes all CpGs listed in datMiniAnnotation.csv Probes that were not measured in your data set should lead to a row filled with NAs. But the probe name needs to be listed. The advanced analysis option for blood requires that your data were measured on the Illumina450K platform but it only uses the probes in datMiniAnnotation.
c) Line feeds: I have noticed that the session breaks down when users upload the wrong line breaks. It should be CR+LF (carriage return and line feed) and not just LF or CR. A simple remedy is to open the csv file in Excel and save it as a .csv file for Windows.
d) Make sure that you upload numeric data (missing values should be coded as NA and not as null or NULL). Sometimes a user uploads a file that also contains various annotations (e.g. chromosome number, gene name). Carefully look at dat0 before you upload it. The first column should contain CpG identifiers. The remaining columns should only contain numeric values. If a column (sample) only contains missing values, remove it from dat0 and datSample. If need be, run the following R code before you upload the data.
for (i in 2:dim(dat0)[[2]] ) { dat0[,i]=as.numeric(as.character(dat0[,i])) }

If you have Illuminay 27K data, don’t select the advanced analysis option for blood since it only applies to 450K arrays.

Additional comments:

1) We have found that noob normalization (preprocessNoob in minfi) or quantile normalization (preprocessQuantile in minfi) often lead to the highest accuracy. Above all, avoid missing values when it comes to preprocessing your data.

2) Please make sure to explicitly enter your email address on top of the submission page to the right of the the text “Email”

3) Make sure that the column/variable “Female” in the annotation file only contains numeric entries 1, 0, or NA (not available). You will crash the R session if it contains “m” or “f” etc.

4) Sometimes the .csv file that contains the beta values does not load properly and crashes the R session or leads to a file with missing data. To check your input file, try to run the following R code in your R session.

read.csv.possiblyCompressed = function(fileName, ...){
n = nchar(fileName)
if (substring(fileName, n-3, n)==".zip") {data = read.zip(fileName) } else if (substring(fileName, n-2, n)==".gz") {data = read.csv.sql(file = as.data.frame(gzfile(fileName, ...)))} else if (substring(fileName, n-3, n)==".bz2") {data = read.csv.sql(file = as.data.frame(bzfile(fileName, ...))) } else { data = read.csv.sql(file = fileName, ...) }
data
}

After running the function in R, check the following output
dat0[1:5,1:5]

Fix: If you get a weird results, open your data in Excel (Windows) and save it as .csv file.