def mutate_sequence(site: Site, mutation: Mutation, offset: int) -> str: relative_position = mutation.position - site.position + offset sequence = site.get_nearby_sequence(offset) assert sequence[relative_position] == mutation.ref sequence = sequence[:relative_position] + mutation.alt + sequence[ relative_position + 1:] return sequence