Skip to content

Commit 8b17294

Browse files
authored
update ziqiang et al. with extra options and product names (#237)
1 parent c702fe4 commit 8b17294

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

batch_cloning/ziqiang_et_al2024.html

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ <h1>Versatile Cloning Strategy for Efficient Multigene Editing in Arabidopsis</h
5959
CCGTGTACTGTAGTTACAGT
6060
TGTGGTTCCCCGGCCGTCTT
6161
ATACTCTAGTCCTCAACGCC</textarea>
62+
<div style="margin: 10px auto; text-align: center;">
63+
<input type="checkbox" id="bpOnly" name="bpOnly">
64+
<label for="bpOnly">Generate only entry clone (stop after BP)</label>
65+
</div>
6266
<br>
6367
<div id="error" class="error">
6468
</div>
@@ -80,7 +84,10 @@ <h1>Versatile Cloning Strategy for Efficient Multigene Editing in Arabidopsis</h
8084
if (valid) {
8185
// Submit the form data via fetch
8286
try {
83-
const response = await fetch(window.location.href, {
87+
const bpOnly = document.getElementById('bpOnly').checked;
88+
const url = new URL(window.location.href);
89+
url.searchParams.set('until_bp', bpOnly);
90+
const response = await fetch(url, {
8491
method: 'POST',
8592
headers: {
8693
'Content-Type': 'application/json',

batch_cloning/ziqiang_et_al2024.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@
5454
"sequence_file_format": "genbank",
5555
"overhang_crick_3prime": 0,
5656
"overhang_watson_3prime": 0,
57-
"file_content": "LOCUS name 465 bp DNA linear UNK 01-JAN-1980\nDEFINITION description.\nACCESSION id\nVERSION id\nKEYWORDS .\nSOURCE .\n ORGANISM .\n .\nFEATURES Location/Qualifiers\nORIGIN\n 1 ggggacagct ttcttgtaca aagtggaacg acttgccttc cgcacaatac atcatttctt\n 61 cttagctttt tttcttcttc ttcgttcata cagttttttt ttgtttatca gcttacattt\n 121 tcttgaaccg tagctttcgt tttcttcttt ttaactttcc attcggagtt tttgtatctt\n 181 gtttcatagt ttgtcccagg attagaatga ttaggcatcg aaccttcaag aatttgattg\n 241 aataaaacat cttcattctt aagatatgaa gataatcttc aaaaggcccc tgggaatctg\n 301 aaagaagaga agcaggccca tttatatggg aaagaacaat agtatttctt atataggccc\n 361 atttaagttg aaaacaatct tcaaaagtcc cacatcgctt agataagaaa acgaagctga\n 421 gtttatatac agctagagtc gaagtagtga ttaacatgag accat\n//"
57+
"file_content": "LOCUS U6-26_promoter 465 bp DNA linear UNK 01-JAN-1980\nDEFINITION description.\nACCESSION 14\nVERSION 14\nKEYWORDS .\nSOURCE \n ORGANISM .\n .\nFEATURES Location/Qualifiers\nORIGIN\n 1 ggggacagct ttcttgtaca aagtggaacg acttgccttc cgcacaatac atcatttctt\n 61 cttagctttt tttcttcttc ttcgttcata cagttttttt ttgtttatca gcttacattt\n 121 tcttgaaccg tagctttcgt tttcttcttt ttaactttcc attcggagtt tttgtatctt\n 181 gtttcatagt ttgtcccagg attagaatga ttaggcatcg aaccttcaag aatttgattg\n 241 aataaaacat cttcattctt aagatatgaa gataatcttc aaaaggcccc tgggaatctg\n 301 aaagaagaga agcaggccca tttatatggg aaagaacaat agtatttctt atataggccc\n 361 atttaagttg aaaacaatct tcaaaagtcc cacatcgctt agataagaaa acgaagctga\n 421 gtttatatac agctagagtc gaagtagtga ttaacatgag accat\n//"
5858
},
5959
{
6060
"id": 16,
6161
"type": "TextFileSequence",
6262
"sequence_file_format": "genbank",
6363
"overhang_crick_3prime": 0,
6464
"overhang_watson_3prime": 0,
65-
"file_content": "LOCUS name 230 bp DNA linear UNK 01-JAN-1980\nDEFINITION description.\nACCESSION id\nVERSION id\nKEYWORDS .\nSOURCE .\n ORGANISM .\n .\nFEATURES Location/Qualifiers\nORIGIN\n 1 taggtctccg cttttttttg caaaattttc cagatcgatt tcttcttcct ctgttcttcg\n 61 gcgttcaatt tctggggttt tctcttcgtt ttctgtaact gaaacctaaa atttgaccta\n 121 aaaaaaatct caaataatat gattcagtgg ttttgtactt ttcagttagt tgagttttgc\n 181 agttccgatg agataaacca atatcaactt tattatacaa agttgtcccc\n//"
65+
"file_content": "LOCUS U6-26_term 230 bp DNA linear UNK 01-JAN-1980\nDEFINITION description.\nACCESSION 16\nVERSION 16\nKEYWORDS .\nSOURCE \n ORGANISM .\n .\nFEATURES Location/Qualifiers\nORIGIN\n 1 taggtctccg cttttttttg caaaattttc cagatcgatt tcttcttcct ctgttcttcg\n 61 gcgttcaatt tctggggttt tctcttcgtt ttctgtaact gaaacctaaa atttgaccta\n 121 aaaaaaatct caaataatat gattcagtgg ttttgtactt ttcagttagt tgagttttgc\n 181 agttccgatg agataaacca atatcaactt tattatacaa agttgtcccc\n//"
6666
},
6767
{
6868
"id": 18,
@@ -145,7 +145,7 @@
145145
],
146146
"output": 14,
147147
"type": "PCRSource",
148-
"output_name": null,
148+
"output_name": "U6-26_promoter",
149149
"circular": false,
150150
"assembly": [
151151
{
@@ -192,7 +192,7 @@
192192
],
193193
"output": 16,
194194
"type": "PCRSource",
195-
"output_name": null,
195+
"output_name": "U6-26_term",
196196
"circular": false,
197197
"assembly": [
198198
{

main.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1553,7 +1553,7 @@ async def get_other_frontend_files(name: str):
15531553

15541554

15551555
@router.post('/batch_cloning/ziqiang_et_al2024', response_model=BaseCloningStrategy)
1556-
async def ziqiang_et_al2024_post(protospacers: list[str]):
1556+
async def ziqiang_et_al2024_post(protospacers: list[str], until_bp: bool = Query(False)):
15571557
try:
15581558
validate_protospacers(protospacers)
15591559
except ValueError as e:
@@ -1577,7 +1577,14 @@ async def ziqiang_et_al2024_post(protospacers: list[str]):
15771577

15781578
template_sequence = next(s for s in template.sequences if s.id == 18)
15791579
for i, (fwd_primer_id, rvs_primer_id) in enumerate(zip(primer_ids_for_pcrs[::2], primer_ids_for_pcrs[1::2])):
1580-
pcr_source = PCRSource(id=next_node_id, output_name=f"pcr_protospacer_{i + 1}")
1580+
if i == 0:
1581+
name = 'start_ps1'
1582+
elif i == (len(primer_ids_for_pcrs) // 2) - 1:
1583+
name = f'end_ps{i}'
1584+
else:
1585+
name = f'end_ps{i}_start_ps{i + 1}'
1586+
1587+
pcr_source = PCRSource(id=next_node_id, output_name=name)
15811588
fwd_primer = next(p for p in template.primers if p.id == fwd_primer_id)
15821589
rvs_primer = next(p for p in template.primers if p.id == rvs_primer_id)
15831590

@@ -1629,6 +1636,13 @@ async def ziqiang_et_al2024_post(protospacers: list[str]):
16291636
template.sequences.append(gateway_product)
16301637
template.sources.append(gateway_source)
16311638

1639+
if until_bp:
1640+
# Delete sources and sequences left
1641+
ids2delete = list(range(5, 11))
1642+
template.sources = [s for s in template.sources if s.id not in ids2delete]
1643+
template.sequences = [s for s in template.sequences if s.id not in ids2delete]
1644+
return template
1645+
16321646
# Now we want to do a Gateway with everything, so we need to find all sequences that are not input of anything
16331647
all_input_ids = sum([s.input for s in template.sources], [])
16341648
sequences_to_clone = [s for s in template.sequences if s.id not in all_input_ids]

0 commit comments

Comments
 (0)