<title>Background</title> <p>Comparative genome analysis is currently the most widely used strategy to detect and annotate noncoding RNAs (ncRNAs) [##REF##17506659##1##,##REF##17171697##2##]. In the past few years a series of different algorithms have been developed that predict functional ncRNAs on the basis of conserved secondary structure [##REF##11801179##3##, ####REF##15304649##4##, ##REF##15313604##5##, ##REF##15665081##6##, ##REF##16628248##7##, ##REF##16357030##8##, ##REF##16566836##9##, ##REF##16751343##10####16751343##10##]. Some of these methods have been used to predict novel ncRNAs on a genome wide scale [##REF##16628248##7##,##REF##16273071##11##, ####REF##16204130##12##, ##REF##16425273##13##, ##REF##17996037##14####17996037##14##]. In combination with experimental verification (microarray, RT-PCR, Northern blot) these methods could successfully uncover many examples of novel ncRNAs [##REF##16168080##15##, ####REF##17645787##16##, ##REF##17971083##17##, ##REF##18096748##18##, ##REF##18043761##19##, ##REF##17568003##20####17568003##20##]. However, in particular in large vertebrate genomes the signal-to-noise ratio of true predictions and false positives is thought to be relatively low [##REF##17568003##20##]. In a recent paper, Babak and colleagues demonstrated that comparative ncRNA gene finders are strongly biased by the genomic dinucleotide content leading to an excess of false predictions [##REF##17263882##21##]. Especially methods that are based on a thermodynamic folding model are sensitive to this effect: In the so-called nearest neighbour model, energies are not assigned to single base-pairs but rather to neighbouring base-pairs that stack on each other. As a consequence, the folding stability of genomic sequences does not only depend on the monunucleotide content but also the dinucleotide content.</p> <p>To assess the significance of predicted structures, e.g. to estimate the false discovery rate in a genomic screen for ncRNAs, one should therefore compare the genomic predictions to the results obtained on randomized data with the same dinucleotide content. In the case of single sequences, there are well known and widely used algorithms to generate dinucleotide controlled random sequences either by shuffling or first order Markov chain simulation [##REF##3870875##22##,##REF##15840812##23##]. However, there is currently no algorithm to randomize multiple sequence alignments preserving the dinucleotide content. Babak and colleagues [##REF##17263882##21##] added the conservation of dinucleotides as an additional constraint to the commonly used (mononucleotide) shuffling algorithm shuffle-aln.pl [##REF##15313604##5##] and applied it to pairwise alignments. Their approach corresponds to a heuristic used in reference 24, that is very inefficient as only a small subspace of the whole permutation space is covered. The heuristic exchanges only positions that have the same neighbours left and right. For the short sequence ACAGCCAA for example not a single permutation can be found that way. However, there are 11 such permutations according to the Altschul &amp; Erikson algorithm [##REF##3870875##22##]. But even a more efficient shuffling algorithm will soon run into difficulties on multiple alignments. Unless two neighbouring columns are 100% conserved, there are several different dinucleotide pairs in these columns. It is therefore impossible to exactly preserve the dinucleotide content as in the single sequence case.</p> <p>In this paper, we address the problem in a different way. In analogy to a first order Markov model for single sequences, we simulate alignments of a given dinucleotide content. We present a substitution model that captures the neighbour dependencies and all other relevant alignment features. We describe a time efficient way to estimate a tree under this model that we use as a guide to simulate alignments of the desired properties. This new control strategy is tested on genomic alignments and the effect on thermodynamic RNA structure predictions is studied.</p>
<title>Methods</title> <title>Treating gaps</title> <p>Gapped positions are treated as missing data. When counting the dinucleotide content, dinucleotides including a gap (N-, -N, --) are ignored. During simulation, gap positions are filled with nucleotides and gaps are re-introduced afterwards. Note that this way, if two nucleotides N<sub>1 </sub>and N<sub>2 </sub>are separated by a gap (e.g. N<sub>1</sub>----N<sub>2</sub>) the dinucleotide N<sub>1</sub>N<sub>2 </sub>is not in equilibrium. Depending on how gaps are treated in the downstream analysis this might be or might not be of concern. In any case, since not every gap position but only every gap <italic>opened </italic>is affected, this (potential) error is generally very small for reasonable alignments. So we did not consider correcting for this effect which would require reconstructing the gap history and setting lineage specific neighbourhood systems.</p> <p>For calculating the site-specific rates, we also treat gaps as missing data and calculate ⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ in eq. 10 only over non-gap positions. After the simulation, the whole column has on average ⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ estimated from the non-gap positions that does not change when originally gapped positions are masked again. For calculating the observed differences <italic>p </italic>between two sequences we set positions that includes gaps to the average ⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ at this site.</p> <title>Distances above the level of saturation</title> <p>When calculating genetic distances between two sequences the problem may occur that the observed number of differences is higher than the level of saturation. We found that this problem becomes severe when considering site-specific rates that generally lead to much lower levels of saturation (cf. Fig. ##FIG##2##3B##). We use a simple trick to overcome this limitation. We add additional sites during the simulation with site-specific rates that correspond to the average of the whole alignment (i.e. ⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ is set to 1-MPI in eq. 11 for all these additional sites). They act as "buffer sites" that reduces the number of mutation events that repeatedly hit the same sites of high rate leading to many double substitutions. As a consequence, the overall level of observed differences is higher and we do not run into problems building the distance matrix. In the end, the sites are removed again and since the relative rate ratios between the sites remained unchanged, we get the desired site-specific mutation patterns.</p> <title>Limiting base composition variation</title> <p>During the testing of the influence of the randomization procedure on RNA folding, we made an interesting observation. As expected, the variance of the folding energies of randomized data is higher with simulation than with shuffling. However, we also observed that there is difference in the mean. Simulation leads to slightly higher (i.e. less stable) folding energies than shuffling. We observed this behaviour not only on multiple alignments but also on single sequences using shuffling vs. first order Markov simulation. We suspect that extreme deviations in the base composition that can occur in simulated data do not symmetrically lead to the same deviations of the folding energies but preferentially impair the formation of RNA structures. To compensate for this effect, we have introduced an option in our software that only outputs simulated alignments, that are within a specific range of mononucleotide frequencies. We can thus limit our simulations to mononucleotide frequencies that are almost exactly as in the original data. As a distance measure we use the Euclidean distance  with <italic>π</italic><sub><italic>α </italic></sub>the desired frequency of nucleotide <italic>α </italic>in the original alignment, and  the observed frequency in the simulation. For all the data shown in Figs. ##FIG##7##8##, ##FIG##8##9## and Tab. ##TAB##0##1## we used simulations with this cutoff set to 0.05.</p> <title>Software</title> <p>For the simulations in Fig. ##FIG##0##1## we used seq-gen version 1.3.2 [##UREF##6##52##,##REF##9183526##53##]. Monunucleotide shuffling was carried out using shuffle-aln.pl with option "--mode conservative2". Together with alifoldz.pl it is available online [##UREF##7##54##]. For the tests in Figs. ##FIG##0##1## and ##FIG##7##8## we used RNAalifold from the Vienna RNA package [##UREF##8##55##] version 1.6.1. with options "-nc 0 -cv 0") and RNAz [##UREF##9##56##] version 1.0 with standard parameters. For implementation of our software we used a series of third party C-code that is available as open source: levmar [##UREF##10##57##] by Manolis Lourakis for least squares fitting, BIONJ [##REF##9254330##41##,##UREF##11##58##] by Olivier Gascuel, PHYML [##UREF##12##59##,##REF##14530136##60##] by Stéphane Guindon and Olivier Gascuel for maximum likelihood estimation of the transition/transversion rate, Vienna RNA package [##UREF##8##55##] by Ivo L. Hofacker and others for consensus folding in SISSIz.</p> <title>Sequence data</title> <p>For the benchmark we used sequences from the following eight Rfam families: RF00001 (5S rRNA), RF00004 (U2 snRNA), RF00005 (tRNA), RF00008 (Hammerhead ribozyme), RF00012 (U3 snRNA), RF00020 (U5 snRNA), RF00029 (Group II intron), RF00104 (mir-10 precursor). From these sequences, a set of non-redundant alignments between 3 and 6 sequences per alignment and mean pairwise identity between appr. 50% and 100% was created as described [##REF##15313604##5##,##REF##15665081##6##]. The families were chosen because they represent different structural families and contain enough sequences to create sets of reasonable sample size.</p> <p>Genomic alignments were extracted from Multiz 17-way vertebrate alignments available at the UCSC genome browser [##UREF##13##61##,##UREF##14##62##]. For creating the set of 1000 alignments used for Figs. ##FIG##5##6## and ##FIG##7##8##, we used the rnazWindow.pl script from the RNAz software package [##UREF##9##56##,##REF##17993695##63##] to get typical alignment blocks as used previously in genomic ncRNA screens [##REF##17568003##20##] or [##REF##17996037##14##]. For the benchmark we selected for each positive example of the structural RNA set a negative example from the genomic alignments. Subsets of sequences were chosen to get the same number of sequences and the same mean pairwise identity (± 0.05) as the structural RNA counterpart. Also the alignment length was adjusted accordingly (limited to a maximum length of 150).</p>
<title>Results</title> <title>Requirements for an accurate null model</title> <p>An optimal null model preserves all the features of the original data with the exception of the signal under question that needs to be removed efficiently. In our case, the data are multiple alignments of homologous sequences and the signal of interest is an evolved RNA secondary structure. Correlations arising from base-pairing patterns need to be removed. Currently, alignments are usually randomized by shuffling the alignment columns (see ref. 5 for a discussion of this method). Although the shuffling approach has its limitations and considering dinucleotides seems difficult, it is an appealing approach because it is relatively simple, fast, and extremely conservative. Changing the order of the columns does not change the mutational patterns within the columns and thus the underlying phylogenetic tree is exactly preserved.</p> <p>In this paper we attempt to simulate new alignments from scratch. Even the most sophisticated model cannot capture all evolutionary processes and therefore a simulation approach will inevitably change the original data more than shuffling does. So much care has to be taken to preserve all the relevant characteristics of the data. To qualitatively assess the most important parameters that need to be considered in our model, we performed a series of simulation experiments. Using a simple tree with four taxa we simulated alignments under the HKY evolutionary model [##REF##3934395##25##]. We systematically varied model and tree parameters to study how they affect thermodynamic RNA consensus structure predictions in the alignment. We used RNAalifold [##REF##12079347##26##] to predict consensus secondary structures which is the basis of the AlifoldZ [##REF##15313604##5##] and RNAz [##REF##15665081##6##] gene finders.</p> <p>Not surprisingly, base composition is one of the parameters affecting the predicted folding energies strongest (Fig. ##FIG##0##1A##). High G+C content leads to more stable RNA predictions, while high A+T content gives less stable predictions. As mentioned in the introduction and in fact the main motivation of this paper, also dinucleotide content affects folding energies. We used our simulation algorithm that is described below to simulate alignments of the same mononucleotide content but varying dinucleotide content. Fig. ##FIG##0##1B## shows for example that a three times enriched ApT content lead to more stable predictions. The excess of some other dinucleotides like for example GpT can cause the opposite effect leading to less stable predictions.</p> <p>Another major parameter that needs to be controlled is the sequence diversity of the alignment. Variation of the branch lengths of the tree gives alignments with different sequence diversity which we usually measure as the mean pairwise sequence identity (MPI, also sometimes refered to as average pairwise sequence identity APSI). High diversity (i.e. low MPI) makes it difficult to predict a consensus structure if there is no selection pressure for it. On the other hand, almost perfectly conserved sequences fold readily in some random structure even if there is no natural RNA structure present. Therefore we observe a strong dependency on the MPI (Fig. ##FIG##0##1C##).</p> <p>One well known characteristic of natural mutation processes are the different rates for transitions and transversions [##UREF##0##27##]. Interestingly, this also affects the consensus structure predictions. A model with equal transition/transversion rates (parameter <italic>κ </italic>= 1 in the HKY model) gives less stable predictions than a model with more realistic rates (e.g <italic>κ </italic>= 4, Fig. ##FIG##0##1D##). This parameter affects the type of column patterns observed in the simulated alignments which in turn affects how well they can form consensus base pairs.</p> <p>Natural mutation processes are not homogeneous across all sites, in particular in functional genomic regions. It was observed previously that mutation patterns within an alignment can affect structure predictions [##REF##15313604##5##]. For example, an alignment containing a 100% conserved block with low mutation rate that is flanked by highly divergent regions of high mutation rate can have different folding energies compared to an alignment with homogeneous rates but the same overall MPI (Fig. ##FIG##0##1E##). The same is true for patterns of insertions and deletions which was also already discussed in reference 5 and which we do not show here explicitly again.</p> <p>We also tested the effect of different tree topologies, but did not find a significant influence of this parameter at least in our four taxa example.</p> <p>Taken together, an accurate randomization procedure needs to generate alignments that preserve (i) mono- and dinucleotide content, (ii) mean pairwise sequence identity, (iii) transition/transversion rate ratio (iv) site-specific mutation rates, and (v) gap patterns.</p> <p>In the next section we describe a model that is capable of simulating alignments under these constraints.</p> <title>Algorithm</title> <title>Model</title> <p>Sequence evolution is usually described by a time-continuous Markov process [##UREF##0##27##,##UREF##1##28##]. The most commonly used models assume that all sites of a sequence evolve independently from each other rendering it impossible to model dinucleotide dependencies between neighbouring pairs. Various evolutionary models have been proposed in the past years to overcome this limitation [##UREF##2##29##, ####REF##11070050##30##, ##REF##11319261##31##, ##REF##12935330##32##, ##REF##12885968##33##, ##REF##14660683##34##, ##REF##15262802##35##, ##UREF##3##36####3##36##]. We make use of the recently introduced framework called SISSI (SImulating Site-Specific Interactions). SISSI allows to define site dependencies of arbitrary complexity in the form of a "neighbourhood system" that also may include overlapping dependencies [##REF##16332711##37##]. Given the requirements of our specific problem, we extended and simplified several aspects of SISSI as necessary.</p> <p>Following the general framework of SISSI, we introduce a site-specific rate matrix <italic>Q</italic><sub><italic>k </italic></sub>for every site <italic>k </italic>= 1, ..., <italic>l </italic>in a sequence <bold>x </bold>= (x
<sub>1</sub>, ..., x
<sub>l</sub>). This matrix defines the substitution process at site <italic>k</italic>, where the substitution of a given nucleotide <italic>x</italic><sub><italic>k </italic></sub>∈  = {A,C,G,U} by another one depends on the states <italic>x</italic><sub><italic>k</italic>-1</sub>, <italic>x</italic><sub><italic>k</italic></sub>, <italic>x</italic><sub><italic>k</italic>+1 </sub>(Fig. ##FIG##1##2##).</p> <p>Thus, the instantaneous rate matrix <italic>Q</italic><sub><italic>k </italic></sub>has the dimension ||<sup>3 </sup>× ||<sup>3 </sup>= 64 × 64. The stationary distribution of <italic>Q</italic><sub><italic>k </italic></sub>determines the equilibrium dinucleotide content of our system (see the next section for how the required trinucleotide frequencies of <italic>Q</italic><sub><italic>k </italic></sub>are calculated from the dinucleotide frequencies).</p> <p>To be able to control the transition/transversion rate ratio and the site-specific mutation rates, we have to add two additional parameters. Let <bold>s</bold><sub><italic>k </italic></sub>= (<italic>x</italic><sub><italic>k</italic>-1</sub>, <italic>x</italic><sub><italic>k</italic></sub>, <italic>x</italic><sub><italic>k</italic>+1</sub>) represent the current triplet of sequence <bold>x </bold>and <bold>y </bold>= (<italic>y</italic><sub>1</sub>, <italic>y</italic><sub>2</sub>, <italic>y</italic><sub>3</sub>) another triplet in <sup>3</sup>. First, we introduce a general parameter <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>) ≥ 0 to incorporate the additional mechanistic rates. Second, we introduce a site-specific scaling factor <italic>f</italic><sub><italic>k </italic></sub>with <italic>k </italic>= 1, ..., <italic>l</italic>, such that:</p> <p></p> <p>We impose the usual restriction, that only one substitution per unit time is admissible [##REF##7529616##38##,##REF##7796269##39##]. Moreover, <italic>Q</italic><sub><italic>k </italic></sub>only allows for substitutions at site <italic>k</italic>. The diagonal elements of our instantaneous rate matrix <italic>Q</italic><sub><italic>k </italic></sub>are defined by the mathematical requirement that the sum of each row is zero.</p> <p>The entries of <italic>Q</italic><sub><italic>k </italic></sub>are thus given by</p> <p></p> <p>where <italic>π</italic><sub><italic>k</italic></sub>(<bold>y</bold>) is the stationary frequency of <bold>y </bold>and the Hamming distance <italic>H</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>) counts the number of differences between the sites of the triplets <bold>s</bold><sub><italic>k</italic></sub>and <bold>y</bold>.</p> <p>In principle, we can choose any rate for the parameter <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>). However, based on the requirement that we want to use the counted dinucleotide content as the stationary distribution, we choose <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>) so that the model becomes reversible. Any parameter of the commonly used independent nucleotide substitution models, like HKY [##REF##3934395##25##] or the general time-reversible model GTR [##UREF##4##40##] can be chosen for <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>). For our application, we use a transition/transversion rate ratio and set <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>)= <italic>κ </italic>for transitions and <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>) = 1 for transversions.</p> <p>The restriction that a substitution is only possible at site <italic>k </italic>leads to sparse rate matrices. <italic>Q</italic><sub><italic>k </italic></sub>has only ||<sup>4 </sup>non-zero entries. Hence, we can write <italic>Q</italic><sub><italic>k </italic></sub>in the form of 16 submatrices, which describe the admissible substitutions for site <italic>k </italic>depending on the left <italic>y</italic><sub>1 </sub>and right <italic>y</italic><sub>3 </sub>neighbours,</p> <p></p> <p>Finally, we scale <italic>Q</italic><sub><italic>k </italic></sub>such that the number of substitutions <italic>d</italic><sub><italic>k </italic></sub>equals 1:</p> <p></p> <p>and thus the total instantaneous substitution rate for a sequence <bold>x </bold>can be written as the sum over each rate <italic>Q</italic><sub><italic>k</italic></sub>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>s</bold><sub><italic>k</italic></sub>) multiplied with the site-specific scaling factor <italic>f</italic><sub><italic>k</italic></sub>, with <italic>k </italic>= 1, ..., <italic>l </italic>(Fig. ##FIG##1##2##),</p> <p></p> <p>Without dependencies on the neighbours, <italic>Q</italic><sub><italic>k </italic></sub>is of dimension 4 × 4 and the model reduces essentially to a HKY model with a specific rate for each site. We use this mononucleotide variant later in this paper for testing and comparison to the dinucleotide model.</p> <title>Simulation</title> <p>For the simulation process, we essentially used the same algorithm described previously [##REF##16332711##37##] with some modifications. During the simulation process, we pick a site <italic>k </italic>with the relative mutability</p> <p></p> <p>and for the chosen site <italic>k</italic>, the nucleotide <italic>x</italic><sub><italic>k </italic></sub>will replaced by a new nucleotide <italic>y</italic><sub>2 </sub>∈  from the corresponding triplet <bold>y </bold>with probability:</p> <p></p> <p>In the most general SISSI framework <italic>Q</italic><sub><italic>k </italic></sub>needs to be updated for all <italic>k </italic>sites every time one nucleotide in <bold>x </bold>is substituted. However, in our special case we can use the same instantaneous rate matrix <italic>Q</italic><sub><italic>k </italic></sub>for each site with special conditions for <italic>r</italic>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>y</bold>). As a consequence, we can fix <italic>q</italic>(<bold>x</bold>) and do not need to sum over each rate of the site, which improves the running time of the algorithm.</p> <title>Parameter estimation</title> <p>The idea of our randomization procedure is to estimate a tree under the model described in the previous section and simulate sequences along this tree. Ideally, all parameters are estimated simultaneously within a maximum likelihood framework. One problem is the high number of parameters since we want to estimate a specific rate for each site. A more fundamental issue is, however, that our model includes overlapping dependencies which breaks the independence assumption necessary for basic maximum likelihood estimation. Other possible techniques like Markov chain Monte Carlo in a Bayesian framework are not a viable alternative either. Speed is a critical issue as the algorithm is meant to be applied to data on a genome wide scale.</p> <p>Facing these difficulties, we have developed heuristic approximations to estimate the parameters and use a distance based approach to estimate the tree. The method is fast and yet surprisingly accurate for our application.</p> <title>Equilibrium frequencies</title> <p>The stationary frequencies of our model are set in a way that in equilibrium we obtain a dinucleotide frequency that is the same as the dinucleotide content of the alignment to be randomized. To this end, we first count the dinucleotide frequencies as an average of all sequences in the original alignment (see Methods on how gaps are treated). Then, we calculate the corresponding trinucleotide frequencies needed for <italic>Q</italic><sub><italic>k </italic></sub>as a function of the single and dinucleotide frequencies using an approximation based on simple conditional probabilities [##REF##11070050##30##,##REF##12935330##32##]:</p> <p></p> <p>where <italic>π</italic>(<italic>αβγ</italic>) are the trinucleotide frequencies, <italic>π</italic>(<italic>αβ</italic>) and <italic>π</italic>(<italic>βγ</italic>) the counted dinucleotide frequencies and <italic>π</italic>(<italic>β</italic>) = Σ<sub><italic>α </italic></sub><italic>π</italic>(<italic>αβ</italic>) = Σ<sub><italic>α </italic></sub><italic>π</italic>(<italic>βα</italic>) with <italic>α</italic>, <italic>β</italic>, <italic>γ </italic>∈ {A, C, G, U}.</p> <p>Fig. ##FIG##2##3A## shows an example of the dinucleotide frequency distribution of 1000 simulated alignments. We counted the dinucleotide frequencies of an alignment of 7 5.8 rRNA sequences and set the trinucleotide parameters of our model accordingly. On average, we get the same dinucleotide frequencies in the simulated alignments as in the original one.</p> <title>Distances and tree construction</title> <p>To build a distance based tree, we first have to estimate the number of substitutions that have taken place between two sequences. In other words, we have to estimate the genetic or evolutionary distance <italic>d </italic>from the Hamming distances <italic>p </italic>under our model. Both distances are different because back mutations have taken place that are not directly visible. To estimate the relationship between <italic>d </italic>and <italic>p</italic>, we simulate sequence pairs separated by different branch lengths <italic>d </italic>and calculate the corresponding Hamming distances <italic>p </italic>(Fig. ##FIG##2##3B##). We fit an exponential function to this curve:</p> <p></p> <p>Using this function, all pairwise distances are calculated for the sequences in the original alignment. From this distance matrix a tree is constructed using the BIONJ algorithm [##REF##9254330##41##]. BIONJ is a variant of the well known neighbour joining algorithm and currently one of the most accurate algorithms for distance based tree building.</p> <p>Given that the distances and the tree are accurately estimated, we observe on average the same mean pairwise identity in the simulated alignment as in the original one. Fig. ##FIG##2##3C## shows the distribution of MPIs of 1000 simulations of our example rRNA alignment. The average MPI of the simulations is exactly the same as the MPI 0.73 of the original alignment.</p> <title>Site-specific rates</title> <p>Setting different mutation rates at different sites gives us the possibility to preserve natural mutation patterns of the original alignment. The problem of finding accurate site-specific rates is illustrated in Fig. ##FIG##2##3D##. For each site in the alignment, the MPI of this site is plotted against the average MPI observed in the simulated alignments on the same site. If we consider equal rates for all sites, each site will have the same average MPI which is of course equal to the overall MPI of 0.73 of the whole alignment. Ideally, the average MPI for each simulated site is the same as the original MPI at this site. In this case, the points in the plot are on a diagonal indicating that we have found accurate estimates for the rates.</p> <p>Simple estimates for site-specific rates in combination with distance based trees have been described previously [##REF##11116330##42##]. The method includes fits to a gamma distribution which requires data of at least 1000 nucleotides and 30 sequences to get reasonable results. Here we use a different approach that also gives good results for smaller alignments.</p> <p>The substitution rate at a site is of course related to the observed sequence diversity at this site. If a site is highly conserved the rate is low, whereas high sequence diversity indicates a high mutation rate. So in a first step, we calculate the average number of pairwise differences ⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ for each site <italic>k </italic>in the alignment with <italic>n </italic>sequences:</p> <p></p> <p>⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ are observed differences ignoring multiple substitutions. If we naively choose our rates proportional to ⟨<italic>p</italic><sub><italic>k</italic></sub>⟩ we would underestimate high rates while overestimating low rates. We therefore use the relationship in equation 9 to correct for this effect and calculate estimates  for the rates at site <italic>k </italic>as follows:</p> <p></p> <p>It must be pointed out that the site-specific rates change the relationship between genetic distance and observed differences (Fig. ##FIG##2##3B##). For correcting the site-specific rates we use the estimates for  and  from our model <italic>without </italic>site-specific rates. So this is only an approximation and one could think about iteratively refining the estimates. However, we found that this approach already yields accurate rates within one step as can be seen in Fig. ##FIG##2##3D##. Using the model with site-specific rates, the simulated alignments have on average almost exactly the same site-wise MPI as the original one.</p> <p>The reader will notice that the first three points deviate from the diagonal. This illustrates a limitation of our method. With our simulation procedure we can on average only reach the level of saturation even if we use very high rates. It is possible, however, that the original data contains sites below the level of saturation. For example in a four way alignment a column can be ACGT, i.e. MPI = 0. However, we cannot simulate on average columns with MPI = 0, since the MPI is bounded below by zero and our simulations will always contain columns with MPI &gt; 0. In practice this does not seem to cause any obvious problems in particular when we have many sequences where it is unlikely to see columns below saturation.</p> <title>Gaps</title> <p>Gaps have been ignored completely so far. There are evolutionary models including deletions and insertions [##REF##1920447##43##, ####REF##1556741##44##, ##REF##12611804##45##, ##REF##14694074##46##, ##REF##16085574##47####16085574##47##] and, in principle, it would be possible to combine the insertion-deletion dynamics with our model. However, this does not appear practical in our case. Existing algorithms for joint estimation of phylogenies and alignments are not only very time-consuming [##REF##16085574##47##], it also seems difficult to estimate reasonable indel model parameters on relatively short alignment blocks which hold only little information. Moreover, alignment programs produce gap patterns that do not necessarily reflect phylogenetically reasonable insertion/deletion events and thus cannot always be captured by an idealized model that is motivated by evolutionary processes and ignores algorithmic idiosyncrasies of alignment programs.</p> <p>So we follow here a very pragmatic strategy that has also been used previously [##REF##15313604##5##]: We keep exactly the same gap pattern in our randomized alignments as in the original alignment. To this end, we simply treat gaps as missing data and simulate nucleotide characters for the gapped positions. This is done in a way that the overall characteristics are not changed when they are replaced with gaps again at the end (see Methods for details).</p> <title>Transition/transversion rate ratio</title> <p>The transition/transversion rate ratio <italic>κ </italic>is a parameter in our model that cannot be simply counted as in the case of the dinucleotide frequencies, or empirically determined like the branch lengths. Given that the influence of this parameter is not that critical as for example the branch length or base composition (see Fig. ##FIG##0##1##), one possibility might be to use a fixed transition/transversion ratio if a reasonable average value is known for the genome at hand. Alternatively, we found that a good estimate can be obtained by using maximum likelihood on an independent mononucleotide model. We used here the HKY model with -distributed rates which is closest to our dinucleotide model.</p> <title>Putting it together</title> <p>Fig. ##FIG##3##4## gives a short outline over the whole randomization procedure. We start by parametrization our model: we count the dinucleotides and calculate the corresponding stationary trinucleotide frequencies. A transition/transversion rate ratio for the alignment is estimated using maximum likelihood under a HKY+Γ model. Having set these parameters, we empirically estimate the relationship between substitutions and observed differences with equal rates for each site. This first estimate is used to calculate the site-specific rates, which are then used for the second estimation. In the next step, the pairwise distances between all sequences are calculated. For the calculation of the site-specific rates and the pairwise distances gap characters are treated in a special way as missing data (see Methods). From the distance matrix a tree is built using the BIONJ algorithm. An ancestral sequence is sampled from a first order Markov model parametrized according to the dinucleotide frequency in the original alignment. This is used as a starting sequence for the simulation that is guided by the tree. Finally, the gap pattern of the original alignment is introduced into the simulated one. Fig. ##FIG##4##5## shows our rRNA example and two randomized versions obtained by this procedure.</p> <title>Implementation</title> <p>We implemented our method in ANSI C in a program called SISSIz. The source code is available under the GNU Public Licence for download [##UREF##5##48##].</p> <p>Some words on running time: One might suspect that the randomization algorithm including two times the sampling procedure to estimate the parameters of equation 9 and the maximum likelihood estimation of the transition/transversion rate ratio is relatively slow. Indeed, it is much slower than for example randomization by shuffling, but still very fast. To build the model for our example of 7 rRNAs of 158 length takes 0.2 seconds on a modern Intel Core 2 Quad CPU at 2.4 GHz. To simulate 1000 alignments using this model takes another 0.6 seconds.</p> <title>Testing</title> <title>Randomizing vertebrate genomic alignments</title> <p>We tested our randomization method on vertebrate genomic alignments. In a setting similar to recent genomic screens in vertebrates [##REF##16273071##11##,##REF##17568003##20##], we extracted Multiz [##REF##15060014##49##] alignment blocks from human chromosome 1. We randomly selected 1000 alignment blocks between 70 and 120 nt in length and between 4 and 10 sequences without considering annotation information of any sort. These alignments are meant to represent an unbiased "genomic background" that may also contain functional elements like coding exons or structured RNAs depending on their frequency in the genome.</p> <p>The alignments were randomized using our new simulation procedure with both the dinucleotide and the mononucleotide model. In addition, we shuffled the alignments using shuffle-aln.pl. The global distribution of dinucleotides for the original and randomized data is shown in Fig. ##FIG##5##6##. As expected, the shuffling approach and the mononucleotide simulation give the same results. The dinucleotide distribution obtained by these methods, however, differs from the distribution in the native alignments. One can see for example the well known under-representation of CpGs in the native genomic data. Using our dinucleotide based model, we obtain simulated alignments which are statistically indistinguishable from the native data in terms of their average dinucleotide content.</p> <p>Also the observed sequence diversity of the simulated alignments closely follows the original data as shown in Fig. ##FIG##6##7##. 98.7% of the simulated alignments are within a range of ± 0.05 mean pairwise identity compared to the original alignments. It must be noted, that the distribution in Fig. ##FIG##6##7## has a mean of +0.007 which indicates a subtle bias of the simulations towards higher MPIs. We suspect that this is an indirect result of the way we estimate site-specific rates and related to the issue of sites below saturation discussed before. However, this deviation does not have any practical consequences since it represents a conservative bias in the context of RNA folding controls and, more importantly, seems to be too small to have any noticeable effect at all.</p> <title>Influence of randomization procedure on RNA predictions</title> <p>The main motivation of this paper is to provide dinucleotide based controls for comparative RNA gene predictions. Therefore, we ran RNAalifold and RNAz on the alignments to demonstrate how different randomization procedures affect the results. Fig. ##FIG##7##8A## shows the distribution of RNAalifold consensus MFEs on the genomic alignments and their different randomizations. One can see that the genomic alignments show the most stable structures. There is a clear difference between the native genomic alignments and the shuffled and mononucleotide simulated ones. However, the folding energies of the dinucleotide simulated alignments are much closer to the native data. This difference between the di- and mononucleotide simulations reflects the bias caused by the genomic dinucleotide content. The difference between the native and the dinucleotide controls indicates the existence of RNA signals in the genome or, alternatively, another as yet unidentified bias.</p> <p>Clearly, the differences shown here in these cumulative histograms might appear very subtle. The results for the RNAz predictions, however, show that such differences can strongly affect the statistics of RNA gene predictions (Fig. ##FIG##7##8B##). On this particular test set, RNAz predicts RNA signals in 4.3% of the native alignments. Using the conventional shuffling strategy or mononucleotide based simulation one would estimate a false positive rate of 0.8% or 0.7%, respectively. Using the more conservative dinucleotide based model the estimate would be 2.1%, i.e. three times higher. This is consistent with the results obtained by Babak <italic>et al</italic>. using their dinucleotide shuffling approach on pairwise alignments.</p> <title>Calculating z-scores to predict structural RNAs</title> <p>We can directly assess the significance of a predicted RNA by calculating a <italic>z</italic>-score. The folding energy of the native data <italic>m </italic>and the mean <italic>μ </italic>and standard deviation <italic>σ </italic>of randomized data is calculated. The significance of the native fold can then be expressed as <italic>z </italic>= (<italic>m </italic>- <italic>μ</italic>)/<italic>σ</italic>, i.e. the number of standard deviations from the mean. This score has been repeatedly used on single sequences applying mono- or dinucleotide shuffling or simulation using a zero or first order Markov model [##REF##15840812##23##,##REF##10572183##24##]. Using shuffled alignments as null model, this approach is implemented in the RNA gene finding program AlifoldZ [##REF##15313604##5##]. The same strategy can be used in combination with our new dinucleotide base randomization strategy without any further modifications (Fig. ##FIG##3##4##).</p> <p>To test the effectiveness of this approach, we conducted a benchmark similar to those used previously [##REF##15313604##5##,##REF##15665081##6##] for testing AlifoldZ and RNAz. We used multiple sequence alignments of eight different structural RNA families taken from the Rfam database [##REF##15608160##50##]. The alignments contained three to six sequences and had a mean pairwise identity between 50% and 100% (see Methods for details). For the tests of AlifoldZ and RNAz, shuffled alignments were used as negative controls. For obvious reasons, this is not possible here. So we used genomic alignments from random locations of the human genome (see Methods). Using the "genomic background" as negative controls in this test implies the assumption that the genome does not contain any structural RNAs at all, which is clearly not valid. However, if we assume true structural RNAs to be sparse in the genome this conservative assumption seems to be a sensible choice.</p> <p>We calculated <italic>z</italic>-scores with a sample size of 1000 randomizations for both sets of true structured RNAs and the genomic background using three different randomization methods: Shuffling (AlifoldZ), simulation using a mononucleotide model (SISSIz mono) and simulation using the dinucleotide model (SISSIz di). The results are summarized in Tab. ##TAB##0##1##.</p> <p>Using mononucleotide based randomization the <italic>z</italic>-scores of the genomic background are approximately half a standard deviation from zero (-0.44 and -0.58, for shuffling and mononucleotide simulation respectively). This shows the relatively strong "bias" of the genomic background that causes false positive predictions as shown in the previous section and in reference 21. Albeit the signal does not vanish completely, the dinucleotide based <italic>z</italic>-scores are much closer to zero (-0.15).</p> <p>The <italic>z</italic>-scores of the structural RNAs in this test set are on average well below -4 indicating a clear structural signal. Also here, we observe that mononucleotide simulated <italic>z</italic>-scores are lower than the dinucleotide simulated ones. In this case, a dinucleotide content that favors stable RNA structures is clearly not only a general background effect of the genomic base composition but a feature of structural RNAs. However, this signal is lost if the more conservative dinucleotide based null model is used.</p> <p>There is also a clear difference between the two monunucleotide randomization procedures: Shuffling leads to more significant <italic>z</italic>-scores than simulation. The main reason is the fact that simulation results in higher standard deviations than shuffling which in turn lead to more conservative <italic>z</italic>-scores.</p> <p>This shows that there are many effects that have to be taken into account. To assess the overall classification performance we generated receiver operating characteristic curves based on the three different <italic>z</italic>-scores, as well as the support vector machine score from RNAz (Fig. ##FIG##8##9##). In addition, we calculated the sensitivity at two different levels of specificity (0.01 and 0.05) for all four approaches (Tab. ##TAB##0##1##).</p> <p>The ROC curve shows that all the methods perform very well on this test set. The curve further suggests that there is not much difference between them. However, differences become evident when looking at the region of high specificity, the only relevant region for practical applications (see inset Fig. ##FIG##8##9##). Here, the dinucleotide based approach generally outperforms the mononucleotide based methods. The improvement is small but clearly noticeable: At a false positive rate of 0.01%, dinucleotide based simulation shows the highest sensitivity for 7 of the 8 RNA classes. For example, in the tRNA group the sensitivity is 13% higher than AlifoldZ and RNAz. The latter performs significantly worse than all other methods at this level. At a false positive rate of 0.05%, dinucleotide simulation still performs slightly better than mononucleotide shuffling/simulation but is on the same level as RNAz that performs significantly better here.</p>
<title>Discussion</title> <p>Any experiment is only as good as its controls. What is true for experimental biology clearly also holds in the field of computational biology. The value of even the most sophisticated algorithm remains unclear if the significance of the results cannot be assessed properly. In this paper we addressed the problem of finding an adequate control strategy for comparative noncoding RNA predictions, which are started to get widely used for genome annotation.</p> <p>Babak <italic>et al</italic>. demonstrated that currently used null models based on mononucleotide shuffling lead to an underestimation of the false positive rate in such screens. Although single opinions may be different [##REF##17698086##51##], it is generally accepted that in the context of RNA gene prediction one should consider dinucleotide content as "background" rather than "signal". However, while there have been dinucleotide controlled randomization algorithms for single sequences for more than 20 years, it is a non-trivial problem in the case of multiple sequence alignments.</p> <p>Here we devised a simulation procedure that produces alignments that have on average a given dinucleotide frequency and sequence diversity (globally and locally). The corresponding model needs to be relatively complex including overlapping dependencies and site-specific rates. Clearly, this model with a high number of parameters would not be a reasonable choice for use in phylogenetic analysis, but it turned out to be a good choice for this specific application.</p> <p>We have to use heuristics and simplifications to estimate the tree and parameters for this model in reasonable time. The accuracy of our approach is measured in terms of how well the simulations reflect the properties of the original data. In this respect, we found that our strategy performs very well. Again, phylogenetic analysis was not the goal here, but some of the techniques introduced here might be of interest in this context. For example, we found that in the mononucleotide case our estimations for site-specific rates are surprisingly competitive when compared to the currently best maximum likelihood methods (data not shown).</p> <p>The influence of the null model for genomic RNA predictions was found to be remarkable. Consistent with Babak and colleagues' findings on pairwise alignments, we observed three times more false positives using dinucleotide controls than using mononucleotide controls. This clearly shows that the new approach should be the method of choice to get more sensible estimates of the significance of comparative RNA predictions.</p> <p>The next obvious step, is to use the new null model to improve current RNA gene prediction algorithms. In analogy to AlifoldZ, we combined our new simulation procedure with the RNAalifold consensus structure prediction algorithm. SISSIz calculates <italic>z</italic>-scores that are not biased by the genomic dinucleotide content and it is thus the first comparative gene finding program, that explicitely corrects for this effect. However, by using this conservative null model we also loose part of the signal in true structured RNAs. This might be the main reason, why the observed improvements in the overall classification performance were only relatively small.</p> <p>In general, the support vector machine approach used by RNAz is preferable over the AlifoldZ approach, since it is orders of magnitude faster. However, it turned out to be difficult to create a dinucleotide based version of RNAz mainly for two reasons. Until now, there was no way to produce a dinucleotide controlled negative test set that is necessary for training the two class support vector machine [##REF##15665081##6##]. With the method presented here, we have solved this problem and it is now possible to create test sets with specific dinucleotide properties. However, it remains an unsolved question how to compute dinucleotide based <italic>z</italic>-scores efficiently without shuffling. RNAz uses a regression approach to solve this problem for mononucleotides, which, unfortunately, does not scale well to the high dimensional dinucleotide case.</p> <p>A promising alternative to the thermodynamic RNA prediction methods used in this paper, are probabilistic methods. The EvoFold algorithm [##REF##16628248##7##] uses phylogenetic stochastic context-free grammars and, in its core, depends on a null model which is essentially an independent mononucleotide model. Since the folding grammar of EvoFold does not explicitely model stacking interactions there is no need for using a null model with overlapping dinucleotides as we have described here. However, also EvoFold was found to be affected to some degree by the dinucleotide content for reasons that are not immediately obvious [##REF##17263882##21##]. A dinucleotide background model together with an advanced folding grammar that considers stacks can thus be expected to improve performance. However, it would require considerable effort to include such a null model into the sophisticated probabilistic framework of EvoFold.</p> <p>Finally, we want to add that our randomization algorithm is not only of interest in the context of RNA gene prediction. It can be used for other comparative genomics applications whenever random alignments are needed as control. One could consider other applications in the context of RNA structures (e.g. prediction of conserved miRNA target sites) but also in different context (e.g. conserved sequence motifs). Currently our software implements a mono- and dinucleotide model which should be sufficient for many applications. In principle, however, it is also possible to consider higher order correlations within this framework.</p>
<p>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/2.0"/>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</p> <title>Background</title> <p>Comparative prediction of RNA structures can be used to identify functional noncoding RNAs in genomic screens. It was shown recently by Babak <italic>et al</italic>. [BMC Bioinformatics. 8:33] that RNA gene prediction programs can be biased by the genomic dinucleotide content, in particular those programs using a thermodynamic folding model including stacking energies. As a consequence, there is need for dinucleotide-preserving control strategies to assess the significance of such predictions. While there have been randomization algorithms for single sequences for many years, the problem has remained challenging for multiple alignments and there is currently no algorithm available.</p> <title>Results</title> <p>We present a program called SISSIz that simulates multiple alignments of a given average dinucleotide content. Meeting additional requirements of an accurate null model, the randomized alignments are on average of the same sequence diversity and preserve local conservation and gap patterns. We make use of a phylogenetic substitution model that includes overlapping dependencies and site-specific rates. Using fast heuristics and a distance based approach, a tree is estimated under this model which is used to guide the simulations. The new algorithm is tested on vertebrate genomic alignments and the effect on RNA structure predictions is studied. In addition, we directly combined the new null model with the RNAalifold consensus folding algorithm giving a new variant of a thermodynamic structure based RNA gene finding program that is not biased by the dinucleotide content.</p> <title>Conclusion</title> <p>SISSIz implements an efficient algorithm to randomize multiple alignments preserving dinucleotide content. It can be used to get more accurate estimates of false positive rates of existing programs, to produce negative controls for the training of machine learning based programs, or as standalone RNA gene finding program. Other applications in comparative genomics that require randomization of multiple alignments can be considered.</p> <title>Availability</title> <p>SISSIz is available as open source C code that can be compiled for every major platform and downloaded here: <ext-link ext-link-type="uri" xlink:href="http://sourceforge.net/projects/sissiz"/>.</p>
<title>Authors' contributions</title> <p>Both authors contributed equally.</p>
<title>Acknowledgements</title> <p>We thank Arndt von Haeseler, Ivo Hofacker, and Nick Goldman for discussions and Roland Fleißner for comments on the manuscript. We acknowledge funding from the Austrian GEN-AU projects "noncoding RNA" and "Bioinformatics Integration Network" and Financial support to the CIBIV institute from the Wiener Wissenschafts-, Forschungs- and Technologiefonds (WWTF).</p>
<fig position="float" id="F1"><label>Figure 1</label><caption><p><bold>Parameters effecting thermodynamic consensus RNA structure predictions.</bold> As a basic parameter set we used equal base frequencies of 0.25, a transition/transversion rate ratio <italic>κ </italic>= 1, and the following tree ((A:0.09,B:0.09):0.09,(C:0.09,D:0.09):0.09) One parameter was varied at a time while others were kept constant. If necessary branch lengths were adjusted to keep a mean pairwise sequence identity (MPI) of 0.75 ± 0.01. 1000 alignments of length 80 were simulated under each condition. Cumulative histograms for the RNAalifold consensus folding energies are shown. Please note that we plot negative minimum free energies, i.e. higher values correspond to more stable folds. (<bold>A</bold>) Base frequencies were varied to get high and low G+C content. (<bold>B</bold>) Two specific dinucleotide frequencies were elevated 3-fold while the mononucleotide content was kept constant. (<bold>C</bold>) Branch lengths were equally scaled to produce alignments with lower or higher MPI identity than for the basic tree. (<bold>D</bold>) The transition/transversion rate ratio was varied. <italic>κ </italic>= 1 means equal rates, while <italic>κ </italic>&gt; 1 gives more transition than transversions. (<bold>E</bold>) The alignment of size 80 was divided into a central block of 40 and two anking regions of 20. We set 100% conservation in the central block and low conservation in the anks (rate "high-low-high") and the other way round ("low-high-low"). The total average MPI was always 0.75. (<bold>F</bold>) We tested all possible topologies of this 4 taxa tree and adjusted the branch lengths to give a MPI of 0.75. For one given topology, all the branch lengths were of the same length.</p></caption></fig> <fig position="float" id="F2"><label>Figure 2</label><caption><p><bold>Site dependencies for overlapping dinucleotides (red-gray):</bold> The substitution process of a given nucleotide <italic>x</italic><sub><italic>k </italic></sub>at site <italic>k </italic>by another one depends on the states <italic>x</italic><sub><italic>k</italic>-1</sub>, <italic>x</italic><sub><italic>k</italic></sub>, <italic>x</italic><sub><italic>k</italic>+1</sub>, the subsequence <bold>s</bold><sub><italic>k</italic></sub>. <italic>Q</italic><sub><italic>k </italic></sub>has the dimension 64 × 64, where only one mutation is allowed at the current site <italic>k</italic>. The substitution rate for the whole sequence <italic>q</italic>(<bold>x</bold>) is the sum of each rate <italic>q</italic>(<italic>k</italic>) = <italic>Q</italic><sub><italic>k</italic></sub>(<bold>s</bold><sub><italic>k</italic></sub>, <bold>s</bold><sub><italic>k</italic></sub>) multiplied with a site-specific scaling factor <italic>f</italic><sub><italic>k</italic></sub>, with <italic>k </italic>= 1, ..., <italic>l</italic>.</p></caption></fig> <fig position="float" id="F3"><label>Figure 3</label><caption><p><bold>Key concepts of the algorithm shown on an example alignment of 5.8S rRNA.</bold> (<bold>A</bold>) Distribution of dinucleotide frequencies of 1000 simulated alignments are shown as box-plots (the line in the box indicates the median, the borders of the box the 25th and 75th quartile, and the dotted lines 1.5× the interquartile range). Red circles show the frequencies observed in the original alignment. (<bold>B</bold>) Relationship between the number of substitutions and observed differences empirically determined by sampling of 25 points. Each point shows the average of 10 simulations. Note that the short distances are sampled more densely. These settings are the default values in our program and used throughout the paper. (<bold>C</bold>) Distribution of mean pairwise identities for 1000 random samples. The MPI of the original alignment is shown in red. (<bold>D</bold>) Comparison of site-wise MPIs in the original alignment and the average of the corresponding sites of 1000 random alignments.</p></caption></fig> <fig position="float" id="F4"><label>Figure 4</label><caption><p><bold>Overview of the algorithm.</bold> Left: The steps of the randomization procedure are shown. Right: In combination with RNAalifold consensus folding the randomization procedure can be used to calculate <italic>z</italic>-scores and to predict significant RNA structures. See text for details.</p></caption></fig> <fig position="float" id="F5"><label>Figure 5</label><caption><p><bold>Example of randomized alignments.</bold> Part of the example alignment used in Fig. 3 are shown. The grey bars indicate the level of local conservation. Exactly conserved sites are marked by asterisks.</p></caption></fig> <fig position="float" id="F6"><label>Figure 6</label><caption><p><bold>Dinucleotide frequencies of genomic alignments.</bold> 1000 vertebrate genome alignments were randomized using three different methods. The dinucleotide frequency of the native and randomized data is shown as box-plots.</p></caption></fig> <fig position="float" id="F7"><label>Figure 7</label><caption><p><bold>Mean pairwise identity in randomized genomic alignments.</bold> The distribution of the difference of the mean pairwise identity between the original genomic alignments and the simulated ones (dinucleotide model) is shown.</p></caption></fig> <fig position="float" id="F8"><label>Figure 8</label><caption><p><bold>Influence of the randomization procedure on RNA predictions.</bold> (<bold>A</bold>) Cumulative frequency distribution of RNAalifold consensus folding energies for the native and randomized alignments. (<bold>B</bold>) Cumulative frequency distribution of RNAz scores. The "decision-value" is the result of the support vector machine classification. Positive values indicate a potential functional RNA while negative values indicate no significant fold. The positive tail is magnified.</p></caption></fig> <fig position="float" id="F9"><label>Figure 9</label><caption><p><bold>Accuracy of <italic>z</italic>-score based classification of structured RNAs.</bold> As positive examples, alignments from eight different classes of structural RNAs were used. As negative examples, random locations from genome wide vertebrate alignments were chosen. ROC curves are shown in dependence on the null model used. In addition, the results of the RNAz support vector machine are shown. The region of high specificity which is of special interest is magnified.</p></caption></fig>
<table-wrap position="float" id="T1"><label>Table 1</label><caption><p>z-scores and classification performance</p></caption><table frame="hsides" rules="groups"><thead><tr><td/><td/><td align="center" colspan="3">RNAz</td><td align="center" colspan="3">AlifoldZ</td><td align="center" colspan="3">SISSIz (mono)</td><td align="center" colspan="3">SISSIz (di)</td></tr><tr><td/><td/><td colspan="3"><hr/></td><td colspan="3"><hr/></td><td colspan="3"><hr/></td><td colspan="3"><hr/></td></tr><tr><td align="left">Data type</td><td align="center">N</td><td align="center">z</td><td align="center">S<sub>0.01</sub></td><td align="center">S<sub>0.05</sub></td><td align="center">z</td><td align="center">S<sub>0.01</sub></td><td align="center">S<sub>0.05</sub></td><td align="center">z</td><td align="center">S<sub>0.01</sub></td><td align="center">S<sub>0.05</sub></td><td align="center">z</td><td align="center">S<sub>0.01</sub></td><td align="center">S<sub>0.05</sub></td></tr></thead><tbody><tr><td align="left">5S rRNA</td><td align="center">368</td><td align="center">n/a</td><td align="center">0.77</td><td align="center">0.98</td><td align="center">-6.72</td><td align="center">0.84</td><td align="center">0.98</td><td align="center">-6.35</td><td align="center">0.86</td><td align="center">0.98</td><td align="center">-6.35</td><td align="center"><bold>0.93</bold></td><td align="center"><bold>1.00</bold></td></tr><tr><td align="left">tRNA</td><td align="center">382</td><td align="center">n/a</td><td align="center">0.74</td><td align="center">0.98</td><td align="center">-6.29</td><td align="center">0.75</td><td align="center">0.98</td><td align="center">-6.24</td><td align="center">0.74</td><td align="center">0.98</td><td align="center">-5.86</td><td align="center"><bold>0.88</bold></td><td align="center"><bold>0.99</bold></td></tr><tr><td align="left">U2 snRNA</td><td align="center">458</td><td align="center">n/a</td><td align="center">0.76</td><td align="center"><bold>1.00</bold></td><td align="center">-7.17</td><td align="center">0.89</td><td align="center">0.99</td><td align="center">-5.92</td><td align="center">0.84</td><td align="center">0.97</td><td align="center">-5.22</td><td align="center"><bold>0.93</bold></td><td align="center">0.99</td></tr><tr><td align="left">U3 snRNA</td><td align="center">377</td><td align="center">n/a</td><td align="center">0.52</td><td align="center"><bold>0.92</bold></td><td align="center">-5.11</td><td align="center">0.74</td><td align="center">0.86</td><td align="center">-4.47</td><td align="center">0.69</td><td align="center">0.83</td><td align="center">-4.23</td><td align="center"><bold>0.76</bold></td><td align="center">0.86</td></tr><tr><td align="left">U5 snRNA</td><td align="center">424</td><td align="center">n/a</td><td align="center"><bold>0.90</bold></td><td align="center"><bold>0.96</bold></td><td align="center">-5.61</td><td align="center">0.77</td><td align="center"><bold>0.96</bold></td><td align="center">-5.10</td><td align="center">0.69</td><td align="center">0.89</td><td align="center">-4.43</td><td align="center">0.76</td><td align="center">0.91</td></tr><tr><td align="left">Hammerhead</td><td align="center">499</td><td align="center">n/a</td><td align="center">0.78</td><td align="center"><bold>1.00</bold></td><td align="center">-6.68</td><td align="center">0.85</td><td align="center"><bold>1.00</bold></td><td align="center">-6.67</td><td align="center">0.90</td><td align="center"><bold>1.00</bold></td><td align="center">-6.66</td><td align="center"><bold>0.99</bold></td><td align="center"><bold>1.00</bold></td></tr><tr><td align="left">Group II intron</td><td align="center">480</td><td align="center">n/a</td><td align="center">0.68</td><td align="center"><bold>0.82</bold></td><td align="center">-6.58</td><td align="center">0.74</td><td align="center">0.81</td><td align="center">-6.77</td><td align="center">0.72</td><td align="center">0.81</td><td align="center">-6.29</td><td align="center"><bold>0.77</bold></td><td align="center"><bold>0.82</bold></td></tr><tr><td align="left">micro RNA precursor</td><td align="center">571</td><td align="center">n/a</td><td align="center">0.75</td><td align="center"><bold>1.00</bold></td><td align="center">-8.89</td><td align="center"><bold>1.00</bold></td><td align="center"><bold>1.00</bold></td><td align="center">-8.84</td><td align="center"><bold>1.00</bold></td><td align="center"><bold>1.00</bold></td><td align="center">-7.58</td><td align="center"><bold>1.00</bold></td><td align="center"><bold>1.00</bold></td></tr><tr><td colspan="14"><hr/></td></tr><tr><td align="left">Total of all classes</td><td align="center">3559</td><td align="center">n/a</td><td align="center">0.80</td><td align="center"><bold>0.96</bold></td><td align="center">-6.75</td><td align="center">0.87</td><td align="center">0.95</td><td align="center">-6.43</td><td align="center">0.85</td><td align="center">0.94</td><td align="center">-5.93</td><td align="center"><bold>0.90</bold></td><td align="center">0.95</td></tr><tr><td align="left">Genomic background</td><td align="center">3559</td><td align="center">n/a</td><td align="center">n/a</td><td align="center">n/a</td><td align="center">-0.44</td><td align="center">n/a</td><td align="center">n/a</td><td align="center">-0.58</td><td align="center">n/a</td><td align="center">n/a</td><td align="center">-0.15</td><td align="center">n/a</td><td align="center">n/a</td></tr></tbody></table></table-wrap>
<inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M1" name="1471-2105-9-248-i1" overflow="scroll"><mml:semantics><mml:mi mathvariant="script">A</mml:mi></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M2" name="1471-2105-9-248-i1" overflow="scroll"><mml:semantics><mml:mi mathvariant="script">A</mml:mi></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M3" name="1471-2105-9-248-i1" overflow="scroll"><mml:semantics><mml:mi mathvariant="script">A</mml:mi></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M4" name="1471-2105-9-248-i1" overflow="scroll"><mml:semantics><mml:mi mathvariant="script">A</mml:mi></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM1"><label>(1)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M5" name="1471-2105-9-248-i2" overflow="scroll"><mml:semantics><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mi>l</mml:mi></mml:mfrac><mml:mo>⋅</mml:mo><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>∑</mml:mo><mml:mn>1</mml:mn><mml:mi>l</mml:mi></mml:munderover><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM2"><label>(2)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M6" name="1471-2105-9-248-i3" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>k</mml:mi></mml:mstyle></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>π</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>if </mml:mtext><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mtext> and </mml:mtext><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>≠</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mrow><mml:mo>−</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo><mml:mtable columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="script">A</mml:mi><mml:mn>3</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo>≠</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:munder><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>if </mml:mtext><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>0</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M7" name="1471-2105-9-248-i1" overflow="scroll"><mml:semantics><mml:mi mathvariant="script">A</mml:mi></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM3"><label>(3)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M8" name="1471-2105-9-248-i4" overflow="scroll"><mml:semantics><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow/></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>A</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>C</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>G</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>U</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>A</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>C</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>G</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>U</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mo>∗</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>C</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>κ</mml:mi><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>G</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>U</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>A</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mo>∗</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>G</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>κ</mml:mi><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>U</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>κ</mml:mi><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>A</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>C</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mo>∗</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>U</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>A</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>κ</mml:mi><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>C</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>G</mml:mtext><mml:msub><mml:mi>y</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mo>∗</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM4"><label>(4)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M9" name="1471-2105-9-248-i5" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>−</mml:mo><mml:mstyle displaystyle="true"><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="script">A</mml:mi><mml:mn>3</mml:mn></mml:msup></mml:mrow></mml:munder><mml:mrow><mml:msub><mml:mi>π</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>z</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM5"><label>(5)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M10" name="1471-2105-9-248-i6" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>q</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo>−</mml:mo><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>l</mml:mi></mml:munderover><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mstyle mathvariant="italic" mathsize="normal"><mml:mi>k</mml:mi></mml:mstyle></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mstyle mathvariant="italic" mathsize="normal"><mml:mi>k</mml:mi></mml:mstyle></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM6"><label>(6)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M11" name="1471-2105-9-248-i7" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>P</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>x</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M12" name="1471-2105-9-248-i1" overflow="scroll"><mml:semantics><mml:mi mathvariant="script">A</mml:mi></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM7"><label>(7)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M13" name="1471-2105-9-248-i8" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>P</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>→</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>y</mml:mi></mml:mstyle><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mstyle mathvariant="bold" mathsize="normal"><mml:mi>s</mml:mi></mml:mstyle><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM8"><label>(8)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M14" name="1471-2105-9-248-i9" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>π</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>α</mml:mi><mml:mi>β</mml:mi><mml:mi>γ</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>π</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>α</mml:mi><mml:mi>β</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>π</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>β</mml:mi><mml:mi>γ</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>π</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>β</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM9"><label>(9)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M15" name="1471-2105-9-248-i10" overflow="scroll"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mi>a</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>⋅</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>−</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mover accent="true"><mml:mi>b</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mo>⋅</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula> <disp-formula id="bmcM10"><label>(10)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M16" name="1471-2105-9-248-i11" overflow="scroll"><mml:semantics><mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mo>〈</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>〉</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mn>2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>∑</mml:mo><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:munderover><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&gt;</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mrow><mml:msubsup><mml:mi>δ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:mstyle><mml:mo>;</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>with </mml:mtext><mml:msubsup><mml:mi>δ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign="left"><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>1</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>if nucleotides in sequences </mml:mtext><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mtext> differ at site </mml:mtext><mml:mi>k</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign="left"><mml:mtd columnalign="left"><mml:mn>0</mml:mn></mml:mtd><mml:mtd columnalign="left"><mml:mrow><mml:mtext>otherwise</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:semantics></mml:math></disp-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M17" name="1471-2105-9-248-i12" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>f</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> <disp-formula id="bmcM11"><label>(11)</label><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M18" name="1471-2105-9-248-i13" overflow="scroll"><mml:semantics><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>f</mml:mi><mml:mo>^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mover accent="true"><mml:mi>b</mml:mi><mml:mo>^</mml:mo></mml:mover></mml:mfrac><mml:mo>⋅</mml:mo><mml:mi>ln</mml:mi><mml:mo>⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:mo>〈</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>〉</mml:mo></mml:mrow><mml:mover accent="true"><mml:mi>a</mml:mi><mml:mo>^</mml:mo></mml:mover></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M19" name="1471-2105-9-248-i14" overflow="scroll"><mml:semantics><mml:mover accent="true"><mml:mi>a</mml:mi><mml:mo>^</mml:mo></mml:mover></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M20" name="1471-2105-9-248-i15" overflow="scroll"><mml:semantics><mml:mover accent="true"><mml:mi>b</mml:mi><mml:mo>^</mml:mo></mml:mover></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M21" name="1471-2105-9-248-i16" overflow="scroll"><mml:semantics><mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mo>∑</mml:mo><mml:mrow><mml:mi>α</mml:mi><mml:mo>∈</mml:mo><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>π</mml:mi><mml:mi>α</mml:mi><mml:mi>s</mml:mi></mml:msubsup><mml:mo>−</mml:mo><mml:msub><mml:mi>π</mml:mi><mml:mi>α</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:mstyle></mml:mrow></mml:semantics></mml:math></inline-formula> <inline-formula><mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M22" name="1471-2105-9-248-i17" overflow="scroll"><mml:semantics><mml:mrow><mml:msubsup><mml:mi>π</mml:mi><mml:mi>α</mml:mi><mml:mi>s</mml:mi></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>
<table-wrap-foot><p>S<sub>0.01</sub>, S<sub>0.05 </sub>... Sensitivity at a false positive rate of 0.01 and 0.05, respectively. The highest values among the four different methods are shown in bold letters.</p></table-wrap-foot>
<graphic xlink:href="1471-2105-9-248-1"/> <graphic xlink:href="1471-2105-9-248-2"/> <graphic xlink:href="1471-2105-9-248-3"/> <graphic xlink:href="1471-2105-9-248-4"/> <graphic xlink:href="1471-2105-9-248-5"/> <graphic xlink:href="1471-2105-9-248-6"/> <graphic xlink:href="1471-2105-9-248-7"/> <graphic xlink:href="1471-2105-9-248-8"/> <graphic xlink:href="1471-2105-9-248-9"/>
[{"surname": ["Felsenstein"], "given-names": ["J"], "source": ["Inferring Phylogenies"], "year": ["2004"], "publisher-name": ["Sunderland, Massachusetts: Sinauer Associates"]}, {"surname": ["Tavar\u00e9"], "given-names": ["S"], "article-title": ["Some probabilistic and statistical problems on the analysis of DNA sequences"], "source": ["Lec Math Life Sci"], "year": ["1986"], "volume": ["17"], "fpage": ["57"], "lpage": ["86"]}, {"surname": ["Jensen", "Pedersen"], "given-names": ["J", "AM"], "article-title": ["Probabilistic models of DNA sequence evolution with context dependent rates of substitution"], "source": ["Adv Appl Prob"], "year": ["2000"], "volume": ["32"], "fpage": ["499"], "lpage": ["517"], "pub-id": ["10.1239/aap/1013540176"]}, {"surname": ["Christensen"], "given-names": ["OF"], "article-title": ["Pseudo-likelihood for non-reversible nucleotide substitution models with neighbor dependent rates"], "source": ["Stat Appl Genet Mol Biol"], "year": ["2006"], "volume": ["5"], "fpage": ["1"], "lpage": ["29"]}, {"surname": ["Lanave", "Preparata", "Saccone", "Serio"], "given-names": ["C", "G", "C", "G"], "article-title": ["A new method for calculating evolutionary substitution rates"], "source": ["J Mol Evo"], "year": ["1984"], "volume": ["20"], "fpage": ["86"], "lpage": ["93"], "pub-id": ["10.1007/BF02101990"]}, {"article-title": ["SISSIz"]}, {"article-title": ["Seq-Gen"]}, {"article-title": ["AlifoldZ/shuffle-aln"]}, {"article-title": ["The Vienna RNA package"]}, {"article-title": ["RNAz \u2013 predicting structural noncoding RNAs"]}, {"article-title": ["levmar: Levenberg-Marquardt nonlinear least squares algorithms in C/C++"]}, {"article-title": ["BIONJ"]}, {"article-title": ["PhyML"]}, {"article-title": ["UCSC genome browser"]}, {"surname": ["Karolchik", "Kuhn", "Baertsch", "Barber", "Clawson", "Diekhans", "Giardine", "Harte", "Hinrichs", "Hsu", "Kober", "Miller", "Pedersen", "Pohl", "Raney", "Rhead", "Rosenbloom", "Smith", "Stanke", "Thakkapallayil", "Trumbower", "Wang", "Zweig", "Haussler", "Kent"], "given-names": ["D", "RM", "R", "GP", "H", "M", "B", "RA", "AS", "F", "KM", "W", "JS", "A", "BJ", "B", "KR", "KE", "M", "A", "H", "T", "AS", "D", "WJ"], "article-title": ["The UCSC Genome Browser Database: 2008 update"], "source": ["Nucleic Acids Res"], "year": ["2007"]}]
BMC Bioinformatics. 2008 May 27; 9:248