Solution (source code)

= Solution

Columns 22–28 form one run between alignment columns 21 and 29, corresponding to <match states> $M_{21}$ and $M_{22}$. A self-repeating <insertion state> can emit a variable number of residues, so these seven alignment columns require \b[one populated <insertion state>], not seven successive mandatory states.

Pool all nongap residues in this run to estimate its <emission probabilities>:

``
insert_columns = np.flatnonzero(~match_mask)
runs = np.split(insert_columns, np.flatnonzero(np.diff(insert_columns) > 1) + 1)
insert_emissions = []
for run in runs:
    if len(run):
        counts, n = emission_counts(A[:, run].ravel())
        insert_emissions.append({aa: count/n for aa, count in counts.items()})
        print(run+1, n, insert_emissions[-1])
``

There are \b[24 emitted residues], giving
$$
\begin{array}{c|rrrrrrrrrrr}
a&A&D&E&G&H&I&L&N&P&T&V\\\hline
24\,p_I(a)&1&3&7&1&2&1&2&2&1&1&3
\end{array}
$$
All other <amino acids> have probability zero in this empirical <emission probabilities>. A conventional full architecture may provide an optional <insertion state> at every boundary, including the two ends, giving $72+1=73$ possible insertion positions; only one has an observed insertion here and is required by this alignment's populated insertion region.