Why Gene Synthesis Orders Get Rejected
6 min read · Updated October 30, 2026
A synthesis order that comes back delayed, re-quoted or cancelled usually failed on something measurable, and the measurement is cheap to make before you pay for it. Vendors publish the thresholds their design guides screen against; what they do not do is tell you which of yours tripped.
Here is a 991 bp fragment measured against those thresholds, and what each flag actually means for the order.
The average GC is not the measurement
The worked fragment is 53.1% GC, which is unremarkable and would pass any whole-sequence check. Inside it, a 50 bp window at positions 601–650 is 82% GC, against the 25–65% per-window range vendors ask for.
That window is the problem, not the average. Synthesis proceeds by assembling short oligos, and a GC-rich stretch is where an oligo refuses to anneal where it should and anneals where it should not. A sequence with a high-GC block and a low-GC block averages to something comfortable and fails in both places.
The same logic applies to the swing between adjacent windows: a sharp transition is harder than either level on its own, because one assembly reaction has to work across both.
Repeats are the largest single cause, and the only one you can design out
In the same fragment, six repeated stretches of 20 bp or more cover 18.2% of the sequence, the longest being a 60 bp repeat at positions 301 and 561. Published analyses of what makes fragments fail put repetition first among all determinants.
The mechanism is direct: assembly relies on each oligo finding its unique neighbour, and a repeated stretch gives it several candidates. The failures are deletion of the region between two copies, scrambled assembly, or an order that is simply refused.
It is also the class you can fix systematically, because synonymous recoding changes the sequence without changing the protein. A repeat that is an artefact of codon choice disappears; a repeat that is a real tandem array in your design does not, and that is a decision rather than a defect.
Homopolymers and hairpins
The fragment carries an 11-base run of A at 881–891, against a threshold where vendors flag runs over 9. Long homopolymers miscall during synthesis and during the sequencing that verifies it, so a run near the limit costs you twice.
It also carries a 21 bp inverted-repeat stem at position 636 with a melting temperature of 93.8 °C. A stem that stable does not open at the temperatures an assembly reaction runs at, so the region is unavailable to the enzyme that has to copy through it.
Note what that number is and is not: it is the nearest-neighbour melting temperature of the stem if those two arms pair, not a prediction that they do in the ensemble. It is a measurement of the sequence, which is the point — these are facts about your fragment, not a model's opinion of it.
There is no success probability here, deliberately
The obvious product would be a score: one number from 0 to 1 saying whether the order will succeed. It was tested against the real orders published with the classifier that proposes it, and it does not work — the published model scores an F1 of 0.866 against 0.878 for the rule assume every order succeeds, and transfers between ordering labs at an AUC of 0.423, which is below chance.
So the output is the measurements, each beside the threshold it is being judged against. A reader who disagrees with a threshold can still use the number, and nobody is handed a probability the data cannot support.
What to do with the flags, in order
- Fix the repeats first. Recode synonymously where the repeat is in a coding sequence, and replace repeated parts with non-repetitive equivalents where it is not.
- Then the local GC extremes, which recoding often fixes at the same time.
- Then the homopolymers, which are usually a short run in a linker or a terminator and are easy to break.
- Leave the hairpins unless they are also repeats: a stable stem that is part of a terminator or a designed structure is there on purpose.
- Re-measure after each change rather than at the end, because recoding to remove one repeat can create another.
Frequently asked questions
Why was my gene synthesis order rejected?
Almost always for one of four measurable reasons: repeated stretches, a local GC extreme or a sharp GC transition, a long homopolymer run, or a stable hairpin. Vendors publish the thresholds and screen against them automatically, but rarely say which one your sequence tripped — measuring the sequence yourself against the same thresholds names it.
What GC content is too high for synthesis?
The limit is on local windows rather than the whole fragment. Vendors typically ask for 25–65% GC in every window of about 50 bp, so a fragment averaging 53% can still fail on an 82% window. Check the profile, not the average.
How long can a homopolymer run be in a synthesised gene?
Vendors generally flag runs longer than 9 of the same base. Long runs miscall during synthesis and during verification sequencing, so a run near the limit raises the chance that the delivered fragment differs from the order and that the difference is hard to confirm.
Will a complexity score tell me whether my order will succeed?
No, and that is measured rather than assumed. Refitted on the real orders its authors published, the best available classifier scores an F1 of 0.866 against 0.878 for simply assuming every order succeeds, and transfers between ordering labs below chance. The measurements are useful; a probability derived from them is not.
Related references
Related tools
Measure the repeats, GC extremes, GC transitions, homopolymer runs and hairpins that make a fragment hard to synthesise — each against the threshold vendors publish, with no score and no probability.
Find the largest subset of your parts that share no long stretch of sequence, or design new ones that do not — the property that keeps a multi-part assembly stable and synthesisable.
Scan a coding sequence for premature stops, cryptic RBS/polyA signals, unwanted restriction sites, GC extremes and repeats.
Optimize a protein or CDS for expression in E. coli, human, yeast, CHO, Pichia and more.
Locate the exact direct repeats that let a construct recombine away the DNA between them, and build the shortened molecule you would actually recover.