Drop real sequence biology into your Dash app — in one component.
Circular and linear viewers, GenBank / FASTA / NCBI loaders, annotations, primers, 250+ restriction enzymes, motif search, and rich callback state. Built for classrooms and industrial bio-foundries alike.
Toggle between circular plasmid maps, linear sequence views, or show both side by side.
Overlay named annotations, directional primers, and highlight regions on any sequence.
250+ NEB enzymes out of the box, plus custom recognition sites.
Fuzzy motif search with configurable mismatch tolerance and search_results callback.
Full control over base-pair, annotation, translation, and highlight colors.
React to selection, search_results, clicked_element, and copy events with standard Dash callbacks.
Light, dark, and auto themes (following a Mantine switch live), plus colorblind-safe palettes (Okabe-Ito, ColorBrewer, Paul Tol).
Load FASTA / GenBank files or NCBI accessions into props with parse() and fetch_ncbi().
Export the current viewer to a publication-ready SVG or PNG, straight from a Dash callback.
ARIA role and an auto-generated aria_label so screen readers announce the viewer meaningfully.
max_seq_length renders a lightweight placeholder instead of hanging the tab on multi-megabase sequences.
Optional integration: log a viewer as an interactive HTML artifact and compare variants across runs.
conda install -c conda-forge dash-seqvizmamba install -c conda-forge dash-seqvizpixi add dash-seqvizpip install dash-seqvizfrom dash import Dash, html
from dash_seqviz import SeqViz
app = Dash(__name__)
app.layout = html.Div([
SeqViz(
id="demo",
name="pUC19 fragment",
seq="TTGACGGCTAGCTCAGTCCTAGGTACAGTGCTAGC",
annotations=[
{"start": 0, "end": 22, "name": "Promoter",
"direction": 1, "color": "#2a9d8f"},
],
enzymes=["EcoRI", "XbaI", "SpeI"],
style={"height": "500px", "width": "100%"},
)
])
if __name__ == "__main__":
app.run(debug=True)