Update to _clustering() function as the best_path obtained from
viterbi() algorithm may contain null/silent states. Possibly consider
removing the _clustering() function and rather use random init.

Log transform has been implemented in the viterbi algorithm. The viterbi
algorithm is used in place of the ap_viterbi algorithm. This is also
true for the parameter init in the _clustering() function. The
DEF.big_negative and DEF.big_positive const values have been updated by
a few orders of magnitude.

(1) Test different input representations
	--> msa profile (created)
	--> hydrophobic moment profile (created)
	--> msa + hyydrophobic moment profiles (created)
	--> pca of msa profile (need to create)
	--> single seq + msa profile (created)

(2) PSICOV --> contact map estimation
	--> look for significant local correlation as most people only search
		for non-local correlation for beta-strands
	--> data stored on server at /gluster/data/tmb_maps.tgz
	
(3) Non-negative matrix factorisation or Principle Component Analysis
	for input encoding dimension reduction

(4) Different grammars, mixtures, and window sizes
	--> tied at mixture level not state level
	--> different mixture numbers (1,3,and 4)
	--> window sizes (7,15,19,21,31)