---
title: "Expressing proteins for purification: A guide on how to succeed or fail quickly"
authors:
  - "Josie Bircher"
  - "James Kraemer"
doi: "10.57844/arcadia-1mmp-30hh"
license: "https://creativecommons.org/licenses/by/4.0/"
date: "2026-09-30"
version: 1
canonical_url: "https://thestacks.org/publications/result-protein-expression-guide"
---

# Expressing proteins for purification: A guide on how to succeed or fail quickly

_There's no reliable recipe for getting cells to express a recombinant protein, but there's a faster way to find out whether yours will. We propose a roadmap to compress a months-long expression campaign into about a month, with a clear decision point at the end._

## Abstract

There's no reliable recipe for getting cells to express a recombinant protein. Published advice covers the individual decisions — expression system, construct design, detection method — but rarely how to combine them into an efficient campaign. We recently spent five months, 78 constructs, and five expression systems on four proteins before pausing the effort, still unsure whether we had enough active material for the assays we'd planned.

Here, we use that experience to propose a roadmap for running an expression campaign that either yields protein or fails quickly: Define your success criteria before you start, put a quantitative detection tag on every construct, and test roughly 24 designs/conditions in parallel for each of two distinct expression systems. We think this approach could compress a months-long campaign into about a month, with a clearer decision point at the end.

We haven't run the roadmap in its current form, so we're offering it as a hypothesis and as a prompt to spark discussion among anyone trying to purify new proteins.

::::::div{.info-box}
This pub synthesizes advice from an expression campaign in which we routinely changed variables and didn't always run replicates. We aren't making conclusive claims; instead, we're sharing the data we collected for this handful of proteins in case it's useful to anyone working on them. Our main goals are to compile big-picture guidance that isn't covered elsewhere and open a space for discussion.
::::::

# Introduction

When it comes to making recombinant proteins for purification, there's no clear path to getting cells to express a protein. It's hard to predict what will work, which means most campaigns rely on a mix of empirical data, instinct, accumulated experience, and a fair amount of guessing. There are many small details and decisions to make along the way: expression system, construct design, and detection method. We've seen reasonable published guidance for many of these smaller decisions, but there's far less information on how to combine all of them to run an effective expression campaign. Furthermore, there's a serious information gap on what to do when your first expression attempt fails, how to troubleshoot iteratively, or how to know when to stop trying. In direct opposition to the goal, researchers almost never publish negative results in protein expression, so we lack a shared record of what doesn't work and why.

We hope to bridge that gap and provide a generalizable roadmap for an expression campaign. In this roadmap, we highlight strategic decisions that are more likely to lead to a successful expression effort — whether that's achieving successful expression or failing quickly. Instead of going through every single detail and decision point, we provide specific examples of the small decisions that are worth prioritizing at various points in the process, and flag the design choices we suggest deprioritizing. We think that these small decisions make up a workable framework for an efficient, high-level strategy that can get expression results quickly and clearly.

This roadmap is hypothetical; we have yet to test it fully in its current form. Throughout this pub, we explain how we came to these decisions, using anecdotes from a recent expression campaign, in which we struggled to express four proteins of interest. Many of these anecdotes are examples of "what not to do" — learning experiences that made us think there must be a better way than our current approach. We link to data from our set of four proteins in case anyone is interested in these specifically, but mostly try to use our attempts to underscore broader points.

::::::div{.info-box}
Our **plasmid sequences**, **Western blots**, and **expression** **data** for human DNASE2, PPT1, ARSG, and UBE2A are on [Zenodo](https://doi.org/10.5281/zenodo.23021504).
::::::

We structure the roadmap by walking through each stage of an expression campaign, starting with information gathering and planning, and ending with how to know when to stop. We hope readers will use this not only as an information source, but as a spark for further discussion on how to approach protein expression strategically.

# Stage 1: Information gathering and planning

In our experience, most expression campaigns are disorganized, iterative, and inefficient. The pattern is familiar: Come up with an idea, make a construct, test it. It doesn't work. Try again, starting at construct design. It sort of works, but not well enough. Switch expression systems. Start over. Here's how we'd recommend approaching this challenge more efficiently.

## Consult the literature

Start by examining the protein on the Protein Data Bank (PDB, RRID: [SCR_012820](https://scicrunch.org/resolver/SCR_012820/)). If there's a solved structure, use that structure and expression system as your baseline. Also, explore the literature — if there are published accounts of an in vitro assay with SDS-PAGE images of the purified protein, you can be confident that you'll be able to express that protein. In this case, mimic the expression systems, construct design, and conditions as closely as possible for a first trial. Only expend energy on the screening we detail [later](#stage-3-screening) if major changes are required or you're looking to maximize expression.

Conversely, if there aren’t any reports of in vitro purified assays, and most studies on protein function are performed in a cellular context, that’s likely going to be a harder road. This uncertainty is compounded by the fact that failed expression attempts almost never get published. We discuss strategies for setting up an effective screen without prior examples in the remainder of this pub.

::::::details

:::::summary
**Anecdote: The literature often doesn’t have what you want — when there's no clear direction, an approach can balloon**
:::::

We recently set out to express and purify four human proteins: DNASE2, PPT1, ARSG, and UBE2A. Only two of these had solved structures (UBE2A — PDB IDs [8BTL](https://www.rcsb.org/structure/8BTL), [6CYR](https://www.rcsb.org/structure/6CYR), [6CYO](https://www.rcsb.org/structure/6CYO) [](https://doi.org/10.1038/s41589-018-0177-2); and PPT1 — [3GRO](https://www.rcsb.org/structure/3GRO)), both of which also had examples of in vitro assays with purified protein [](https://doi.org/10.1021/bi401138s) [](https://doi.org/10.1016/j.ymgme.2009.12.002) [](https://doi.org/10.1038/s41589-018-0177-2) [](https://doi.org/10.1038/s41594-023-01192-4).

We knew it would be challenging to express some of these proteins. We mimicked the strategy for purifying UBE2A in _E._ _coli_ and were successful on our first attempt. Researchers generated the single published PPT1 structure from insect cells — a system we didn’t immediately have the infrastructure for, so unfortunately, the strategy was incompatible with our current capabilities. This is another variable — whether to spend time establishing a system that's been shown to work, or spend time optimizing expression in a different system that you already have. We ended up testing for expression in a very circuitous way for PPT1, DNASE2, and ARSG — this experience led us to propose a "screen" version that we detail in “[Approach expression as a mini-screen](#approach-expression-as-a-mini-screen).”

::::::

## Consider your downstream assay requirements

The more clearly you define what your downstream assays are, the more effectively you can plan your expression campaign. For example, a crystallization effort will have significantly different design requirements than a crude activity assay. Or you might need a critical post-translational modification for some activity or interaction that you plan to test. Consider the following aspects before proceeding to the design phase.

### Protein yield

Determine how much protein you'll need to comfortably run the analyses you want. Assume you'll lose up to 50% of your initial protein throughout purification — Bryan et al. (2011) [](https://doi.org/10.1107/S1744309111018367) report 55–80% recovery in a semi-automated platform, though this can vary dramatically and researchers only rarely report recovery. Adjust your expected yield accordingly to determine the minimal required protein for expression.

Your total protein yield is a function of your culture volume and your mass of expressed protein per culture volume. Therefore, in an expression screen, you’ll need to keep in mind what volume of culture you plan to use to make your protein. If you aim to do things in high throughput, then you won't be using larger volumes of culture like you could for a large-scale, low-throughput prep, so your requirements for "expressed protein per volume" are going to be stricter and might require more optimization.

### High-throughput vs. flask expression

Some expression campaigns aim to express a single protein in high purity for a designated task. Others might aim to establish conditions and construct designs to later make a library of protein variants and screen in high throughput. These require different approaches. In general, flask purification isn't volume-limited. You can accommodate lower yields per volume by just growing more culture and your constraints will be fewer. On the other hand, high-throughput production is volume-limited, and the compatible expression systems are fewer (for instance, autoinduction in _E._ _coli_ is more convenient for high-throughput production, but only specific _E._ _coli_ cell lines are compatible with this method).

### Protein purity

Determine how pure your protein needs to be for downstream assay requirements. A crude activity assay (less pure) will have different requirements from a crystallization effort (more pure). This will inform what tags you choose (do you need a more specific tag like a FLAG tag, or can you get away with a small 6×-His?). Purity requirements also tell you how much protein you’ll need to express — some purification tags or processes have higher yields than others. A purification with more than one step will have higher loss than a single-step process, so you’ll need to account for that loss in your yield calculations.

### Assay type

As mentioned above, if you're doing a crude activity assay, you might not need to purify your protein as thoroughly as you would for an in-depth molecular characterization. Determine if you’ll need to remove any tags before running your assay.

Try to find purification buffer components that'll be compatible with your final assay. The fewer interventions and processing steps for proteins, the better. So if your elution buffer is incompatible with your assay buffer, plan to do a buffer exchange step, and plan for extra loss. Alternatively, design your protein with a tag that uses an elution buffer that's compatible with your assay.

### Protein domains and post-translational modifications

Not all assays require the full-length protein. In fact, many purifications and expression campaigns do better with truncated proteins. Determine whether your assay requires specific protein domains or the entire intact protein. Maybe there's a secretion tag or membrane insertion that you don’t need.

Keep post-translational modifications in mind during this investigation as well. Sometimes, terminal regions of the protein may be phosphorylated or glycosylated in ways that impact protein interactions, function, or folding. Use this to inform your construct design and expression system choice. For instance, if an N-terminal site is heavily glycosylated but doesn’t impact function, consider truncating that region or using a prokaryotic system. If that glycosylation is important, keep the domain and use a eukaryotic system.

### Summary

After asking these questions, you'll have a rough idea of your expression and purification scheme and how that feeds into your assay. This will inform how much protein you’ll need and the level of purity you’ll need, as well as which tags to add. And finally, your assay requirements will determine which protein domains are important and which you can try truncating to maximize expression. 

These questions will also give you guide rails for whether your expression campaign is successful. Knowing when to stop (and what your criteria are) ahead of time is critical to running an efficient campaign.

::::::details

:::::summary
**Anecdote: Plan everything around your downstream requirements**
:::::

We ultimately intended to generate variants of each of our wild-type proteins of interest and then compare enzymatic activity and protein stability. Those goals informed many of our constraints. We needed around 50 µg per protein, and knew we wanted to grow 2 mL cultures in a 24-well plate. This gave us a hard cap for our yield requirements, since we were going to be volume-limited. We didn’t need our protein to be super pure, so we were okay planning for a single-step purification and a less specific affinity tag. We intended to do thermal melt assays with these proteins, so we chose small affinity tags (this aligned with our purity requirements) that were least likely to interfere with those assays — a His tag for purification and a FLAG tag for detection (or as a secondary purification handle if we needed it). We always added a cleavage site between the tags and the protein for every construct, even if we didn't yet know whether we'd use it. One thing we didn't account for early on was how our tag choices would impact our detection method in specific systems.

Thinking about our downstream requirements ahead of time put many constraints on how we set things up and enabled us to think clearly about what we wanted. Unfortunately, we didn’t fully account for how to test all of these variables clearly and efficiently, or quantify them well. See details on how we think we should have done things in “[Approach expression as a mini-screen](#approach-expression-as-a-mini-screen)” and “[Expression detection: Choose a tag to quantify expression](#expression-detection-choose-a-tag-to-quantify-expression).”

::::::

## Identify which expression systems to use

If a protein has a solved structure from _E. coli_, focus there. If the researchers who generated the structure used a different system, try to mimic it as closely as possible while also adding _E. coli_ designs (because they're quick to check). A good starting point is two expression systems that are sufficiently different to span the range of what's possible. A few giveaways can help determine whether something beyond _E. coli_ is worth pursuing:

### Disulfide bonds

Some _E. coli_ strains and cell-free systems (for example, NEB C3026J; Sino Biological CFKit02) claim to be able to generate folded proteins that contain disulfide bonds, but we haven't had personal success with the ones we've tried. If your protein has these, you'll need to add a secretion tag to traffic your protein to a specific cellular compartment suited for disulfide formation. Eukaryotic systems such as mammalian cells and _Pichia_ have well-characterized secretory pathways. Periplasmic expression in _E. coli_ is also an option. More information on why to secrete your protein and how to design secretion tags can be found in Patil et al. (2015) [](https://doi.org/10.3390/ijms16011791) and O'Neill et al. (2023) [](https://doi.org/10.1021/acssynbio.3c00157).

### Post-translational modifications (PTMs)

If your protein requires specific PTMs for function or folding, test expression in a mammalian (or at least eukaryotic) system like Chinese hamster ovary (CHO) cells or yeast. If a specific enzyme drives an unusual modification, consider co-expressing it with your protein of interest.

### Infrastructure

The easiest system to choose is often the one your lab is already running. Institutional knowledge matters too, and can be very beneficial when it comes to troubleshooting. If your lab doesn’t have a certain system running, consider which might be the easiest to set up, or to give you a quick answer on whether it's a viable system.

::::::details

:::::summary
**Anecdote: Each expression system has its set of difficulties — don’t spread yourself too thin by trying them all**
:::::

All of our target proteins had features that complicate expression: Three of the four had (predicted or confirmed) disulfide bonds, and one required a rare post-translational modification for activity. Over roughly five months, we tested five expression systems: _E. coli_, Sf9, CHO, HEK293, and cell-free. We successfully expressed a version of each protein (we were successful in CHO/HEK for three of the four), but we put this project on pause before getting clear answers on whether we obtained enough active material for our downstream intentions. Here are a few anecdotes from specific expression systems.

### _E. coli_ systems didn’t help our proteins fold

Since it was an easy thing to check, we started testing designs using _E. coli_. We tested our disulfide-requiring designs using SHuffle T7 cell lines, which are reported to provide an environment conducive to disulfide bond formation. However, none of our designs yielded soluble protein in these systems. Similarly, we attempted to express these proteins in _E._ _coli_-based cell-free systems. Again, we generated protein, but it wasn't folded (as determined by a SYPRO Orange study [Figure 5](#TM-plots)), so we abandoned these two approaches.

### Pros and cons of insect cells

Since one of our proteins (PPT1) has a reported structure (PDB ID: 3GRO) generated from insect cells, we explored insect cells as an expression system. Insect cell preps take longer than bacterial or mammalian preps, but can be more cost-effective and higher-yielding than mammalian systems. Insect cell approaches vary primarily in how you generate your initial bacmid particles. Some rely on transformations into microbial cells and colony screening, which we determined would be too low-throughput if we eventually wanted to screen for expression and generate variants in high throughput. We opted to use the [ProGreen method](http://www.abvector.com/ProGreen.htm) to generate bacmid particles directly in Sf9 host cells. This process avoids colony picking, so we could do it entirely in plate format. We only did a few pilots using this system, and ultimately stopped once our mammalian cell lines showed promise.

:::::div{.info-box}
**Weigh in!**

We're curious if anyone has preferred methods for high-throughput insect cell expression screening.

We also didn’t test any yeast systems, mostly because we didn’t have the infrastructure or expertise at the time. We're curious what others’ go-to or favorite expression system is.
:::::

### Co-expression may be necessary, but can add complexity

One of our proteins, ARSG, has an unusual requirement: a cysteine-to-formylglycine modification required for high activity [](https://doi.org/10.1074/jbc.M709917200). The enzyme SUMF1 performs this conversion [](https://doi.org/10.1016/S0092-8674(03)00348-9) [](https://doi.org/10.1016/S0092-8674(03)00347-7), and several reports suggest co-expressing SUMF1 with arylsulfatases (specifically ARSA, but the specific modification is conserved) enhances activity in a synergistic way [](http://doi.org/10.1016/j.ymben.2023.12.003) [](https://doi.org/10.1016/S0092-8674(03)00348-9). We designed constructs for this co-expression, which included two bicistronic designs and two sets for dual transfection in mammalian HT1080 cells. However, we were never able to express enough ARSG to attempt a purification and measure activity. We also failed to confirm SUMF1 expression and likely needed to optimize transfection conditions further, which added complexity to our attempts.

### Takeaway

We spread ourselves too thin jumping from one expression system to another. Many of these were new systems we didn’t have well established, making it difficult to tell whether a lack of expression was due to our protein design or to issues with our setup. Ultimately, we think that two representative expression systems should span enough breadth to have some positive result. If you want to do further rounds of optimization to really improve your yield, then it’s worth branching out to similar systems that might provide gains.

Adding a co-expression attempt added a lot more burden to our experiments — now we needed to determine the successful expression of two proteins, not to mention the potential to optimize dual transfection conditions. Ultimately, our attempts were more of an afterthought — a last-ditch effort to see if we could improve the expression of an already low-expresser. However, this just added more complexity to our system. If we were to do this again, we’d either more fully commit to this approach in our mini-screen or leave it as a follow-up optimization after we found a good candidate.

::::::

## Approach expression as a mini-screen

Before proceeding to the design phase, plan to approach your expression campaign as a mini-screen. Think about what construct design elements you'd like to explore (see "[Stage 2: Construct design](#stage-2-construct-design)") in addition to expression systems and conditions. We think 24 designs per expression system is a reasonable starting point because 24-well plates are readily available and you can test four to five variables systematically (see “[Stage 3: Screening](#stage-3-screening)” and [Figure 3](#screen-setup)). If you're testing multiple expression systems, test them in parallel, or at least start the slower one first.

To run all of your conditions in parallel, you’ll need to be equipped with the infrastructure for expressing protein in plate format, and you should think through all your equipment needs before starting. Minimally, you’ll need extra incubators or shakers if your lab grows cells in both flasks and plates. This applies to almost all expression-competent cell lines. For instance, to grow mammalian cells in suspension, you'll need a shaker for your maintenance flask (approximately 125 rpm) and a separate shaker for growing cells in 24-well plates (approximately 200 rpm). Hopefully, both shakers fit in one incubator if you're limited on incubator space. You may need separate incubators for temperature shifts as well (as in the max-titer protocol for ExpiCHO [[Thermo Fisher Scientific, A29113](https://documents.thermofisher.com/TFS-Assets/LSG/manuals/MAN0014337_expicho_expression_system_UG.pdf)]). The same goes for _E._ _coli_ — you’ll need a specific incubator/shaker for plate growth, and perhaps an additional incubator/shaker for induction temperature changes. All of that is to say — map out everything you'll need before committing to an approach.

You’ll also want a quick, quantitative readout for protein expression levels. See "[Expression detection](#expression-detection-choose-a-tag-to-quantify-expression)" for more information.

::::::details

:::::summary
**Anecdote: Establish plate-based growth early to ensure efficiency**
:::::

Over five months, we designed 78 constructs to test across five expression systems. We performed all of our tests in series. We bounced between expression systems, trying some only after hitting a failure point with another, and continuously made new designs. It was clumsy, slow, and inefficient.

We started our testing in large format (flask growth), and later transitioned to plate-based growth for a few expression systems, but that lagged behind due to the time required to set up infrastructure (multiple shakers per incubator for mammalian systems, two incubators to express at different temperatures). However, once our infrastructure was in place, transitioning from flask to plate growth was straightforward. The ExpiCHO and Expi293Pro expression kits include conditions for plate-format growth, and these worked on the first attempt. We were then able to test all the constructs we'd spent the past months testing in a single 24-well plate, shifting our time spent from months to less than two weeks. When we compared constructs that expressed well in flasks to their plate-format performance, all flask-positive hits were also plate-positive ([Figure 1](#flasks-vs-plates)). However, there were some small differences we didn’t anticipate, and expression levels also varied. See "[Verify apparent molecular weight and banding pattern on a gel](#verify-apparent-molecular-weight-and-banding-pattern-on-a-gel)" for more details.

Overall, we would have saved a lot of time if we'd tested all our designs at once. Setting up the infrastructure for high-throughput work is worth the cost, and it pays to do it early.

:::::figure{#flasks-vs-plates align="center" type="image" label="Figure 1"}

::::image{width="100%" alt="Western blots of expression data where bands that are visible from flask expression are also visible from plate expression." src="https://thestacks-01.s3.amazonaws.com/publications/result-protein-expression-guide/media_e01f6844_c16118d897af"}
::::

::::figcaption
**Figure 1.** **Constructs that expressed well in flasks also expressed well in plates.**

Western blots of different constructs expressed in ExpiCHO cells in flask vs. plate format. Note that we analyzed many of these constructs on different blots, on different days, and with different exposure settings. We can't compare the relative abundance of these bands; we can compare only their presence or absence.
::::

:::::

::::::

# Stage 2: Construct design

All your initial information gathering and planning efforts should inform how you design your constructs. Ultimately, you can use what you've learned to determine tag usage, cleavage sites, amino acid boundaries (what your first and last amino acids of the protein are, if you truncate it), and molecular biology elements that will suit your design requirements.

## Consult the literature

If you've identified published structures or high-yield purifications, check how those authors designed their constructs and mimic them as closely as possible. Hopefully, they've reported their exact construct design or deposited their plasmids and sequences in Addgene (or otherwise made them available).

If there's prior data, take it with a bit of skepticism. Most authors don’t provide information like yield per mL of culture or exact codon optimizations. It’s possible they needed to grow 10 L of _E. coli_ to get 1 mg of protein — a situation that might not be suitable for your goals.

::::::details

:::::summary
**Anecdote: Not every construct design is reported, and not all reported designs are useful**
:::::

Unfortunately, we were only occasionally able to gather amino acid boundaries (for UBE2A and PPT1) and sometimes affinity tags (for UBE2A) that were used for published structures of our proteins of interest. Exact construct information wasn't available. We used what we could gather as a guide for our later designs, but ultimately, that information wasn't very impactful.

::::::

## Expression detection: Choose a tag to quantify expression

A tag like HiBiT [](https://doi.org/10.1021/acschembio.7b00549) or split GFP [](https://doi.org/10.1038/nbt1044) lets you quickly and quantitatively determine whether you have the protein you want in your lysate. Put one of these tags on all of your constructs. This allows you to make clear decisions on what worked and what didn’t, and to use information to make decisions about next steps. There aren’t many variables that confound a reading like this, unlike taking lysates all the way through purification, or using Western blots for verification. Use Western blots as a secondary screen for your top candidates to make sure the molecular weight of your expressed protein is what you'd expect, and you aren’t just expressing your tag alone or a degraded or cleaved form of your protein.

::::::details

:::::summary
**Anecdote: It's critical to have a quantitative way to track expression levels**
:::::

The proteins we produced in mammalian systems were secreted, so even our high expressers would be at relatively low concentrations in the media, especially compared to other media components. We therefore used Western blots to detect expression sensitively. Unfortunately, Westerns aren't absolutely quantitative without a standard, which we hadn't set up. Running multiple blots in series compounded uncertainty and made it hard to compare across transfections. Furthermore, Westerns are slow and have a significant labor cost. Overall, Westerns were useful for size verification, but gave us little clarity on whether a construct was producing enough protein or which constructs really outperformed others.

Partway through the project, we set up an automated enzyme-linked immunosorbent assay (ELISA) system [](https://doi.org/10.57844/arcadia-n03x-vb23). We used an anti-His detection antibody, but the expression media contributed significant background signal, inflating results and creating nonlinear relationships. This ELISA was still more quantitative and higher-throughput than Western blotting; we could use it for relative comparisons between constructs, but media interference complicated our results, and we had no indication of projected yields. Going forward, we'd keep the ELISA but switch to a tag less prone to media background, like a FLAG tag.

:::::div{.info-box}
Our **ELISA data** is on [Zenodo](https://doi.org/10.5281/zenodo.23021504).
:::::

Not having a quantitative form of detection was one of the greatest hindrances to our progress. In addition, we switched detection methods and were actively developing these during our campaign. This meant that we had to reprocess or remake many old samples to get comparable data.

We determined that it's critical to establish a quantitative detection method before starting your campaign and to design constructs around this.

::::::

::::::div{.info-box}
**Weigh in!**

We tested the Jess automated Western blot system for protein detection. It was easy to use, required very little sample, and gave quantitative data we trusted more than manual Westerns.

We're curious whether others have used the Jess and whether they find it worth the cost.
::::::

## Protein domains and solubility: Choose amino acid boundaries, surface mutations, and solubility tags

Identify which parts of your protein are required for your downstream use. If there are floppy ends that are involved in signaling within the cell, generate a construct with those ends removed to help with expression and solubility. If there are surface cysteines, make sure they aren’t involved in disulfide interactions, and if they aren’t, design one construct with those cysteines mutated to serines [](https://doi.org/10.1073/pnas.81.18.5662) [](https://doi.org/10.1155/2017/4817376). If you're concerned about protein solubility, make a few designs with different solubility tags.

## Protein expression levels and localization: Choose a vector, promoter, secretion tags, and codon optimization

Certain construct elements can enhance protein expression. Vector choice, promoter usage, and codon optimization can all significantly impact protein expression [](https://doi.org/10.1126/science.1170160) [](https://doi.org/10.1186/1475-2859-12-26) [](https://doi.org/10.3389/fmicb.2014.00172) [](https://doi.org/10.1371/annotation/039deb02-bbe7-406c-a876-341cc4f3fefa) [](https://doi.org/10.1002/pro.2439). Determine whether your protein needs to be secreted or localized to a specific compartment, and identify which tags might be required [](https://doi.org/10.1021/acssynbio.3c00157) [](https://doi.org/10.3389/fbioe.2021.797334). Overall, what works best will depend on your protein of interest, so choose a few of these variables to explore in your initial screen. These are also variables that can be impactful to tweak later in a campaign if you find good candidate expressers and want to maximize yield.

## Protein purification: Choose an affinity tag and cleavage sites

Consider what your downstream assay requirements are and let that guide you on what tags you need for purification [](https://doi.org/10.1007/978-1-0716-5190-2_13) [](https://doi.org/10.1002/biot.201100155). You might need a small tag if you hope to do a simple purification, leaving the tag on for downstream assays without impacting activity. Conversely, you might want to bind your protein to beads for a downstream assay and therefore need a tag that binds very tightly and specifically. If you choose to [cleave any tags](https://www.sigmaaldrich.com/US/en/technical-documents/technical-article/protein-biology/protein-purification/biotin-tag-protein-purification-proteases?srsltid=AU7gw4VpLUBLMmMBePcDArBHXLW6PVj9HTjxWXmpXaWBlvGAuXA75Z4C), make sure you have a way to separate cleaved protein from the uncleaved protein and protease in your purification.

## Putting it all together

The order of elements matters in your constructs. Envision your potential purification process and downstream assay when you combine all your elements into a construct ([Figure 2](#Construct-design)). Know that a secretion tag will be cleaved in a mammalian system before you can use an affinity tag to purify it — make sure your affinity tag is C-terminal to the secretion tag so the affinity tag doesn't get lopped off with it. Place cleavage sites at strategic locations — make sure your protein of interest still has the elements you might need after cleavage for purification, bead binding, or assay detection. Pay attention to any tails your proteases may leave (and whether they're C-terminal or N-terminal). If degradation is a problem, you can place different affinity tags on the N- and C-termini to ensure you only collect your full-length construct. Make sure you add a start and stop codon in the appropriate places. Include Gly-Ser linkers of a few repeats between each element [](https://doi.org/10.1093/protein/gzu043). Planning for all of these things will save you time in the long run. 

::::::figure{#Construct-design align="center" type="image" label="Figure 2"}

:::::image{width="89%" alt="Schematics of construct designs where different domains and their ordering are illustrated for different expression purposes." src="https://thestacks-01.s3.amazonaws.com/publications/result-protein-expression-guide/media_dc01a5e9_1c6fb52e8c0d"}
:::::

:::::figcaption
**Figure 2.** **Theoretical construct designs for different use cases.**

We designed construct 1 for a protein that might have solubility issues. We include HiBiT for detection, SUMO for solubility improvement, and 6×-His for purification. We can use the 3C site to separate these tags from the protein of interest (POI). HiBiT is on the N-terminus for maximal accessibility.

We designed construct 2 for secretion in mammalian cells and present two options that vary in the location of the HiBiT tag. The HiBiT tag will be exposed on the N-terminus if the secretion tag is properly cleaved during processing; however, if it isn't, there might be detection issues. In that case, our other construct has HiBiT on the C-terminus.

We designed construct 3 to make a protein that we can process to high purity. We added multiple affinity tags on the N- and C-termini to remove potential N- and C-terminal degradation products, with cut sites flanking the protein of interest on either side. We chose thrombin for our C-terminal site because it will leave the shortest tail (four amino acids) after cleavage.

SUMO: small ubiquitin-like modifier, TEV: tobacco etch virus, MBP: maltose-binding protein, Sec.: secretion tag.
:::::

::::::

::::::details

:::::summary
**Anecdote: Extra time spent on construct design is time well spent**
:::::

Our general construct design was: Start–secretion tag–FLAG-tag–His-tag–TEV–protein-of-interest–stop. For one protein (DNASE2), we inverted our affinity tags and cleavage sites and put them on the C-terminus, since, based on predicted structures (AF-O00115-F1), we thought the C-terminus would be more accessible.

We had a few constructs that failed due to poor design. We designed a set of constructs for mammalian expression that had the affinity tag N-terminal to the secretion tag, so we could neither detect their expression nor purify them. We had another set where we didn’t add start codons in the appropriate place because we didn’t realize the impact of extra added elements. We advise generating a checklist of considerations to verify for each set of construct designs.

Going through the process of construct design, ordering, and waiting for them to arrive throughout multiple iterations took as long (if not longer) than our expression testing did. This is why we advise spending extra time on high-quality design and designing/ordering everything in parallel.

::::::

::::::div{.info-box}
**Weigh in!**

We haven't used structure-prediction tools to predict solubility or problematic structural features the way structural biologists might. We also didn’t explore different promoters or construct elements outside the protein-coding region. We'd love to hear from readers about what tools and approaches they rely on here.
::::::

# Stage 3: Screening

When you do your actual expression, there are a few things to keep in mind. You’ll approach this as a screen, testing all construct designs simultaneously ([Figure 3](#screen-setup)). You’ll also likely want to test a few experimental conditions alongside your construct designs. We detail the approach here.

::::::figure{#screen-setup align="right" type="image" label="Figure 3"}

:::::image{width="52%" alt="Illustration of a 24-well plate setup where four construct design variables are tested combinatorially." src="https://thestacks-01.s3.amazonaws.com/publications/result-protein-expression-guide/media_9220833b_b13767434641"}
:::::

:::::figcaption
**Figure 3.** **Hypothetical mini-screen setup.**

This hypothetical screen tests combinations of four variables, with a total of 24 distinct constructs. Here, we select two solubility tags, three affinity tags, two amino acid boundaries (AA1, AA2), and two codon optimizations for a protein of interest (C1, C2).
:::::

::::::

## Condition optimization

Once you have constructs in hand and have chosen an expression system or two, there are additional variables you can explore. A non-exhaustive list [](https://doi.org/10.1007/s00253-020-10454-w) [](https://doi.org/10.1007/s00253-024-13315-y):

* Expression temperature
* Strain (within an expression system)
* Media and additives
* Induction conditions (for inducible systems)
* Transfection conditions
* Expression duration

As noted in the following anecdote, we don't have a definitive recommendation on which of these may be most important. Rather, we suggest starting with conditions that seem logical for your protein of interest and testing only one or two variations max. It's probably a better idea to dive into condition optimization later, once you've settled on some of the more fundamental expression parameters, like construct design.

::::::details

:::::summary
**Anecdote: Pick baseline expression conditions, keep them consistent, and vary only a few**
:::::

We prioritized variables that were easy to screen: We varied expression temperature and duration, but didn't touch transfection conditions in our mammalian systems.

In our collection timing screening, we noticed that plate-format cultures took longer to reach our collection threshold (below 75% viability): Flasks typically reached this in approximately seven days, while plates took more than 10 days. We did some cursory investigation, but didn't find an explanation before pausing the project.

We also noted variability in expression level across transfections — for mammalian cells, expression is more dependent on cell health and collection timing than other systems. Testing all constructs at once would reduce this variability, though it creates its own challenges if everything needs to be collected simultaneously.

We learned that expression conditions, especially timing, are important factors to keep in mind during a test expression. Other expression conditions are more costly or cumbersome to test (e.g., different temperatures if you don’t already have the infrastructure established, induction conditions, etc.). We don’t have a clear answer on what to prioritize in a screen: This can easily balloon if you test every construct at just a few different expression conditions. Perhaps these conditions are more of a refinement step once you find candidates that seem promising. We suspect this also varies by protein.

::::::

::::::div{.info-box}
We'd be curious how others approach this optimization, or how you think about optimizing design choices versus expression conditions. We’d also like to hear how people manage variability in expression systems like mammalian cells, especially when it comes to collection timing.
::::::

## Use a tiered approach for expression evaluation

Start with a broad expression screen across all of your conditions, using HiBiT or whatever rapid system you have to quantify soluble protein yield. Then take your top five to six hits and run a gel or Western to confirm the molecular weight of the expressed protein is correct. Finally, you’ll want to ensure your protein is actually functional and folded — have a plan in place to assay both.

::::::details

:::::summary
**Anecdote: Check that your protein appears intact and folded after your initial expression attempts**
:::::

### Verify apparent molecular weight and banding pattern on a gel

Since we hadn't established a HiBiT system, we used Western blotting for all evaluations. This was inefficient, but it led us to an important insight. Many of our proteins are heavily glycosylated, so we expected smearing or multiple bands. What we didn't expect was that bands shifted in apparent molecular weight depending on collection timing ([Figure 4](#Migration-variation)). We hypothesized that this was due to changes in glycosylation over time, but never further investigated this shift. We highlight this as a reason to always verify migration on a gel once you've identified your top candidates (but not on every sample, because this would be inefficient).

If your band doesn’t appear at the expected size, this could be a result of post-translational modification, errant cleavage, or degradation. Potential post-translational modifications might be worth further investigation, especially if they're relevant to your protein's activity. Cleavage and degradation are likely artifacts of experimental setup that you can resolve through condition optimization or alternate construct designs.

:::::figure{#Migration-variation align="right" type="image" label="Figure 4"}

::::image{width="42%" alt="Western blots of expression data over time, where bands migrate to larger or smaller species depending on when samples were collected." src="https://thestacks-01.s3.amazonaws.com/publications/result-protein-expression-guide/media_742ef175_c16118d897af"}
::::

::::figcaption
**Figure 4.** **We saw migration changes in both DNASE2 and PPT1 depending on our collection timing.**

We expressed these proteins in CHO cells in 24-well plate format. t1, t2, and t3 are 7, 10, and 14 days post-transfection. We pulled these samples consecutively from the same culture.  
::::

:::::

### Confirm protein folding

Early in the project, we evaluated the eProtein Discovery tool from Nuclera, which screens up to 192 conditions — combining tags, cell-free mixes, and additives to identify which support soluble protein expression. Initial results were promising: It identified conditions that appeared to yield soluble versions of each of our proteins. When we purified those samples, however, none of the protein was properly folded (as evaluated by a SYPRO Orange thermal melt assay [[Figure 5](#TM-plots)]). We therefore abandoned it as a viable expression method. This highlighted the importance of validating protein folding or activity before committing to an expression approach.

:::::figure{#TM-plots align="center" type="image" label="Figure 5"}

::::image{width="100%" alt="Plots of melting temperature data where there is a clear transition point for DNASE2 from CHO cells, but none of the cell-free attempts produced proteins." src="https://thestacks-01.s3.amazonaws.com/publications/result-protein-expression-guide/media_07a070a4_c16118d897af"}
::::

::::figcaption
**Figure 5.** **SYPRO Orange melting assay data from three proteins we produced using cell-free methods, compared to DNASE2 we generated in CHO cells.**

We don't see a transition point for melting in the proteins we purified from cell-free expression, indicating that the proteins are likely aggregated or unfolded. Our positive control protein from Chinese hamster ovary (CHO) cells for DNASE2 appears to be folded. We ran each sample in duplicate. Note that our proteins did undergo different purification processes between CHO and cell-free systems.
::::

:::::

::::::

## Assay your media and cells, or lysate and lysate supernatant

There's an important distinction between expression in total lysate and expression in soluble lysate. Most of the time, only the soluble fraction is actually purifiable, but assaying both can be informative if you encounter global solubility issues ([Figure 6](#troubleshooting-flowchart)). Insoluble-but-expressed protein points to potentially tractable solubility problems (lysis conditions, solubility tags). No expression at all points to more fundamental issues: codon optimization, plasmid design, or expression system choice. Expression in the cell, but no secretion in the media points to an issue with your secretion tag and suggests you should explore other tags.

::::::figure{#troubleshooting-flowchart align="center" type="image" label="Figure 6"}

:::::image{width="89%" alt="Flowchart of a decision-making process where you modify different aspects of your approach depending on what cellular fraction your protein is in." src="https://thestacks-01.s3.amazonaws.com/publications/result-protein-expression-guide/media_518866ac_c16118d897af"}
:::::

:::::figcaption
**Figure 6.** **If your protein isn’t where you expect it to be, assay other fractions.**

Check other fractions to determine how to troubleshoot or modify your constructs.
:::::

::::::

::::::details

:::::summary
**Anecdote: A protein may be expressed, but not soluble or secreted**
:::::

Our insect cells showed no secreted protein in the media, but assaying the cells directly showed that all four proteins were expressed. Had we stopped at assaying the media, we would have written off insect cells entirely. Instead, with more time, we'd have explored different secretion tags. Similarly, three of our four proteins expressed in _E. coli_ but were completely insoluble. Assaying total lysate would have looked promising, but unfortunately, there was nothing purifiable in the soluble fraction. Checking both was essential for diagnosing what was actually happening.

::::::

# Knowing when to stop

Successful expression means generating sufficient protein of high enough quality for your downstream requirements once you scale up. Make sure you know your goals for quantity and quality. Keep in mind that every downstream process (like a purification) loses material, so adjust accordingly for what your actual needs will be.

Be aware that scale changes can affect expression levels, and use that as an additional criterion to know you’ve succeeded. Use a benchmark protein like GFP to confirm your system is working at your screening scale, and then compare screening scale to production scale (if they differ).

If your initial designs are completely unsuccessful, go back to the drawing board on your expression system. If you see an encouraging hint of protein, perhaps you can optimize your variables in a second round of screening.

Regardless of the ultimate outcome, following the process we've outlined should allow you to test at least 24 conditions in the span of a month, which is significantly faster than most conventional campaigns. Even if you're unsuccessful, failing fast is valuable.

::::::details

:::::summary
**Anecdote: Know when to stop**
:::::

Without a clear quantitative readout, we had no reliable way to know when we'd found a condition that expressed enough protein for our intended use. We used purification yields as a proxy for this measurement, which kept coming back lower than we hoped. When we examined our purification efficiency, we found the process was losing a lot of protein. We'd been searching for better expression conditions when we may have had enough expression already, and really just needed to optimize our purification approach (which we won’t discuss here, but Structural Genomics Consortium et al. [2008] [](https://doi.org/10.1038/nmeth.f.202) is a good reference for troubleshooting). In fact, our full-length constructs, which were some of the first designs we tried, turned out to be among the top expressers for three of four proteins.

We could have saved significant time if we'd had a more quantitative expression readout and established sufficiency thresholds for expression and purification yield from the beginning.

::::::

## Pub preparation

We used Claude (Opus 5.5, as well as Opus 5 and Sonnet 5) to suggest wording ideas, write text, and expand on summary text that we provided. Claude also suggested papers on relevant science, we did further reading, and we cited some of this literature. We used Claude (Sonnet 5) to generate first drafts of the plots in [Figure 5](#TM-plots) from the raw data.

We reviewed all AI-assisted content and take responsibility for its accuracy and integrity.

We created or polished all figures in Adobe Illustrator.

# Conclusion

Our recent protein expression campaign took five months, 78 constructs, and five expression systems before we could say we'd successfully expressed a folded version of each protein — and even then, we paused without knowing whether we had enough active material for the assays we'd planned. We ran everything in series: Design constructs, test them, wait, then decide what to try next. We brought new expression systems online one at a time, usually only after we'd exhausted the previous one, and we never set up a truly quantitative expression readout, so we couldn't distinguish a real improvement from transfection-to-transfection noise. Only 12–15 of 78 constructs gave us detectable protein, and some of our best expressers were the full-length designs we built first. Most of those five months bought us information we could have had in the first few weeks.

The roadmap we've laid out here is our attempt to compress the protein expression timeline by investing in strategy upfront. If we'd defined our success criteria at the start, put a quantitative detection tag on every construct, and run 24 conditions in parallel across two deliberately different expression systems, we think we could have reached the same decision point in roughly a month — and it would be easier to decide next steps, since we'd have known whether "not enough protein" meant an expression problem or a purification problem.

::::::div{.info-box}
**Weigh in!**

We haven't run this roadmap in its current form, so we're offering it as a hypothesis rather than a validated protocol. We'd love to hear how you structure your own campaigns, where you'd break from what we've proposed, and whether failing fast is realistic in practice, or whether the setup cost of screening infrastructure eats the time you'd save.
::::::

# Methods

Here, we capture the methodology we used to generate the data we've shared on [Zenodo](https://doi.org/10.5281/zenodo.23021504) and used in a few example figures based on these four particular proteins. Make sure to check what we actually suggest that you try elsewhere in the pub, since we recommend various improvements on what we originally did.

## Construct design

We ordered plasmids to express and purify DNASE2 ([O00115](https://www.uniprot.org/uniprotkb/O00115/entry)), PPT1 ([P50897](https://www.uniprot.org/uniprotkb/P50897/entry)), ARSG ([Q96EG1](https://www.uniprot.org/uniprotkb/Q96EG1/entry)), and UBE2A ([P49459](https://www.uniprot.org/uniprotkb/P49459/entry)) directly from Twist or GenScript. We used Twist-generated codon optimizations specific to our host cell lines for each construct.

::::::div{.info-box}
Our **plasmid maps** are on [Zenodo](https://doi.org/10.5281/zenodo.23021504).
::::::

## Protein expression

### _E._ _coli_

We transformed constructs for _E._ _coli_ expression into BL21(DE3), T7, or T7 SHuffle lines. We picked single colonies and used them to grow starter cultures overnight. We diluted starter cultures at least 1:100 into growth cultures of LB or TB and grew to an OD<sub>600</sub> of 0.8, before growing for isopropyl β-D-1-thiogalactopyranoside (IPTG) induction at 16 °C overnight or 37 °C for 3–5 h. We harvested cells, normalized to match OD, spun them down at 3,000 × g for 10 min at 4 °C, and resuspended in cold buffer A (300 mM NaCl, 20 mM NaPO<sub>4</sub>, 20 mM imidazole, pH 7.4) containing 1× BugBuster. We rotated cells for 30 min to lyse at 4 °C, then spun to clarify for 30 min at 20,000 × g and 4 °C. We analyzed total lysates, supernatants, and pellets via SDS-PAGE.

In one instance, we used purified yield as a proxy for soluble protein yield. In this instance, we incubated our soluble lysates with 35 µL HisPur resin (Thermo Fisher Scientific 88221), washed twice with buffer A (300 mM NaCl, 20 mM NaPO<sub>4</sub>, 20 mM imidazole, pH 7.4), and eluted with buffer B (300 mM NaCl, 20 mM NaPO<sub>4</sub>, 500 mM imidazole, pH 7.4). We analyzed elution fractions via SDS-PAGE.

### Expi293 PRO and ExpiCHO cells

We maintained cultures and transfected according to the [Expi293 PRO](https://documents.thermofisher.com/TFS-Assets/LSG/manuals/MAN1001709-Expi293PROExpressionSystem-UG.pdf) and [ExpiCHO](https://documents.thermofisher.com/TFS-Assets/LSG/manuals/MAN0014337_expicho_expression_system_UG.pdf) kit protocols, using a ratio of 0.75 µg of DNA per mL of culture. We used the max-titer protocols for the ExpiCHO cultures. We harvested cultures when cell viability dropped below 75%, and separated media from cells using centrifugation (3,000 × g, 10 min), followed by 0.45 µm filtration. We either analyzed media immediately using Western blotting or flash-froze and stored it at −80 °C until it was time for analysis. Prior to running Westerns, we lysed cells by direct incubation in Laemmli sample buffer at 95 °C for 10 min, then stored at −20 °C until ready to load onto the gel.

### HT1080 cells

We tested ARSG expression in HT1080 cells (ATCC CCL-121). We performed transfection using Lipofectamine LTX (Thermo Fisher Scientific A12621) as the transfection reagent. We followed the procedure in the [manufacturer's instructions](https://documents.thermofisher.com/TFS-Assets/LSG/manuals/LipofectamineLTX_PLUS_Reag_protocol.pdf).

### Insect cells

We grew Sf9 cells (Gibco 11496015) in suspension according to the [cell line manual](https://documents.thermofisher.com/TFS-Assets/LSG/manuals/Sf9_SFM_II_SFM_III_man.pdf). We transfected Sf9 cells to generate P0 virus using Insect GeneJuice (Novagen 71259) according to the [reagent protocol](https://www.sigmaaldrich.com/deepweb/assets/sigmaaldrich/product/documents/322/012/tb359-user-protocol.pdf?srsltid=AfmBOoqYhbtPMx4CT5Tc4rpTJjWaC2rohMSB8f_JbJJVyNWKvRnw6ifd), except we included ProGreen reagent (AB Vector A1) in our DNA mixture (at a ratio of 0.5 µL ProGreen per 1 µL GeneJuice) to allow for viral expression tracking via fluorescence. We analyzed harvested media and respective cells for expression via Western blot. We separated media from cells via a 10 min spin at 3,000 × g, followed by 0.45 µm filtration. Prior to running Westerns, we lysed cells by direct incubation in Laemmli sample buffer at 95 °C for 10 min and stored at −20 °C until ready to load on the gel.

### Cell-free

We used the Nuclera eProtein Discovery system during a demo with the company. We followed all protocols for expression screening and scale-up according to the manufacturer. 

We also used a HeLa cell extract kit for cell-free expression of the top construct designs from our Nuclera demo. We followed the [kit protocol](https://documents.thermofisher.com/TFS-Assets/LSG/manuals/MAN0011755_1Step_Human_Coupled_IVT_DNA_UG.pdf) (Thermo Fisher Scientific 88882).

## Protein expression detection

### Western blot

We analyzed media samples we collected directly from expression cultures (without concentration), typically loading the max volume possible (45 µL) per well. In a few cases, due to gel constraints, we loaded less, but always loaded the same volume of each sample within a single gel to enable direct comparison of expression levels within a blot.

We ran Tris–glycine sodium dodecyl sulfate–polyacrylamide gel electrophoresis (SDS-PAGE) gels (BioRad 4561094) for protein separation and transferred proteins onto nitrocellulose using a TransBlot Turbo (BioRad 1704150EDU). We blocked membranes in 1% casein in Tris-buffered saline (TBS) (Rockland MB-082-0100) for 1 h at room temperature (RT), then diluted primary antibodies in the blocking buffer and incubated overnight at 4 °C. We washed membranes three times in TBS with 0.1% Tween 20 (TBS-T), incubated with secondary antibody in blocking buffer for 1 h at RT, then washed three times in TBS-T. We used an ECL detection kit (Advansta K-12045-D20) and imaged blots using an Azure 600 gel imaging system (Azure AZI600-01). We varied exposure time between blots to maximize our contrast and detection, so we can't quantitatively compare bands on separate blots.

For His antibody detection, we diluted our primary antibody 1:1,000 (mouse 6×-His monoclonal; Invitrogen MA1-21315) and anti-mouse secondary 1:5,000 (goat anti-mouse IgG; Advansta R-05071-500). We also used ARSG (R\&D Systems AF4600) at 1:333, Myc (Thermo Fisher Scientific MA1-980) at 1:1,000, and anti-sheep secondary (Thermo Fisher Scientific A16041) at 1:5,000.

::::::div{.info-box}
All our **Western blots and protein expression data** are on [Zenodo](https://doi.org/10.5281/zenodo.23021504).
::::::

### ELISA

We loaded media samples directly into an ELISA to detect His-tagged protein using a protocol we previously automated for the Opentrons OT-2 liquid handler [](https://doi.org/10.57844/arcadia-n03x-vb23). Our blank sample was fresh media. When we made dilutions to assess background signal in media samples, we diluted these samples in TBS and used TBS as a blank.

::::::div{.info-box}
Our **ELISA data** is on [Zenodo](https://doi.org/10.5281/zenodo.23021504).
::::::

## Protein purification

We only show purifications of proteins that we generated via cell-free expression and CHO expression. For cell-free expression, we followed the manufacturer's protocol to purify our His-tagged proteins directly from our in vitro translation reaction. For CHO expression, we incubated 25 mL of harvested media with 200 µL of Ni-NTA bead slurry (Thermo Fisher Scientific 78605) for 30 min, rotating at 4 °C. We washed beads three times with buffer A (300 mM NaCl, 20 mM NaPO<sub>4</sub>, 20 mM imidazole, pH 7.4) before eluting with buffer B (300 mM NaCl, 20 mM NaPO<sub>4</sub>, 500 mM imidazole, pH 7.4).

## SYPRO Orange assay

We diluted SYPRO Orange dye (5,000× concentrated stock, Thermo Fisher Scientific S6650) to 100× in water, then added it to our purified protein (diluted in buffer B) for final concentrations of 10× SYPRO Orange and 2 µM protein. We added 25 µL of this mixture to each well of a 96-well PCR plate (VWR 82006-664) and sealed the plate using optically clear plate seals (Thermo Fisher Scientific AB-1170). We measured thermal stability in duplicate using an Azure Cielo RT-PCR machine, tracking emission at 560 nm, with a 5 min incubation at 20 °C followed by a ramp to 95 °C with steps of 0.5 °C every 30 s.
