OligoArray is a program that computes gene specific oligonucleotides that are free of secondary structure for genome-scale oligonucleotide microarray construction. Selection is based on three major criteria: oligonucleotide melting temperature, specificity to a single target, or at least to the shortest list of possible targets and the inability to fold into a stable secondary structure at the hybridization temperature. Here, I describe how Tm, specificity and secondary structure are computed.
Oligonucleotide melting temperature is computed using the Nearest-Neighbor model using DNA parameters published by Dr. J. SantaLucia (Proc Natl Acad Sci U S A (1998) 95: 1460-5). Published data are for a 1M sodium concentration in the buffer. To compute the Tm, I use the formula Tm = (DH°/(DS° + R ln(DNA /4)) -273.15 where R is the gas constant (1.9872 cal/K.mol) and DNA is the DNA concentration.
For computation, I have fixed DNA concentration to 10E-6 M and I assume that the concentration of both strands is equal. Since we do not know the exact concentration of each probe and each target during hybridization, I have fixed this parameter. Changing the DNA concentration from 10E-6 to 10E-9 M will only decrease the Tm by few degrees.
The Blast program (Altschul et al. 1997 NAR 25(17):3389-402) is used to search for sequence similarities between the oligonucleotide sequence and all other sequences contained in the Local Blast Database (see here how to build this database). For gene expression studies, this database should contain all transcribed sequence from the organism you are working on.
When OligoArray does not find any oligo for an input sequence due to specificity failure, I consider that such a sequence belongs to a set of conserved sequences.
One may probably want to reject an oligonucleotide having a stable secondary structure at hybridization temperature. To predict such structures, OligoArray calls the Mfold software developed by Prof. M. Zucker. Predictions are done using parameters for DNA at 1M sodium concentration. An oligonucleotide will be rejected if it has secondary structure with a Tm above the user defined threshold (see option -s).Algorithm
Describe the algorithm here after publication