OligoArray is written in JavaTM. OligoArray 2.0 code will be distributed soon under the GNU GPL license (here is the License text in html or plain text). This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. I will distribute freely the code to the community so please feel free to modify it and distribute your modifications under the terms of the GNU GPL license. If you modify it or find some bug, I will be happy to be kept in touch. I will also appreciate any feedback concerning any possible modifications to improve this software. If you definitively feel sad to do not pay for that software, you are welcome to support the Free Software Foundation.
OligoArray was successfully tested on sparc-sun-solaris2.7 and intel-redhat 7.1, 7.2 and 8.0. It should run on any system where both NCBI Blast and Mfold 3.1 work. I never tested it on Mac OS X. Some users experienced unexpected behavior with OligoArray 1.0 under MAC OS X (cross-hybridization never detected if you use Apple/Genentech BLAST). So I strongly encourage all users to run extensive tests using the test files given on this web site before to start a real design.
JAVASince OligoArray is written in Java, you need to verify that a Java Runtime Environment version 1.3 (or above) is installed on your computer otherwise, you can get a JRE version 1.4 from Sun. To test if there is a Java environment just type the command java -version and you should see a message like:java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)
BLASTYou will need to install the Blast program from NCBI. You can find it here (Blast) and. Blast comes with complete installation instruction. Make sure that "blastall" and "formatdb" are in your path.
MFOLDYou will also need to get a license to use Mfold 3.1 and install this program. You can get all information from Michael Zuker Mfold page. Mfold produce several output lines during computation. They are not caught by OligoArray and will be displayed on your screen. This will not affect OligoArray but just add lot of undesired lines on the screen.
You can safely suppress them by commenting out all lines in the Mfold code before to compile it. Basically, you just have to add a c at the beginning of all lines starting with call system('echo or call system('cat in files dc.f, main.f and rna.f. They are in the src directory included in your Mfold package.
Please register to access to the download page. Sorry for the inconvenience, but registration is the only way for me to keep trace of OligoArray users and be able to send you a bug fix or a new release. You will get a package containing OligoArray 2.0 and some test files.
To extract the files, type:You should get a new new directory titled OligoArray2 and containing the following files :gzip -d OligoArray2.tar.gz
tar -xvf OligoArray2.tarCopy mfold-basic2 in the directory containing all other mfold binaries and make sure that it is in your path otherwise OligoArray2.0 won't find it.mfold-basic2*
Here is a way to test OligoArray 2.0 to make sure it works properly on your system. It take 50 minutes to run that test on a PC (Xeon 1.5 GHz, Linux RedHat). Follow all the commands described below:[jmrouill@berry OligoArray2]$ mkdir BlastDbIf OligoArray 2.0 works properly on your system, the three last commands (diff) should not produce any output.
[jmrouill@berry OligoArray2]$ cd BlastDb/
[jmrouill@berry BlastDb]$ ln -s ../yeast_orf.fas
[jmrouill@berry BlastDb]$ formatdb -i yeast_orf.fas -o T -p F
[jmrouill@berry BlastDb]$ cat formatdb.log
========================[ Apr 29, 2003 5:13 PM ]========================
Version 2.2.1 [Jul-12-2001]
Started database file "yeast_orf.fas"
Formatted 6343 sequences
[jmrouill@berry BlastDb]$ cd ..
[jmrouill@berry OligoArray2]$ java -Xmx512m -jar OligoArray2.jar -i chr1.fas -d BlastDb/yeast_orf.fas -o oligo.txt -n 2 -l 45 -L 47 -D 1500 -t 82 -T 88 -s 65 -x 65 -p 35 -P 50 -m "GGGGG;CCCCC;TTTTT;AAAAA"
*** OligoArray 2.0.1 ***
OligoArray 2.0.1 will start to process sequences from the file test-input.fas using the following parameters :
Blast database: 'BlastDb/yeast_orf.fas'
Oligo data will be saved in: 'oligo.txt'
Sequence without oligo will be saved in: 'rejected.fas'
The log file will be: 'OligoArray.log'
Maximum number of oligo to design per input sequence: '2'
Size range: '45' to '47'
Maximum distance between the 5' end of the oligo and the 3' end of the input sequence: '1500'
Minimum distance between the 5' ends of two adjacent oligos: '69'
Tm range: '82' to '88'
GC range: '35.0' to '50.0'
Threshold to reject secondary structures: '65.0'
Threshold to start to consider cross-hybridizations: '65'
Sequence to avoid in the oligo: 'GGGGG;CCCCC;TTTTT;AAAAA'
Number of sequence to run in parallel: '1'
Check if BlastDb/yeast_orf.fas is a valid Blast database
Database: BlastDb/yeast_orf.fas is a valid Blast database
Start Blast parameters initialization (It may take a while depending the value entered for the -D option)
Blast parameters initialized
Temporary directory created
*** Screen output deleted ***
No more sequence to dispatch
OligoArray has successfully processed all sequences
[jmrouill@berry OligoArray2]$ diff oligo.txt oligo.txt.ref
[jmrouill@berry OligoArray2]$ diff OligoArray.log OligoArray.log.ref
[jmrouill@berry OligoArray2]$ diff rejected.fas rejected.fas.ref
Format a local Blast Database
Before to use OligoArray, you have to create a Blast database. This database should contain all sequences against which you want to check the oligo specificity. For oligo designed for gene expression experiments, this database should contain only transcribed sequence for the organism you are working on. The blast database name SHOULD NOT contains any characters like a space, ' or ".
The first step is to create a Fasta file containing all these sequences. Fasta format is one comment line preceded by a > (look at the yeast_orf.fas file for an example of Fasta format). The sequence will appear on the next lines. I strongly suggest you to use simple comment lines containing only one single identifier. These identifier should be the same in the input file.
Here are some examples:
>gi|30089998|ref|NM_178042.1| Homo sapiens BAF53 (BAF53A), transcript variant 3, mRNA should be replaced by >NM_178042.1
>gi|30089965|ref|NM_145057.2| Homo sapiens CDC42 effector protein (Rho GTPase binding) 5 (CDC42EP5), mRNAshould be replaced by >NM_145057.2
>gi|30089961|ref|NM_003607.2| Homo sapiens CDC42 binding protein kinase alpha (DMPK-like) (CDC42BPA), transcript variant B, mRNA should be replaced by >NM_003607.2
If you need a tool to do that, you can try my CleanGenbankFastaComment script. Here is the bytecode (CleanGenbankFastaComment.class) ready to use. Download it and run java CleanGenbankFastaComment from the prompt to get some help on how to use it. Make sure that you always have the same number of fields in the input file. If you want to see the code or adapt it to your need, it is here (CleanGenbankFastaComment.java). It is distributed under GNU GPL license.
To format a blast database from the yeast_orf.fas demo file included in the OligoArray2.0 package, type :Do not forget to have a look to the formatdb.log file to make sure that everything is OK. Other versions than formatdb 2.2.1 may require different options.formatdb -i yeast_orf.fas -p F -o T