CovaSyn
All Articles
Explainer7 min readJuly 15, 2026

ICH M7 Classification: Class 1 to 5, by Example

ICH M7 classification explained class by class, with the dual (Q)SAR assessment and five real impurities scored live by CovaTox, including NDMA and.

OK

Oliver Kraft

CovaSyn

ICH M7 Classification: Class 1 to 5, by Example

An impurity shows up at 0.08 percent in a registration batch and someone asks which ICH M7 class it is. The guideline gives you five classes and a two-method assessment, but it does not tell you how the two methods behave when they disagree. This article walks the five classes, shows what the dual assessment actually returns, and scores five real impurities with covatox_ich_m7 so you can see where the boundaries sit.

The five ICH M7 classes, in one table

ICH M7(R2) sorts every actual or potential impurity into one of five classes. The class determines the control strategy, not the analytical method.

ClassDefinitionControl consequence
1Known mutagenic carcinogenControl at or below the compound-specific acceptable intake
2Known mutagen, carcinogenic potential unknownControl at or below the acceptable limit (TTC based, unless cohort of concern)
3Alerting structure, unrelated to the API, no mutagenicity dataControl at the TTC limit, or run a bacterial mutagenicity assay to reclassify to 5 or 2
4Alerting structure shared with the API or with a tested, non-mutagenic relativeTreat as non-mutagenic, ICH Q3A/Q3B applies
5No structural alert, or an alert with data showing no mutagenicityTreat as non-mutagenic, ICH Q3A/Q3B applies

The practical split is Class 1/2/3 on one side (mutagenic impurity control, typically the 1.5 ug/day TTC for lifetime exposure) and Class 4/5 on the other (ordinary impurity qualification). Class 3 is where most software output lands, and it is the class that costs money, because it means either an Ames test or a tight specification.

Table of the five ICH M7 classification classes with control consequences, showing that classes 1 to 3 need mutagenic impurity control at the 1.5 ug/day TTC while classes 4 and 5 fall under ICH Q3A/Q3B.
The practical split is class 1, 2 and 3 on the mutagenic impurity side against class 4 and 5 under ordinary impurity qualification. Most software output lands in class 3. Source: ICH M7(R2), Assessment and Control of DNA Reactive (Mutagenic) Impurities, classification scheme as summarised in this article.

The dual assessment: why two methods

ICH M7 asks for two complementary (Q)SAR methodologies for bacterial mutagenicity: one expert rule-based, one statistical. They are not redundant. The rule set encodes mechanism that a model trained on Ames data cannot express defensibly. The statistical model catches structures no rule covers, and it disagrees with the rules often enough to be worth running.

covatox_ich_m7 runs both in one call and returns both results, not a merged verdict:

  • Expert rule component - SMARTS structural alerts, each with the matched atom indices, an evidence level, a mechanism string and a literature reference (Benigni and Bossa 2006, Ashby and Tennant 1988, Toxtree ISS, IARC Monographs).
  • Statistical component - an Ames mutagenicity probability from the CovaTox QSAR model, with a confidence value.

If both are negative, ICH M7 allows Class 5 with no further testing. If either is positive, you are in expert-review territory.

Five impurities, scored live

All five were run through covatox_ich_m7 on 2026-07-25. Values are verbatim tool output.

Impurity (SMILES)Alert firedStatistical Ames scoreConfidenceICH class
NDMA CN(C)N=Onitrosamine (evidence high)0.69050.6282
Ethyl methanesulfonate CCOS(=O)(=O)Calkyl_sulfonate_ester (high)0.72150.6562
Nitrobenzene O=[N+]([O-])c1ccccc14 alerts: aromatic_nitro, nitroso, aromatic_nitroso, n_hydroxy_amine0.16770.8483
Aniline Nc1ccccc1aromatic_amine (high)0.16770.8483
Benzoic acid O=C(O)c1ccccc1none0.06850.4385

Read the table by column, not by row. The class is decided by the combination.

NDMA lands in Class 2 because both methods agree.

The nitrosamine alert fires with evidence level high and the mechanism string "CYP2E1 activation to diazonium ion -> DNA alkylation", referenced to the IARC Monographs. The statistical model returns 0.6905, above threshold. Rule positive plus model positive is the Class 2 pattern.

Aniline lands in Class 3 because the methods disagree.

The aromatic_amine alert fires with the same evidence level, mechanism "Metabolic activation to nitrenium ion -> DNA adduct". The statistical model returns 0.1677, negative. An alert with a negative statistical result and no compound-specific data is exactly the Class 3 definition. This is the useful case: the tool does not upgrade a compound just because a scary functional group is present.

Nitrobenzene fires four alerts and still lands in Class 3.

Alert count is not risk. Three of the four matches come from overlapping SMARTS on the same nitro group. The statistical model returns 0.1677, negative, so the classification logic behaves the same as for aniline.

Benzoic acid is Class 5 on a clean sweep.

No alerts, statistical score 0.0685. That is the "no further testing" outcome ICH M7 permits.

Worked example: a five-impurity batch against an API

covatox_assess_ichm7_batch takes up to 50 impurity SMILES plus the API SMILES and returns the per-impurity classification, a class distribution, the worst-case impurity and a Tanimoto similarity to the API. Run with aspirin (CC(=O)Oc1ccccc1C(=O)O) as the API and the five impurities above:

class_counts:          {1: 0, 2: 2, 3: 2, 4: 0, 5: 1}
highest_risk_impurity: CN(C)N=O
ttc_assessment:        applicable = false, threshold_ug_day = 0.0
                       note: "Class 2 (probable mutagen): TTC not applicable;
                              control/elimination required."
similarity_to_api:     NDMA 0.0645 | EMS 0.0857 | nitrobenzene 0.2121
                       aniline 0.2069 | benzoic acid 0.3571

Two things to take from that output.

First, the similarity column is what feeds a Class 4 argument. Class 4 exists for impurities that carry the *same* alert as the API, where the API's own mutagenicity data covers the impurity. None of these five is structurally close to aspirin (highest Tanimoto 0.357), so Class 4 was never available here. If your impurity is a des-methyl or hydroxy analogue of the API, that is where you look.

Second, the TTC note is a trigger, not a limit. The tool refuses to hand out a numeric threshold for a Class 2 hit. ICH M7 does allow the 1.5 ug/day TTC for most Class 2 impurities at lifetime exposure. But nitrosamines are cohort of concern, where the TTC does not apply and compound-specific limits are required. Setting that number is a human toxicologist's job. The tool gets you to the point where you know you need one.

How good is the statistical half

The Ames model is the part of the dual assessment that carries a measurable error rate, so here it is.

  • CovaTox Ames model, scaffold-split holdout: balanced accuracy 0.736 (n_test = 1089). Random split on the same endpoint: 0.848. The scaffold number is the honest one - it holds out entire molecular cores, which is what a novel process impurity looks like.
  • TDC ADMET official split, 5-seed retrain: AUROC 0.847 +/- 0.013 (n_test = 1457). Trained on the TDC train split only and scored by TDC's own evaluator, so it is directly comparable to published entries. Source: CovaTox/benchmarks/tdc_results.json, run 2026-05-23.
Bar chart of the ICH M7 classification model accuracy: the CovaTox Ames classifier reaches 0.736 balanced accuracy on a scaffold split of 1089 held-out compounds versus 0.848 on a random split.
Holding out entire molecular cores, which is what a novel process impurity looks like, costs about 0.11 balanced accuracy. Quote 0.736: it is triage quality, not an Ames test. Source: CovaSyn held-out benchmark: CovaTox Ames classifier, scaffold-split and random-split holdouts, n_test = 1089.

A balanced accuracy of 0.736 on unseen scaffolds is useful for triage. It is not an Ames test.

What this does not tell you

  • It is not a regulatory classification. The class is a documented starting point for expert review. ICH M7 requires expert knowledge to be applied on top of the (Q)SAR output, and a filing needs a human-signed rationale.
  • It does not set an acceptable intake. No compound-specific AI, no less-than-lifetime adjustment, no cohort-of-concern limit. The batch tool deliberately returns threshold_ug_day = 0.0 for Class 2 rather than guessing.
  • The statistical score is a probability, not a measurement. Aniline and nitrobenzene both returned exactly 0.1677 with confidence 0.848 - two different molecules, the same output. Treat the class and the named alert as the decision unit; do not build an argument on the third decimal.
  • Confidence is not calibrated risk. Benzoic acid, the clean Class 5 case, came back with the lowest confidence of the five (0.438). Low confidence on a clean molecule means the model has little to say, not that the molecule is suspect.
  • It does not cover Class 1. Class 1 requires known rodent carcinogenicity data. That is a database lookup against IARC, CPDB or a regulatory list, not a prediction.
  • Out-of-domain compounds. Run covatox_check_domain before trusting a score on an unusual scaffold. Outside the training domain, treat the result as "no statistical result available", which under ICH M7 pushes an alerting compound to Class 3 anyway.

Frequently asked questions

What are the five ICH M7 classes?

Class 1 is a known mutagenic carcinogen. Class 2 is a known mutagen with unknown carcinogenic potential. Class 3 has an alerting structure unrelated to the API and no mutagenicity data. Class 4 has an alerting structure shared with the API or with a tested non-mutagenic relative. Class 5 has no alert, or an alert with data showing no mutagenicity. Classes 1 to 3 need mutagenic impurity control; 4 and 5 fall under ICH Q3A/Q3B.

Why does ICH M7 require two (Q)SAR methods?

ICH M7 asks for one expert rule-based and one statistical methodology for bacterial mutagenicity, because they fail differently. Rule sets encode mechanism and give a citable rationale but miss structures no rule covers. Statistical models generalise but cannot explain themselves without extra work. If both are negative, the guideline permits Class 5 with no further testing. If they disagree, expert review decides.

Why is NDMA Class 2 and aniline Class 3?

Both fire a high-evidence structural alert. The difference is the statistical half. In covatox_ich_m7, NDMA returns an Ames probability of 0.6905 (positive), so rule and model agree and the result is Class 2. Aniline returns 0.1677 (negative), so an alert stands without statistical support and without compound-specific data, which is the Class 3 definition.

What TTC applies to a Class 3 impurity?

The default threshold of toxicological concern in ICH M7 is 1.5 ug/day for lifetime exposure, with higher less-than-lifetime values for shorter treatment durations. Class 3 impurities are controlled at that limit, or reclassified by running a bacterial reverse mutation (Ames) test: negative moves it to Class 5, positive moves it to Class 2. Cohort-of-concern compounds such as nitrosamines are excluded from the TTC.

Can a (Q)SAR classification replace an Ames test?

For Class 5 outcomes, ICH M7 accepts two negative complementary (Q)SAR predictions in place of testing, with expert justification. For anything alerting, no. A scaffold-split balanced accuracy of 0.736 on 1089 held-out compounds is triage quality: it tells you which impurities deserve a test slot and which specification to tighten, not what the test will say.

How many impurities can be assessed at once?

covatox_assess_ichm7_batch accepts up to 50 impurity SMILES per call, plus an optional API SMILES for Tanimoto similarity. It returns each impurity's class, the class distribution, the worst-case impurity and a TTC applicability note. The similarity column is what supports or rules out a Class 4 argument.

Related reading

Run your own impurity list through covatox_ich_m7 on the free tier and see the alerts, mechanisms and references it returns before you commit an Ames slot. - Nitrosamine Risk Assessment: An ICH M7 Workflow - PBT Assessment for Pharmaceuticals: Very Toxic Is Not PBT - Applicability Domain in QSAR: When a Model Says I Don't Know

Tools for this topic

Use these in your AI agent right away.

  • CovatoxICH M7, Tox21, CYP450, structural alerts, ADMET triage.
ICH M7 Classification: Class 1 to 5, by Example | CovaSyn