compstruct(1)

πŸ’– compstruct β€” the glow-up for your RNA structure predictions πŸ’–

okay bestie, welcome to the Biosquid manual, page one of one, and today's main character is compstruct(1). she's here to tell you whether your RNA secondary structure predictions actually ate, or whether they're giving delulu. 🧬✨


✨ NAME ✨

compstruct β€” calculate accuracy of RNA secondary structure predictions

like, she grades your predictions. that's the whole vibe. πŸŽ€


✨ SYNOPSIS ✨

compstruct [options] trusted_file test_file

two files, bestie. one is the truth, one is the attempt. she compares them. no cap. πŸ’…


✨ DESCRIPTION ✨

so compstruct evaluates the accuracy of RNA secondary structure predictions, on a per-base-pair basis. think of it as the vibe check for your folding algorithm. πŸ”₯

the trusted_file contains one or more sequences with trusted (known) RNA secondary structure annotation β€” that's the ground truth, the real one, the main character. the test_file contains the same sequences, in the same order, with predicted RNA secondary structure annotation β€” that's your algorithm's homework. πŸ™ˆ

compstruct reads the structures and compares them, and calculates both:

  • the sensitivity β€” the number of true base pairs that are correctly predicted
  • the specificity β€” the positive predictive value, aka the number of predicted base pairs that are true

and she reports results for each individual sequence and in summary for all sequences together, because she's thorough like that. πŸ‘‘

both files must contain secondary structure annotation in WUSS notation. also, only SELEX and Stockholm formats support structure markup at present. that's it, that's the list. 😭

the default definition of a correctly predicted base pair is that a true pair (i,j) must exactly match a predicted pair (i,j). strict. no wiggle room. iconic honestly.

now, Mathews, Zuker, Turner and colleagues (see: 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. and 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). mirrored slay. πŸͺž


✨ OPTIONS ✨

  • -h β€” print brief help; includes version number and summary of all options, including expert options. the "help me bestie" button. 🫢
  • -m β€” use the Mathews relaxed accuracy rule (see above), instead of requiring exact prediction of base pairs. the "close enough is close enough" button. πŸ’«
  • -p β€” count pseudoknotted base pairs towards the accuracy, in either trusted or predicted structures. by default, pseudoknots are ignored. the "let's actually acknowledge the knots" button. πŸͺ’

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. πŸ’€ like fr, read that one twice.

🧚 EXPERT OPTIONS 🧚

the advanced level. the boss fight. iykyk. πŸ’œ

  • --informat <s> β€” specify that the two sequence files are in format <s>. in this case, both files must be in the same format. the default is to autodetect the file formats, in which case they could be different (one SELEX, one Stockholm). she's flexible when she wants to be. 🌸
  • --quiet β€” don't print any verbose header information. sometimes you just want the numbers, not the small talk. 🀫

🌈 SEE ALSO 🌈

go read these too, bestie, they're all part of the family:

afetch(1), alistat(1), compalign(1), revcomp(1), seqsplit(1), seqstat(1), sfetch(1), shuffle(1), sindex(1), sreformat(1), stranslate(1), weight(1).


πŸ’– AUTHOR πŸ’–

Biosquid and its documentation are Copyright (C) 1992-2003 HHMI/Washington University School of Medicine. Freely distributed under the GNU General Public License (GPL). See COPYING in the source code distribution for more details, or contact me.

Sean Eddy HHMI/Department of Genetics Washington University School of Medicine 4444 Forest Park Blvd., Box 8510 St Louis, MO 63108 USA Phone: 1-314-362-7666 FAX : 1-314-362-2157 Email: eddy@genetics.wustl.edu


and that's the whole page, bestie!! πŸ’…βœ¨ this one's Biosquid 1.9g, stamped January 2003, and she's still serving. go compare some structures and slay. πŸ¦‹πŸ’–