One can write a simple HMM scoring program in a few lines, but it will be rather slow. Training takes more lines. Doing sequence weighting take still more. Doing space-efficient scoring with recovery of alignment takes quite a few. Handling various different null models takes more lines. Handling calibration of the E-values takes some more lines. After a while, it all adds up.