Spaces:
Sleeping
Sleeping
Add flanked CRISPR example for better prediction visualization
Browse files- Added FLANKED_CRISPR_EXAMPLE with ~500bp upstream + CRISPR array + ~500bp downstream
- Set flanked example as default in Predict & Visualize tab
- Reorganized example buttons: "CRISPR Array Only", "Flanked CRISPR (recommended)", "Non-CRISPR"
- Visualization now shows characteristic low-high-low curve pattern
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
app.py
CHANGED
|
@@ -49,6 +49,10 @@ CRISPR_EXAMPLE = """TCCCCATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTCTGTTTACTTCCCTCTA
|
|
| 49 |
|
| 50 |
NON_CRISPR_EXAMPLE = """TTCGTTCATTTTTCTGGTTTGACCAATAGCATTTAAAGCCGCCCCACATAAATCATTTGGCCCGGAAACCTTTTGGTAAGATAAAATAGTGCCATCACTAGAAAGCTCAATTCTAATATCACAGACCTTACCAAAAAAACGACTATCACCACGAAAATATGGCTTCACAGATTTATAGATAATACCTGCATACCTCGAACCCGCCTTACCGCCATCGCCTGCGCCCGCTGAAGCACCTGAACCCTGGCTGCCTTGTTTATTTATGTTACTACCTTGCAAAGCACTGCCGCCGCCCACATCACCGCCATTAAAAAAATCATCTAATGCATTTTGATCAGCTCGACGTTGCGCATCCGCTTTCGCTTTGGCTTCCGCATCTGCCTTAGCCTTGGCGTCAGCTTTCGCTTTAGCATCGGCCTTAGCTTTTGCTTCTGCGTCAGCTTTCGCTTTAGCATCCGCTTTGGCTTTTGCATCAGCTTCCGCCTTCGCTTTAGCCTGCGCCTCTGCTTTTGCCTTAGCTTCCGCCTCTGCTTTGGCTTTTGCCTCTTGTTTTGCTTTCTCGTCTGCCTGCACTTTGGCTTTTGCTTCTTCTTCCGCTTGTTTTGCAGCATCTGCTAAACGTTTTGCCTCAGCTTCAGCTTTGAGCTTAGCGGCTTCAGCAGCCTGTTTGGCTTTCGCCTCTTCTGCCTGTTTTTGCTTTTCCAAGGCTTCTAAGCGAGCTTTTTCTTCCTGTTGCTTTTTCTGTTCAGCCAAGAACCTTTGTCTTTCCAGCTCTTTTTGCTGTTCCAGTTCTTTCTGACGGGCAATTTCCTGTTGACGTTGTTGCTCTTTTAACACTTCCCGTTGTTTTTCTTCTTCCCGTTTCTGCTCTTCACGTTTTTGGTCTTCAAGGGCTTGTTTCTTTTGTCTGTCCGCCTGACCTTTTTTCTGTTGTTGAATTCGCCCCCATTCCTGCGCTGCCGAGCCCGTATCAACCATCACGGCGCCGATAACTTCACCG"""
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
# Longer examples for State-Dynamic Plot (upstream + CRISPR array + downstream)
|
| 53 |
# Structure: ~600bp upstream | CRISPR array (25 repeats + 24 spacers) | ~600bp downstream
|
| 54 |
# Total: ~3000 bp - ideal for seeing alternating patterns in State-Dynamic Plot
|
|
@@ -724,7 +728,7 @@ Detect CRISPR arrays in DNA sequences using a BERT-based deep learning model (43
|
|
| 724 |
label="DNA Sequence (min 1000 bp)",
|
| 725 |
placeholder="Paste DNA sequence or FASTA...",
|
| 726 |
lines=8,
|
| 727 |
-
value=
|
| 728 |
)
|
| 729 |
with gr.Row():
|
| 730 |
stride_input = gr.Slider(
|
|
@@ -737,10 +741,14 @@ Detect CRISPR arrays in DNA sequences using a BERT-based deep learning model (43
|
|
| 737 |
)
|
| 738 |
with gr.Row():
|
| 739 |
predict_btn = gr.Button("Analyze Sequence", variant="primary")
|
| 740 |
-
|
|
|
|
| 741 |
lambda: CRISPR_EXAMPLE, outputs=seq_input
|
| 742 |
)
|
| 743 |
-
gr.Button("
|
|
|
|
|
|
|
|
|
|
| 744 |
lambda: NON_CRISPR_EXAMPLE, outputs=seq_input
|
| 745 |
)
|
| 746 |
result_summary = gr.Markdown()
|
|
|
|
| 49 |
|
| 50 |
NON_CRISPR_EXAMPLE = """TTCGTTCATTTTTCTGGTTTGACCAATAGCATTTAAAGCCGCCCCACATAAATCATTTGGCCCGGAAACCTTTTGGTAAGATAAAATAGTGCCATCACTAGAAAGCTCAATTCTAATATCACAGACCTTACCAAAAAAACGACTATCACCACGAAAATATGGCTTCACAGATTTATAGATAATACCTGCATACCTCGAACCCGCCTTACCGCCATCGCCTGCGCCCGCTGAAGCACCTGAACCCTGGCTGCCTTGTTTATTTATGTTACTACCTTGCAAAGCACTGCCGCCGCCCACATCACCGCCATTAAAAAAATCATCTAATGCATTTTGATCAGCTCGACGTTGCGCATCCGCTTTCGCTTTGGCTTCCGCATCTGCCTTAGCCTTGGCGTCAGCTTTCGCTTTAGCATCGGCCTTAGCTTTTGCTTCTGCGTCAGCTTTCGCTTTAGCATCCGCTTTGGCTTTTGCATCAGCTTCCGCCTTCGCTTTAGCCTGCGCCTCTGCTTTTGCCTTAGCTTCCGCCTCTGCTTTGGCTTTTGCCTCTTGTTTTGCTTTCTCGTCTGCCTGCACTTTGGCTTTTGCTTCTTCTTCCGCTTGTTTTGCAGCATCTGCTAAACGTTTTGCCTCAGCTTCAGCTTTGAGCTTAGCGGCTTCAGCAGCCTGTTTGGCTTTCGCCTCTTCTGCCTGTTTTTGCTTTTCCAAGGCTTCTAAGCGAGCTTTTTCTTCCTGTTGCTTTTTCTGTTCAGCCAAGAACCTTTGTCTTTCCAGCTCTTTTTGCTGTTCCAGTTCTTTCTGACGGGCAATTTCCTGTTGACGTTGTTGCTCTTTTAACACTTCCCGTTGTTTTTCTTCTTCCCGTTTCTGCTCTTCACGTTTTTGGTCTTCAAGGGCTTGTTTCTTTTGTCTGTCCGCCTGACCTTTTTTCTGTTGTTGAATTCGCCCCCATTCCTGCGCTGCCGAGCCCGTATCAACCATCACGGCGCCGATAACTTCACCG"""
|
| 51 |
|
| 52 |
+
# Flanked CRISPR example: upstream (500bp) + CRISPR array (10 repeats) + downstream (500bp)
|
| 53 |
+
# This shows nice visualization with low score on flanks and high score in the middle
|
| 54 |
+
FLANKED_CRISPR_EXAMPLE = """ATGCGATCGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATTCCCCATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTCTGTTTACTTCCCTCTATATCTTTTTTTGTTCGGTCATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTAAAATCACACTCACAGCCAATACAAGCGGGGGGGGAAATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTTGCAGTAGGGCAGACTGGCAGTTTTCGGGTAATGATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACATTCATACGAATAATCATTTCCGAAAGACTCCTTTTATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACAGGTCATGAGCATTCAAAACGTTCTCCCCGTTCAATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTAGCCTGGACCAAATAATGTACGAACCTCTCCATCTATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACATGAATTATATAACAGGGATTAAAATTTTTCTTATTATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTAAATTTGAGCAAATACTAAAAAAATGAGACAAAAAGATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTCCGGCAATGAATTGATAGGACTTAAAATAATTGTATTCGAGAGCAAGATCCACTAAAACAAGGATTGAAACTATCACGTTGAACGATCGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGATCGATCGATCGATCGATCGTAGCTAGCTAGCTAGCTAGCTGATCGATCGATCGTAGCTAGCTAGCTGAT"""
|
| 55 |
+
|
| 56 |
# Longer examples for State-Dynamic Plot (upstream + CRISPR array + downstream)
|
| 57 |
# Structure: ~600bp upstream | CRISPR array (25 repeats + 24 spacers) | ~600bp downstream
|
| 58 |
# Total: ~3000 bp - ideal for seeing alternating patterns in State-Dynamic Plot
|
|
|
|
| 728 |
label="DNA Sequence (min 1000 bp)",
|
| 729 |
placeholder="Paste DNA sequence or FASTA...",
|
| 730 |
lines=8,
|
| 731 |
+
value=FLANKED_CRISPR_EXAMPLE
|
| 732 |
)
|
| 733 |
with gr.Row():
|
| 734 |
stride_input = gr.Slider(
|
|
|
|
| 741 |
)
|
| 742 |
with gr.Row():
|
| 743 |
predict_btn = gr.Button("Analyze Sequence", variant="primary")
|
| 744 |
+
with gr.Row():
|
| 745 |
+
gr.Button("CRISPR Array Only").click(
|
| 746 |
lambda: CRISPR_EXAMPLE, outputs=seq_input
|
| 747 |
)
|
| 748 |
+
gr.Button("Flanked CRISPR (recommended)").click(
|
| 749 |
+
lambda: FLANKED_CRISPR_EXAMPLE, outputs=seq_input
|
| 750 |
+
)
|
| 751 |
+
gr.Button("Non-CRISPR").click(
|
| 752 |
lambda: NON_CRISPR_EXAMPLE, outputs=seq_input
|
| 753 |
)
|
| 754 |
result_summary = gr.Markdown()
|