Skip to content

Wire Twist Gene Pools into web calculator; simulate fold-sampling for 90% coverage#5

Open
micah-olivas wants to merge 1 commit into
mainfrom
worktree-sequential-cooking-honey
Open

Wire Twist Gene Pools into web calculator; simulate fold-sampling for 90% coverage#5
micah-olivas wants to merge 1 commit into
mainfrom
worktree-sequential-cooking-honey

Conversation

@micah-olivas
Copy link
Copy Markdown
Contributor

Summary

  • Twist Gene Pools synthesis cost: for sequences > 350 bp the calculator was using $0 for synthesis (no method was wired up). Now uses Twist Gene Pools lookup pricing (300–1800 bp, skew=1.5), so the uSort-M curve for long libraries reflects real synthesis costs.
  • Simulation-based fold-sampling: the generator now calls find_fold_sampling() once per synthesis method at startup to find the fold required for 90% coverage, matching what usortm estimate does. Results: 8.5× for Twist Oligo Pools (skew=4.0) and 6.0× for Twist Gene Pools (skew=1.5). Previously hardcoded at 4×.
  • UI updates: fold-sampling and skew labels below the plot now update dynamically from the JSON data; the synthesis method label for >500 bp now says "Twist Gene Pools (300–1800 bp)"; footnote assumptions updated for long libraries.
  • TOML skew updates: Gene Pools 6.0→1.5, Cloned MGF 3.0→2.0, Multiplexed GF 5.0→2.0.
  • All 29 cost curve JSONs and default_costs.json regenerated.

Test plan

  • Open docs/index.html locally and verify the plot renders for 300 bp (short) and 700 bp (long)
  • Confirm the "Fold sampling" and "Library skew" params below the plot update correctly when changing sequence length across the 350 bp threshold
  • Confirm ">500 bp" synthesis label reads "Twist Gene Pools (300–1800 bp)"
  • Confirm uSort-M cost at 700 bp / 1000 variants is non-zero and competitive with traditional

…for 90% coverage

- generate_cost_data.py: use Twist Gene Pools (skew=1.5, 300–1800 bp) for uSort-M
  synthesis cost when seq_length > 350 bp, replacing the prior $0 placeholder
- generate_cost_data.py: call find_fold_sampling() once per synthesis method at startup
  to compute the fold required for 90% coverage (8.5× for Oligo Pools skew=4.0,
  6.0× for Gene Pools skew=1.5), matching the estimate CLI's simulation approach
- Regenerate all 29 cost_curve_*.json files and default_costs.json with updated
  synthesis costs, fold-sampling, and skew fields per data point
- index.html: display simulated fold-sampling and skew from JSON data in the
  parameter strip below the plot (was hardcoded 4×)
- index.html: pass fold-sampling through to updateTimeline() so well/plate counts
  in the timeline step are self-consistent
- index.html: label >500 bp synthesis as "Twist Gene Pools (300–1800 bp)" (was
  "Instance Bio or custom synthesis")
- index.html: update uSort-M footnote for long libraries to reflect Gene Pools
  pooled synthesis instead of substitution library language
- twist_gene_pools.toml: skew 6.0 → 1.5 (tighter estimate from uniformity spec)
- twist_cloned_mgf.toml: skew 3.0 → 2.0
- twist_multiplexed_gene_fragments.toml: skew 5.0 → 2.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant