Home / Science / Molecular and cell biology / Biochemistry / Ion exchange and IEF pH pickerTool #184

Ion exchange pH picker: buffer pH for anion and cation exchange, best separation pH and IEF positions from protein sequences

Paste one or more protein sequences to get each pI and charge curve on one plot, a buffer pH for anion exchange (above the pI) and cation exchange (below it) with the charge there, the pH where your proteins differ most in charge on each resin, and where each one stops on an isoelectric focusing strip. Nothing is uploaded.

Keep it one tap away for everyday use.

Bookmark Ion exchange and IEF pH picker?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Paste
  2. Charge
  3. Buffer pH
  4. IEF strip
Nothing is uploadedWorks offline once open

Proteins

One-letter codes. Spaces, numbers and a final * are ignored; B, Z, J and X are left out of the charge. Up to 12 proteins and 5 MB.

The suggested buffer is this far above the pI for anion exchange and below it for cation exchange. The pH range is where you are willing to run the column: the best separation is searched inside it, and suggestions outside it are flagged.

pKa values (approximate, editable)

These are fibub's own rounded, approximate values of the kind printed in biochemistry books. Real proteins shift them (buried or neighbouring groups), and published sets differ by up to about 0.5, so treat every pI here as a guide to within a few tenths. Type your own to match another tool. All cysteines are counted as free.

What it does

Ion exchange chromatography and isoelectric focusing (IEF) both sort proteins by charge, and charge depends on pH. Paste your protein sequences and this page works out, for each one:

  • The pI, the pH where its net charge is zero, and its charge curve from about pH 2 to 12, all proteins on one plot.
  • A buffer pH for anion exchange (Q or DEAE resin). The resin is positive, so the protein must be negative: the buffer goes a set distance above the pI, one pH unit by default.
  • A buffer pH for cation exchange (S, SP or CM resin), the same distance below the pI, where the protein is positive.
  • The net charge at each suggested pH, so you can see if it will bind firmly (several charges) or weakly (under 2).
  • For two or more proteins, the best pH to separate them on each resin, inside the buffer range you choose.
  • An IEF helper: where each protein stops on a linear pH strip of the range and length you give.

Everything runs in your browser. Your sequences are never uploaded or stored.

How to use it

  1. Paste sequences in one-letter codes, with a FASTA header line (starting with >) before each protein, or open a FASTA file. Press Use the example to try three made-up proteins.
  2. Set the distance from the pI (1 pH unit is a common start; 0.5 gives weaker binding and gentler conditions) and the buffer pH range you are willing to use. Suggestions outside that range are flagged, and the best separation is only searched inside it.
  3. Read the table and the charge plot. Below them, with two or more proteins, the page gives the best pH for each resin and a plot of how well the hardest pair is split at every pH.
  4. For IEF, set the strip’s pH range and length and the smallest gap you can tell apart. The strip picture and table show where each protein focuses, measured from the + end (anode, acidic end).
  5. Download the table or the charge curves as CSV, or the whole report as an image, PDF or Word file.

The pKa values are approximate and editable. Open “pKa values” to type your own. Folded proteins shift their groups’ pKa values, so a real pI can differ from any sequence-based one by a few tenths or more. Treat the results as a starting point and check by experiment.

How the best separation is found

On an anion exchanger only negative charge holds a protein; on a cation exchanger only positive charge. At each buffer pH the page works out every protein’s holding charge (a protein with the wrong sign does not bind and counts as 0), then the smallest difference between any two proteins, the hardest pair to split. The best pH is where that smallest difference is largest. The “good” range is the stretch around it where the difference stays within 90 % of the best.

Worked example

Press Use the example with the default settings (1 pH unit from the pI, buffer pH 4 to 9, strip pH 3 to 11 over 70 mm). The page shows:

Protein pI Anion pH (charge) Cation pH (charge)
1. Acidic example 4.15 5.2 (−7.0) 3.2 (+8.1)
2. Neutral example 6.91 7.9 (−2.4) 5.9 (+3.4)
3. Basic example 10.42 11.4 (−4.0) 9.4 (+4.7)

It flags pH 3.2 and 11.4 and 9.4 as outside the 4 to 9 range: protein 3 is better run on a cation exchanger near pH 9 or lower, and protein 1 on an anion exchanger.

To separate all three, anion exchange is best at pH 9.00 (good from 8.85 to 9.00). There protein 1 carries −18.2, protein 2 carries −6.6 and protein 3 is +6.1 and flows through; the hardest pair, 2 and 3, are 6.59 charges apart, and the difference is still rising at the end of the range. Cation exchange is best at pH 4.30 (good from 4.05 to 4.45): protein 1 is −1.4 and flows through, protein 2 is +8.8 and protein 3 is +17.6; the hardest pair, 1 and 2, are 8.78 apart.

On the 70 mm IEF strip from pH 3 to 11 (1.14 pH units per cm), protein 1 stops 10.1 mm from the + end, protein 2 at 34.2 mm and protein 3 at 65.0 mm.

Tips

  • If a protein carries less than about 2 charges at the suggested pH, move the buffer further from the pI.
  • Check that your protein is stable and soluble at the chosen pH; many proteins precipitate near their pI.
  • Pick a buffer whose own pKa is within about 1 unit of the pH you want; the buffer recipe calculator helps.
  • In IEF, a narrow strip (for example pH 4 to 7) spreads close pI values further apart.

FAQ

Why does my pI differ from another tool’s? Each tool uses its own pKa set. Type the other tool’s values under “pKa values” and the results will match.

Are disulfide bonds counted? No: every cysteine is counted as free. Cysteine’s pKa is high, so this mostly affects the charge above about pH 8.

Does the page consider protein size or charge spread? No. Charge here is per molecule. Two proteins with the same net charge can still separate on a gradient because of where their charges sit.

Is anything saved? No. Nothing is stored or sent anywhere.

Where the numbers come from

  • Net charge and pI come from fibub's protein calculator code (Henderson–Hasselbalch for each ionisable group). Checked against pyteomics (electrochem.charge and pI with the same pKa values typed in): pI and charges agree to better than 1 part in a million.
  • The best-separation scan and the IEF positions are written by fibub (a linear gradient is a straight line from the + end to the − end) and checked against an independent NumPy scan and by hand.
  • pKa values: fibub's own rounded, approximate values of the kind printed in biochemistry books, not copied from any one table, and editable on the page.
  • The three example proteins are made up for this tool; they are not real proteins.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Change log for Ion exchange and IEF pH picker

  1. Add #184 Ion exchange and IEF pH picker Details on GitHub

Every change to fibub

Related tools

Protein parameter calculator #178 Paste a protein sequence or open a FASTA file to get its molecular weight (average and monoisotopic), formula, isoelectric point, net charge at any pH with a charge curve, extinction coefficient at 280 nm and the concentration from an A280 reading. Nothing is uploaded. Buffer recipe calculator #113 Choose a buffer, pH, concentration and volume, and get a recipe: grams to weigh and mL of NaOH or HCl to add, or how much of two forms to mix. Solves the full charge balance with pKa adjusted for temperature and ionic strength, and shows buffer capacity, species and the pH at the temperature you will use it. Peptide mass and fragment ion calculator #179 Digest a protein with trypsin or another enzyme, list every peptide's mass and m/z, match your measured peaks to them (peptide mass fingerprint) with sequence coverage, and get the b, y and a fragment ions of any peptide. Nothing is uploaded. Enzyme kinetics fitter #112 Paste substrate concentrations and initial rates, with or without an inhibitor, and fit Michaelis–Menten, substrate inhibition, Hill, or competitive, uncompetitive, non-competitive and mixed inhibition by non-linear least squares. Get Km, Vmax, Ki, kcat and kcat/Km with errors, a model comparison by AICc, and the Lineweaver–Burk, Eadie–Hofstee and Hanes–Woolf values side by side. Binding curve fitter #114 Paste ligand concentrations with total and non-specific binding, or a titration signal, and fit one site, one site with non-specific binding, two sites, Hill or tight binding with ligand depletion. Get Kd, Bmax and the Hill coefficient with errors, a model comparison by AICc, the Scatchard plot and an IC50 to Ki converter. Stock solution and media recipe scaler #183 Type a recipe once, as final concentrations or amounts per litre, and scale it to any volume or to a 5× or 10× stock. Get the mass to weigh for every solid (from molarity and molar mass), the volume of every stock to add, a warning when a stock is too dilute, and a printable recipe card.