mkt.databases.app.utils

Helper functions for wiring structure visualization in the Streamlit app.

Includes create_structure_visualizer(), UniProt-index validation, and color-to-hex conversion helpers used by the app.

Functions

convert_color_to_hex(color)

Convert named color to hex.

create_structure_visualizer(seq_align, ...)

Create a StructureVisualizer from a SequenceAlignment and config class.

validate_uniprot_indices(seq_align, ...)

Validate that 1-indexed UniProt positions fall within the kinase sequence.

mkt.databases.app.utils.convert_color_to_hex(color: str) str[source]

Convert named color to hex.

Parameters:

color (str) – Color name or hex string.

Returns:

Hex color string.

Return type:

str

mkt.databases.app.utils.create_structure_visualizer(seq_align: SequenceAlignment, config_class: type[StructureConfig], config_kwargs: dict | None = None) StructureVisualizer[source]

Create a StructureVisualizer from a SequenceAlignment and config class.

This is the recommended way to create a StructureVisualizer with the new architecture. The flow is: 1. Create SequenceAlignment 2. Pass it to this function with a config class 3. Get back a StructureVisualizer ready for visualization

Parameters:
  • seq_align (SequenceAlignment) – SequenceAlignment object with aligned sequences.

  • config_class (Type[StructureConfig]) – The config class to instantiate (e.g., PhosphositesConfig, KLIFSConservedConfig).

  • config_kwargs (dict | None, optional) – Additional keyword arguments to pass to the config class, by default None.

Returns:

StructureVisualizer object ready for visualization.

Return type:

StructureVisualizer

Examples

>>> from mkt.databases.app.sequences import SequenceAlignment
>>> from mkt.databases.app.schema import PhosphositesConfig
>>>
>>> # Create sequence alignment
>>> seq_align = SequenceAlignment(str_kinase="EGFR", dict_color={"A": "blue", ...})
>>>
>>> # Create structure visualizer
>>> viz = create_structure_visualizer(seq_align, PhosphositesConfig)
>>>
>>> # Get highlight data
>>> list_idx, dict_color, dict_style = viz.get_highlight_data()
mkt.databases.app.utils.validate_uniprot_indices(seq_align: SequenceAlignment, list_uniprot_idx: list[int]) None[source]

Validate that 1-indexed UniProt positions fall within the kinase sequence.

Parameters:
  • seq_align (SequenceAlignment) – SequenceAlignment object providing the kinase and its canonical sequence.

  • list_uniprot_idx (list[int]) – List of 1-indexed full-length UniProt positions to validate.

Return type:

None

Raises:

ValueError – If any position falls outside the valid range [1, len(canonical_seq)].