This is a tough one I think: is there a publicly available, up-to-date, free, complete database for antibiotics names and classes?

I am specifically looking for information like, e.g., cefpirome (is a) cephalosporin.

I've looked in a couple of different places, but nothing really comes close. E.g.:

  1. CARD comes closest, but is not free (companies need to pay a license) and not complete/up-to-date (e.g., cefpirome is missing)
  2. @Karel mentioned KEGG in his answer, but this also needs a license (companies for sure, academics if they download data via FTP).
  3. Novel Antiobiotics Database has no class ... and stops in 2003
  4. The Antimicrobial Index is web only, and terms of use apparently prohibit any kind of web-scraping.
  5. A suggestion by @Pierre on Twitter was to try Antimicrobial stubs on Wikipedia. Good idea, but the class is not stored in the ChemBox and must be free-text parsed. Or writing a script which evaluates the Wikipedia category tags.
  6. I drew blank at different government agencies (EMA, FDA, EFSA, NIH, etc.). The closest I found was from the WHO a list of critically important antibiotics. But not complete, and in a PDF.

Any pointer appreciated.

  • $\begingroup$ The FDA's NDC may be a good resource. It is freely available and was updated: 6/22/2017. You'll have to do some grepping to get the info you need but I think it is mostly all there. Cefpirome is not in the db but many cephalasporins are. There is also an unfinished drug list which I did not check. $\endgroup$
    – emilliman5
    Jun 22, 2017 at 20:33
  • $\begingroup$ Good one, didn't know it. But unfortunately error prone. Some entries contain multiple ingredients, e.g., "Erythromycin and Benzoyl Peroxide", which fall into different categories and cannot be re-assigned unambiguously with the table data. $\endgroup$
    – BaCh
    Jun 22, 2017 at 21:31
  • $\begingroup$ Can you define what classes you want? For example, are efflux pumps a class? Classification schemes are not universally; I suggested CARD on Twitter because it's a full ontology rather than just 2 columns $\endgroup$ Jun 22, 2017 at 21:42
  • $\begingroup$ Well, e.g., I'd like to have the association that cefmenoxime is a cephalosporin (bonus points for 3rd, 4th or 5th generation, but not a must). Twitter didn't show me a notification of your response until I specifically looked for it, sorry. But as I wrote in examples: CARD is not free, companies need a license. $\endgroup$
    – BaCh
    Jun 22, 2017 at 21:50

1 Answer 1



It should be possible to get this information from the ChEBI database, see the exported tables. You could download the ontologies (in OWL / OBO), parse them using some ad-hoc parser or using a dedicated library (e.g., Pronto), build a directed acyclic graph based on the is_a relationship, and extract the antibiotic subtree.


You could also use KEGG: Kyoto Encyclopedia of Genes and Genomes, but a subscription is probably required. The exported drug table should be easy to parse (e.g., in Python).

For a quick verification of the completeness, you can download the table, filter out everything except antibacterial agents and check the number of records:

curl "ftp://ftp.genome.jp/pub/kegg/medicus/drug/drug" > keg_all.txt

cat keg_all.txt \
   | perl -pe 's/\n/BREAK/g' \
   | perl -pe 's@///BREAK@///\n@g' \
   | grep 'CLASS       Antibacterial' \
   | perl -pe 's/BREAK/\n/g' \
   > keg_antibacterial.txt

cat keg_antibacterial.txt | grep "///" | wc -l

There are 646 records. However, some of them are almost identical (e.g., only 1 atom difference).

If you add | grep -i "antibiotic" \ to the pipeline, then you get only 445 records.

  • $\begingroup$ Excellent resource, but does not pass the "freely available" filter: KEGG requires a yearly license. I will update my question to include that. $\endgroup$
    – BaCh
    Jun 22, 2017 at 21:40
  • 1
    $\begingroup$ Would ChEBI satisfy your definition of "freely available"? $\endgroup$ Jun 22, 2017 at 22:09
  • $\begingroup$ ChEBI would, indeed! And it contains approximately what I need. OBO or OWL are not necessarily formats from which it is easy to extract the wanted information as one needs to build and traverse graphs to piece together required data, but it is doable. Can you please amend your answer to include ChEBI before KEGG? I'll accept the answer then. $\endgroup$
    – BaCh
    Jun 23, 2017 at 14:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.