genomenet Claude Opus 4.5 commited on
Commit
f701732
·
1 Parent(s): cde1aef

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>

Files changed (1) hide show
  1. app.py +11 -3
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=CRISPR_EXAMPLE
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
- gr.Button("Load CRISPR Example").click(
 
741
  lambda: CRISPR_EXAMPLE, outputs=seq_input
742
  )
743
- gr.Button("Load Non-CRISPR Example").click(
 
 
 
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()