smftools.preprocessing.append_variant_call_layer#
- smftools.preprocessing.append_variant_call_layer(adata, seq1_column, seq2_column, seq1_converted_column=None, seq2_converted_column=None, sequence_layer='sequence_integer_encoding', read_span_layer='read_span_mask', reference_col='Reference_strand', output_prefix=None, uns_flag='append_variant_call_layer_performed', force_redo=False, bypass=False)#
Append a layer recording per-read, per-position variant calls at reference mismatch sites.
Uses the substitution map from
append_sequence_mismatch_annotationsto correctly handle coordinate shifts caused by indels between references. For each substitution, reads aligned to ref1 are checked at ref1's var index, and reads aligned to ref2 are checked at ref2's var index.For conversion SMF, reads are mapped to converted references while the alignment that identifies mismatch positions uses unconverted sequences. When
seq1_converted_column/seq2_converted_columnare provided, each reference gets a set of acceptable bases at each mismatch position (unconverted + converted), since not every base converts in every read. A position is informative only if the two acceptable-base sets are disjoint. A read base matching either the unconverted or converted form of a reference counts as a match for that reference.Values in the output layer:
1 = matches seq1 base(s) 2 = matches seq2 base(s) 0 = unknown (N, PAD, no coverage, or matches neither) -1 = not a mismatch position (or not informative after conversion)
- Parameters:
adata (
AnnData) -- AnnData object.seq1_column (
str) -- Column inadata.varwith the first reference base per position (unconverted).seq2_column (
str) -- Column inadata.varwith the second reference base per position (unconverted).seq1_converted_column (
str|None(default:None)) -- Optional column inadata.varwith the converted seq1 bases. When provided, both unconverted and converted bases are accepted as ref1 matches.seq2_converted_column (
str|None(default:None)) -- Optional column inadata.varwith the converted seq2 bases.sequence_layer (
str(default:'sequence_integer_encoding')) -- Layer containing integer-encoded actual read bases.read_span_layer (
str(default:'read_span_mask')) -- Layer containing read span masks.reference_col (
str(default:'Reference_strand')) -- Obs column defining which reference each read is aligned to.output_prefix (
str|None(default:None)) -- Prefix for the output layer name. Defaults to{seq1_column}__{seq2_column}.uns_flag (
str(default:'append_variant_call_layer_performed')) -- Flag inadata.unsindicating prior completion.force_redo (
bool(default:False)) -- Whether to rerun even ifuns_flagis set.bypass (
bool(default:False)) -- Whether to skip processing.
- Return type: