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 to form 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 input sequence and all other sequences contained in a specific 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.
The Blast output is parsed and all alignments longer than 13 nucleotides are saved in memory in a bidimensional matrix. The length of the first dimension equals the length of the input sequence while the second dimension represents the number of alignments. This matrix is read to compute the Tm of hybridization of a candidate oligonucleotide with each putative non specific targets if existing. This candidate will be considered to be specific if all of these Tm are below a given threshold (see option -x).
When OligoArray does not find any oligonucleotide for an input sequence due to specificity failure, it will report non specific oligonucleotides rather than nothing. During design, candidates rejected due to a lack of specificity are saved in memory. If necessary, one or more non specific oligonucleotides are reported, giving priority to the ones with the lower number of putative cross-hybridizations. See the oligonucleotide output file for an example.
One may probably want to reject an oligonucleotide having a stable secondary structure at hybridization temperature. To predict such structures, OligoArray calls the OligoArrayAux software developed by N. Markham & Prof. M. Zucker. Predictions are done using parameters for DNA at 1M sodium concentration. An oligonucleotide will be rejected if a secondary structure is predicted with a negative free energy at a given threshold temperature (see option -s).Algorithm
The algorithm of this program is described the original publication: "OligoArray 2.0: Design of oligonucleotide probes for DNA microarrays using a thermodynamic approach", Jean - Marie Rouillard, Michael Zuker and Erdogan Gulari, Nucleic Acids Research, 2003, Vol. 31, No. 12 3057-3062 [Abstract][Full Text].