esl-compstruct [options] trusted_file test_file
esl-compstruct evaluates the accuracy of RNA secondary structure predictions on a per-base-pair basis. The trusted_file contains one or more sequences with trusted (known) RNA secondary structure annotation. The test_file contains the same sequences, in the same order, with predicted RNA secondary structure annotation. esl-compstruct reads the structures and compares them, and calculates both the sensitivity (the number of true base pairs that are correctly predicted) and the positive predictive value (PPV; the number of predicted base pairs that are true). Results are reported for each individual sequence, and in summary for all sequences together.
Both files must contain secondary structure annotation in WUSS notation. Only SELEX and Stockholm formats support structure markup at present.
The default definition of a correctly predicted base pair is that a true pair (i,j) must exactly match a predicted pair (i,j).
Mathews and colleagues (Mathews et al., JMB 288:911-940, 1999) use a more relaxed definition. Mathews defines "correct" as follows: a true pair (i,j) is correctly predicted if any of the following pairs are predicted: (i,j), (i+1,j), (i-1,j), (i,j+1), or (i,j-1). This rule allows for "slipped helices" off by one base. The -m option activates this rule for both sensitivity and for specificity. For specificity, the rule is reversed: predicted pair (i,j) is considered to be true if the true structure contains one of the five pairs (i,j), (i+1,j), (i-1,j), (i,j+1), or (i,j-1).
Print brief help; includes version number and summary of all options, including expert options.
Use the Mathews relaxed accuracy rule (see above), instead of requiring exact prediction of base pairs.
Count pseudoknotted base pairs towards the accuracy, in either trusted or predicted structures. By default, pseudoknots are ignored.
Normally, only the trusted_file would have pseudoknot annotation, since most RNA secondary structure prediction programs do not predict pseudoknots. Using the -p option allows you to penalize the prediction program for not predicting known pseudoknots. In a case where both the trusted_file and the test_file have pseudoknot annotation, the -p option lets you count pseudoknots in evaluating the prediction accuracy. Beware, however, the case where you use a pseudoknot-capable prediction program to generate the test_file, but the trusted_file does not have pseudoknot annotation; in this case, -p will penalize any predicted pseudoknots when it calculates specificity, even if they're right, because they don't appear in the trusted annotation. This is probably not what you'd want to do.
Don't print any verbose header information. (Used by regression test scripts, for example, to suppress version/date information.)
Copyright (C) 2020 Howard Hughes Medical Institute. Freely distributed under the BSD open source license.