** Structures for scoring new_score_mat () will just make an empty score matrix score_xxx () will add in the score due to the xxx contribution. This makes it easy to add in secondary structure, sequence info, force field scores and so on. It no longer treats secondary structure as a privileged data type. * iteration This can perhaps be done at the perl level Do an initial alignment in the residue non-specific force field, followed by a scoring using the residues actually present. * Scoring ** f7 Adapt to handle profiles. *** speedups **** precalculate and store phi psi's with templates **** precalculate structural class for each site * Variables Things like gap_open and gap_extend should be passed as parameters into the alignment. There is no need to have them as persistent variables. * Alignment Code Introduce general, position-specific gap penalties. These would usually come from secondary structure (gap costs 10 times as much in a recognised secondary structure). * Profiles ** structures Create profiles as a top level data type. ** sequence sequence Modify code so as to handle fractional residues. Write with and without site specific gap penalties.