When a mapping carries any warning flag — mismatch, gap proximity, reference discrepancy, or ambiguity — emit the pairwise alignment in log output so users can see what the aligner saw and what it decided. At minimum this means human-readable log output (target row, reference row, match line) when a flag is present. Longer term, expose via API for flagged mappings. The alignment string should already be stored on the mapping table (#86), so this is primarily about surfacing it at the right moment.
In our KSR1 example, this looks something like
Proposed alignment
NP_001381512.1: 481 QRDSRFNFPAAYFIHHRQQFIFP----------------------DISAFAHAAPLPEAA
Target/Q8IVT5: QRDSRFNFPAAYFIHHRQQFIFPVPSAGHCWKCLLIAESLKENAFNISAFAHAAPLPEAA
Unmapped residues: **********************
Actual alignment
NP_001381512.1: 481 QRDSRFNFPAAYFIHHRQQFIFPDISA----------------------FAHAAPLPEAA
Target/Q8IVT5: QRDSRFNFPAAYFIHHRQQFIFPVPSAGHCWKCLLIAESLKENAFNISAFAHAAPLPEAA
When a mapping carries any warning flag — mismatch, gap proximity, reference discrepancy, or ambiguity — emit the pairwise alignment in log output so users can see what the aligner saw and what it decided. At minimum this means human-readable log output (target row, reference row, match line) when a flag is present. Longer term, expose via API for flagged mappings. The alignment string should already be stored on the mapping table (#86), so this is primarily about surfacing it at the right moment.
In our KSR1 example, this looks something like
Proposed alignment
Actual alignment