HMMER testsuite
CVS $Id: README,v 1.5 2003/04/04 00:33:11 eddy Exp $


Some tests are compiled programs. To compile them:
   % make

Once they're compiled, to run the whole test suite, do:
   % ./sqc 2 exercises.sqc . ../src


#####################################################################
List of compiled test drivers.
---------------------------------------------------------------------

- A test driver runs with no arguments, gives no output, 
  and returns EXIT_SUCCESS if the test passes.
- If the test fails, the test driver calls Die() to print a diagnostic on
  stderr, and exit with EXIT_FAILURE.
- The -v option always activates rudimentary verbose output on stdout.


Current tests:
---------------

alignalign_test
	Exercises P7ViterbiAlignAlignment() -- alignment of a fixed
	multiple alignment to an HMM. Aligns fn3 seed alignment to
	fn3 model, compares to results of aligning sequences individually;
	if an excessive number of discrepancies are detected, test
	fails.
	Other files: fn3.seed, fn3.hmm.

evd_test    
	Exercises code in histogram.c, especially EVD fitting
	Default generates 1000 EVD samples; fits EVD; tests that fitted
        parameters are reasonably close to real ones. 

masks_test  
	Exercises code in masks.c 
	Default runs XNU on a sequence and compares to a known result.

parsingviterbi_test
	Exercises P7ParsingViterbi() in core_algorithms.c
	Runs Fn3 model against titin using both standard Viterbi and
	ParsingViterbi; compares results for identity.

tophits_test
	Exercises tophits.c
	Generates random scores in three tiers (good, middling, bad).
	Uses RegisterHit() API; FullSort's them; tests that they
	end up in the right number/order.

trace_test
	Exercises traceback code in core_algorithms.c
	Runs a simple HMM against synthetic sequences designed to
	exercise all possible arrangements of transitions, and
	does a TraceVerify() to be sure resulting trace is internally
	consistent. 

viterbi_exercise
	Exercises P7Viterbi and P7SmallViterbi in core_algorithms.c
	Configures Fn3 model into various modes; generates 100 random
 	seqs from each configuration; does P7Viterbi and P7SmallViterbi
	alignments, TraceVerify()'s them, checks them for identity.

weeviterbi_test
	Exercises P7WeeViterbi in core_algorithms.c
	Runs RRM model against two subsequences of human U1A;
	compares Viterbi trace to WeeViterbi trace.
	
#####################################################################
Other test scripts.
---------------------------------------------------------------------

test1-conversion.pl
	Makes sure that hmmconvert produces identical HMMs from
 	byteswapped (initially different) binary HMM files.


 	
	






