Croning et al. BMC Genomics 2010, 11:74 http://www.biomedcentral.com/1471-2164/11/74 Probe Name Dusp6_5prime_probe SAP102_5prime_PDZ3_probe Dusp6_3prime_probe Actb_probe SAP102_3prime_probe NR2B_probe SAP102_5prime_probe PSD-95_exon_9_probe Average ± standard error Mouse Genomic Target Dusp6 (5’) Dlg3 (5’) Dusp6 (3’) Actb Dlg3 (3’) Grin2b Dlg3 Dlg4 (exon 9) Length (bases) 946 969 1004 881 886 567 784 296 791.6 ± 85.9 Table 1 Calibration of automated design pipeline with 8 manually-designed and experimentally-validated Southern blot probes. Page 3 of 7 Score ratio (self/ second hit) Second hit identity (%) Second hit query coverage (%) Repetitive & low- complexity DNA (%) 30.1 27.2 29.4 22.8 22.2 11.1 9.89 3.3 19.5 ± 3.6 71 72 61 91 77 81 68 76 74.6 ± 3.2 8 8 13 6 8 14 29 54 17.5 ± 5.8 3.2 2.7 4.5 6.7 19.4 9.5 81.7 nd 18.2 ± 10.8 Shown are the mouse genomic target and length of each of the probes, together with uniqueness and repetitive DNA content measures produced by evaluating the probes in the automated design pipeline. These are the score ratio, which is calculated as the ratio of the score of the on-target hit of the probe to the genomic locus of interest, and the highest-scoring off-target second best hit. The percentage repetitive and low-complexity DNA content (as estimated by RepeatMasker and DUST) is shown for each of the probes. Finally, the percentage identity and query coverage are given for the second hit used to calculate the score ratio. Candidate probes reaching these criteria that were com- pletely overlapped by a longer and better-scoring probe are considered redundant and removed from the passing set. With the number of genome searches to be carried out potentially taking several hours for each Southern blot probe design, we thought that employing a single program and computer to complete the whole task was unlikely to achieve a reliable and timely solution. Instead we decided to use a database to store and retrieve the design information for each probe, and subsequently to hold the results of the many genome searches carried out for candidate probes. Multiple processors and cores as available from a compute cluster are employed to perform the genome searching, reducing the real time taken to test the probe designs in silico. When all the searches are complete the whole set of genome-search results are analyzed to find the best probe candidates. A MySQL database (12 tables) was designed for this purpose together with a set of Perl data objects and SQL adaptor classes to allow programs to write and retrieve from the database. These follow the Ensembl API and schema design where one creates a set of classes representing the core objects in the system, in this case probe designs, candidate probe sequences belonging to a design to be tested, and their matches to the target genome, partnered by a set of complementary adaptor classes that hold the cognate SQL necessary for storing and retrieving these from the database. Changes to the database schema can the then be made without impact on the object classes [11]. We then decomposed the task into three principal steps: 1) create_probe_search takes the user-specified chro- mosomal coordinates for the design and generates many candidate probes at the granularity gov- erned by the window tiling parameters, storing the design specification and the candidate probe sequences in the database. Use is made of the Ensembl API to extract the DNA sequence (or Slice) from the genome assembly covering the probe design window, then subsequently to extract sub-sequences to generate each candidate probe sequence. These sequences are grouped into batches (or jobs) for efficient searching with Exonerate in step 2. 2) run_probe_search takes the set of sequences spe- cified by a particular job, searches them against the target genome, and parses the Exonerate out- put results, storing the hits, including their scores, location, and masked sequence content (as ascer- tained from the soft-masking) in the database. run_probe_search is not launched interactively but is initiated by submit_probe_search that uti- lizes the LSF job scheduling system to run many separate instances of run_probe_search in parallel to complete the genome searches required for a probe design. 3) analyse_probe_search is the final step in the probe design process. It checks that all the genome- searching jobs for the probe design have been completed successfully, then fetches the alignment results from the database, applying the specified cut-off criteria for score-ratio and repetitive/low- complexity DNA content. These are used to sepa- rate and rank the sequences into unique, passed