I'm interested working with the medication information provided by the UK Biobank. In order to get these into a usable form I would like to map them to ATC codes. Since many of the drugs listed in the data showcase include dosage information, doing an exact string match between drug names is not very effective. I've considered using something like fuzzywuzzy to do string matching between the medications in the data showcase and the ATC drug names but validating the matches could still be a laborious process. Does anyone know of a tool that can match drug names to ATC codes or some other drug ontology? If not, maybe there's a better way to do it that I haven't thought of.
3$\begingroup$ Can you add a couple of examples for drug names and corresponding ATC codes (in case the link stops working)? In general, matching a non-controlled to a controlled vocabulary will always require manual checking. $\endgroup$– Michael SchubertMay 16, 2017 at 18:44
The CART tool let's you upload a set of names and map them (optionally in a fuzzy way) to STITCH 4 identifiers, and then use those to map to ATC codes (using the chemicals sources download file). It's a bit indirect, and I'm not sure what CART will do with the dosage info you mention.
DrugBank seems to have a tool to map ATC codes to drug names and DrugBank IDs.
A quick look in the XSD schema on the release page suggests the complete database includes ATC codes for drugs, you could then do a fuzzy match of the BioBank names against all of DrugBank's synonyms, or match on some other data (e.g. canonicalised SMILES) if available.
The downside is that there may not be complete overlap between UK BioBank and DrugBank. Additionally, DrugBank is under licence for commercial use.