PAINS filters are substructure heuristics, defined by Baell and Holloway, that flag chemotypes prone to giving false-positive signals in biochemical assays. A flag is a warning to investigate further, not a verdict to discard the molecule. Treat every hit as a candidate for orthogonal validation, using implementations built on SMARTS patterns in toolkits like RDKit and scikit-fingerprints.
TL;DR:
- PAINS filters are designed as initial heuristics that flag potential assay-interfering chemotypes, not definitive exclusions, and require orthogonal validation.
- The original 480 rules, organized into three sets with varying strictness, are implemented via SMARTS patterns and should be carefully validated before use.
- Common PAINS chemotypes include rhodanines, quinones, catechols, enones, curcumin-like scaffolds, and isothiazolones, but context determines whether flags are relevant.
- Overflagging is a known issue, especially with filters derived from specific assay types like AlphaScreen, so flags should be interpreted cautiously and with experimental follow-up.
- Proper pipeline integration involves staged filtering, detailed record-keeping, and manual review, with alerts tailored to assay technology and risk tolerance.
Table of Contents
- What Are PAINS Filters and Where Did They Come From?
- How Do PAINS Filters Work Technically?
- What Chemotypes Do PAINS Filters Commonly Flag?
- Do PAINS Filters Overflag Legitimate Compounds?
- How Do You Apply PAINS Filters in a Screening Pipeline?
- How Should You Interpret a PAINS Flag Experimentally?
- How Does a PAINS-Aware Workflow Fit Into Hit-to-Lead Projects?
- Automated Filters Still Need a Chemist's Eye
- Get PAINS-Aware Screening Built Into Your Pipeline
- Where to Go Deeper on PAINS Filters
- Sources
- FAQ
What Are PAINS Filters and Where Did They Come From?
Jonathan Baell and Georgina Holloway published the foundational PAINS paper in the Journal of Medicinal Chemistry in 2010 after analyzing several hundred thousand screening results from AlphaScreen assays. They noticed the same chemical motifs kept appearing as hits across dozens of unrelated targets. That pattern is the signature of a "frequent hitter," a compound reactive or interfering enough to trip an assay regardless of genuine target engagement.
The original PAINS paper doesn't just describe the problem. It delivers the fix: 480 substructure rules, organized and encoded in Sybyl Line Notation, packaged with supporting tables (commonly cited as S6 through S8 in the supporting information) that document each rule's derivation and hit rate. Those tables remain the canonical reference when you need to trace a flag back to its source data rather than trust a secondhand summary.
The concept didn't stay static. Researchers have spent over a decade stress-testing it. A widely cited 2017 review, "Seven Year Itch," revisited the original filters and argued they remain useful triage tools but get misapplied when treated as absolute exclusion criteria. Later evaluation work, including analysis published through PubMed Central, documented cases where PAINS-flagged molecules were validated and advanced anyway once researchers ran the right counterscreens. The lesson from a decade of follow-up literature is consistent: the filters work as intended when used as a first-pass alert layered into a broader triage workflow, not as a standalone gatekeeper.
How Do PAINS Filters Work Technically?
The 480 original rules split into three sets, commonly labeled A, B, and C, based on how many compounds in the training data each substructure matched and how confident the derivation was. Set A rules tend to be the most restrictive and best supported by data. Set C rules cast a wider net and carry a higher risk of catching legitimate chemical matter. Picking a set is really picking a risk tolerance: A for conservative triage where you don't want to lose real hits, C when you're scrubbing a massive library and can afford to be aggressive about cutting noise.

Encoding matters more than most researchers realize. Baell and Holloway wrote the original rules in Sybyl Line Notation, a format tied to Tripos software that most modern pipelines don't use directly. Converting SLN to SMARTS, the pattern language most cheminformatics toolkits expect, has been done by several groups over the years, including a widely circulated conversion by Rajarshi Guha. Those conversions were not perfect on the first pass. Optibrium's technical notes on PAINS filters walk through where translation ambiguity crept in and why validating a converted rule set against known positives is worth the hour it takes before you trust it in production.
On the implementation side, RDKit ships PAINS SMARTS as part of its filter catalog, letting you run substructure matching directly against a molecule set. The scikit-fingerprints library wraps this into a PAINSFilter class with parameters worth knowing: variant (A, B, C, or all), allow_one_violation (a boolean that tolerates a single rule match before flagging), return_type (whether you get a filtered list or a boolean indicator array), and n_jobs for parallelizing across large libraries.
What Chemotypes Do PAINS Filters Commonly Flag?
A handful of scaffolds account for a disproportionate share of PAINS flags across screening decks, and each earns its reputation through a distinct mechanism rather than a vague "reactive" label.
- Rhodanines: the thiazolidinone core reacts covalently with cysteine residues and gives false positives across unrelated cysteine-containing targets.
- Quinones: redox cycling generates reactive oxygen species inside the assay well, corrupting readouts that depend on redox-sensitive reporters.
- Catechols: oxidize readily to reactive quinone intermediates and chelate metal ions present in many enzyme active sites.
- Enones (Michael acceptors): form covalent adducts with nucleophilic residues, producing apparent inhibition that has nothing to do with selective binding.
- Curcumin-like scaffolds: combine multiple liabilities at once, including redox activity, metal chelation, and aggregation, on top of notoriously poor physicochemical properties.
- Isothiazolones: highly electrophilic and prone to nonspecific covalent reactivity across cysteine-rich proteins.
The PAINS overview on Wikipedia collects these motifs alongside the supplementary tables where they were first characterized. Context still decides the outcome. Rhodanine cores appear in a handful of approved drugs, and curcumin itself remains a legitimate research probe in specific assay formats. A flag tells you to look closer at the assay technology and the specific target class, not to delete the row from your spreadsheet.
Do PAINS Filters Overflag Legitimate Compounds?
Yes, and the evidence for it is not marginal. Evaluation work from groups including Chakravorty and colleagues tested PAINS rules against large corporate screening collections, including GSK's internal data, and found several filters that didn't correlate strongly with actual promiscuity. Some rules built on a narrow original training set simply don't generalize to every chemical library or every assay format.
The honest position, echoed across expert commentary on PAINS, is that there is no clean shortcut for separating true frequent hitters from legitimate leads using structure alone. Flags require experimental follow-up before you can trust them either way.
Assay technology is the variable most teams underweight. PAINS rules were derived largely from AlphaScreen data, a bead-based proximity assay sensitive to specific interference mechanisms like redox activity and aggregation. A compound that tanks an AlphaScreen readout for chemical reasons may behave perfectly well in a fluorescence polarization assay or a biophysical binding measurement that isn't vulnerable to the same artifact. Filters built on one detection technology don't automatically transfer their predictive value to another.
The overflagging problem in numbers: reviewers analyzing large screening decks have repeatedly found that a meaningful share of PAINS-flagged hits show no promiscuous behavior once tested with an orthogonal method, which is exactly why the Seven Year Itch review frames the filters as a starting point for triage rather than a final judgment.
Operationally, this means three things for anyone running a screening pipeline. First, annotate every flag rather than silently dropping the row, so a chemist can see which rule triggered and decide case-by-case. Second, weight your prioritization by assay technology; a flag from a redox-sensitive motif matters more in a bead-based assay than in an orthogonal biophysical one. Third, resist categorical exclusion rules in your pipeline configuration. A hard cutoff that removes anything with one PAINS hit will quietly bury real leads alongside the noise, and you'll never know which ones you lost.
How Do You Apply PAINS Filters in a Screening Pipeline?
Sequencing matters more than most published workflows admit. Running PAINS filters too early, before basic sanity checks, wastes compute on molecules that would have been cut anyway. Running them too late means chemists waste review time on compounds that never should have reached their desk.
- Basic chemotype and physicochemical filters first. Strip out molecules that violate elementary rules, molecular weight extremes, reactive functional groups unrelated to PAINS, and known toxicophores, before spending cycles on substructure matching.
- Apply PAINS filters as the next gate. Run the substructure sweep against whichever variant matches your risk tolerance, tagging rather than deleting matches at this stage.
- Cross-reference against an exception list. Maintain a whitelist of scaffolds your team has validated before, curcumin analogs in a specific redox-tolerant assay, rhodanine derivatives with established SAR, so repeat false alarms don't reconsume review time every cycle.
- Route flagged molecules to manual review. A medicinal chemist looks at the specific SMARTS match, the assay context, and the compound's broader profile before deciding whether it proceeds, gets deprioritized, or goes straight to a counterscreen.
Choosing between variant A, B, C, or a full sweep across all of them depends on how much you're willing to lose. Set A, being the most data-supported and restrictive, is the safer default for a smaller, high-value library where losing a real hit is costly. Set C or a full sweep fits better for scrubbing a massive vendor library where compute is cheap and false negatives from over-permissive filtering matter more than losing a few borderline compounds.
In scikit-fingerprints, that choice is a single parameter: PAINSFilter(variant="A") versus variant="all". The allow_one_violation flag is worth documenting explicitly in your pipeline config, since tolerating a single rule match before flagging can materially change how many compounds survive the sweep. For libraries running into the hundreds of thousands of compounds, the n_jobs parameter for parallelization isn't optional; single-threaded SMARTS matching against that volume will bottleneck your entire triage step. Full pipeline placement, including where PAINS filtering sits relative to pharmacophore and docking steps, is covered in more depth in a broader virtual screening workflow guide.
Record-keeping is the step teams skip and regret later. Log which specific SMARTS pattern triggered for each molecule, not just a pass/fail flag, and export those condition indicators alongside your filtered dataset. Six months later, when someone asks why a compound got dropped, "it failed a PAINS filter" is not an answer. "It matched the quinone substructure rule under variant A" is.
Pro Tip: Version your SMARTS rule file and record the toolkit version alongside it. RDKit and scikit-fingerprints occasionally update their filter catalogs, and a compound that passes today under one library version might flag differently after an update if you can't trace which rule set you actually ran.
How Should You Interpret a PAINS Flag Experimentally?
A PAINS flag is a hypothesis about interference, not a diagnosis. Confirming or refuting it takes actual bench work, and choosing the right experiment first saves both time and reagents.
- Alternative detection modality: rerun the assay using a technology insensitive to the suspected interference mechanism, switching from a redox-sensitive readout to a biophysical method like surface plasmon resonance if quinone-type reactivity is the concern.
- Counterscreens against unrelated targets: test the compound against a panel of unrelated enzymes; broad activity across the panel signals nonspecific reactivity rather than genuine target engagement.
- Redox and reactivity assays: direct biochemical tests for glutathione reactivity or radical generation can confirm or rule out the mechanism a rhodanine or quinone flag implies.
- Aggregation tests: detergent-based counterscreens (adding a low concentration of Triton X-100 and rerunning the assay) catch compounds whose apparent activity was really colloidal aggregation.
When dozens of hits carry PAINS flags simultaneously, a tiered triage keeps a small team from drowning in follow-up work. Start with the cheapest biochemical counterscreens across the full flagged set, then reserve orthogonal biophysical assays for whatever survives that first cut, and save cell-based context experiments for the final, smallest tier heading toward hit-to-lead. Reagents and reference peptides for counterscreen panels are available through specialized suppliers like Vanta Peptides when your existing screening set doesn't cover the target class you need.
Pro Tip: Feed every counterscreen result back into your exception list, win or lose. A validated rhodanine that cleared three orthogonal assays belongs on a whitelist so the next screening round doesn't waste review time relitigating the same flag.

How Does a PAINS-Aware Workflow Fit Into Hit-to-Lead Projects?
A reproducible PAINS workflow earns its keep when it produces artifacts other people can audit, not just a filtered spreadsheet. Some companies build that workflow into virtual screening and hit-to-lead engagements as a documented step, not an invisible one: a versioned SMARTS rule file, the filtering script that ran against it, exported condition indicators showing exactly which substructure triggered for each flagged molecule, and a recommended counterscreen plan tied to the assay technology in use.
That last piece matters most for teams running large or structurally unusual libraries, where a generic filter variant might over- or under-flag relative to what the assay format can actually tolerate. It also matters for projects that need documentation trails for internal governance or partner due diligence, where "we ran a filter" isn't sufficient and "here is the rule set, the version, and the follow-up rationale" is. Teams building or validating a pipeline for the first time, or scaling an existing one across a much larger compound set, are the ones who benefit most from bringing in dedicated screening support rather than reinventing the tooling internally.
Automated Filters Still Need a Chemist's Eye
Every automated filter, PAINS included, is a triage aid, not a chemistry replacement. The rule set is only as good as its training data, and a decade of follow-up evaluation has shown plenty of edges where it misses or overreaches. Treat every flag as a prompt for a specific experiment, not a final answer, and keep your exception lists honest by updating them when counterscreens prove a scaffold clean.
Reproducibility matters here more than most teams admit. Sharing your SMARTS versions, variant choices, and exception rationale openly, inside a team or across an organization, is what turns a one-off filtering script into an auditable pipeline. Machine learning approaches to promiscuity prediction are maturing and will likely supplement substructure rules within the next few pipeline generations, but they will face the same requirement: transparent validation against real assay outcomes, not just training-set performance.
— Hooman
Get PAINS-Aware Screening Built Into Your Pipeline
Running PAINS filters correctly takes more than dropping a SMARTS file into a script. It takes the right variant choice for your risk tolerance, condition-level logging so every flag is traceable, and a follow-up assay plan matched to your specific detection technology.

Innovabiotech builds that pipeline as part of full virtual screening and hit-to-lead engagements, delivering the filtering scripts, exported condition indicators, and counterscreen recommendations as documented project artifacts rather than a black-box output. If your team is scrubbing a large vendor library, standing up a reproducible screening workflow for the first time, or needs an auditable rationale behind every excluded compound, that's exactly the gap a dedicated bioinformatics partner closes. For structurally complex libraries or projects needing protein-level follow-up beyond hit triage, our protein engineering and design services extend the same rigor into hit-to-lead optimization. Reach out through the Innovabiotech services page to request a project quote and scope your screening pipeline with a team that documents every filtering decision along the way.
Where to Go Deeper on PAINS Filters
Start with the original Baell and Holloway paper, the Seven Year Itch review, and the scikit-fingerprints PAINSFilter documentation for implementation details.
FAQ
What Is a PAINS Filter in Drug Discovery?
A PAINS filter is a substructure rule, originally defined by Baell and Holloway, that flags chemotypes prone to producing false-positive signals in biochemical screening assays.
Should a PAINS Flag Automatically Disqualify a Compound?
No. A flag should trigger orthogonal validation, such as a counterscreen or an alternative assay format, rather than automatic removal from a screening deck.
What Is the Difference Between PAINS Filter Sets A, B, and C?
Set A rules are the most restrictive and best supported by the original training data, while set C casts a wider net and carries a higher risk of flagging legitimate compounds.
Which Tools Can Run PAINS Filters on a Compound Library?
RDKit includes PAINS SMARTS patterns in its filter catalog, and the scikit-fingerprints library offers a dedicated PAINSFilter class with configurable variants and parameters.
Can Innovabiotech Help Build a PAINS-Aware Screening Pipeline?
Yes. Innovabiotech incorporates PAINS filtering with documented rule sets, condition indicators, and follow-up assay plans as part of its virtual screening and hit-to-lead services.
