The PubChem database provides 2D structures for entries in its Compounds database: ftp://ftp.ncbi.nlm.nih.gov/pubchem/Compound/ (ftp link to download examples)

On the page linked below, under the "NCBI-generated records" heading, it's mentioned that the data processing of records for the Compound database "includes 2D coordinate layout assignment": https://pubchem.ncbi.nlm.nih.gov/docs/subcmpd_summary_page_help.html#DataProcessing

What algorithm does PubChem use to generate these 2D structures?

I'm familiar with similar algorithms used in RDKit (e.g. compute2dCoords defined in rdkit/Code/GraphMol/Depictor/RDDepictor.cpp), but I'm specifically interested in a resource that describes the algorithm that PubChem uses.

Thanks very much!


According to Xemistry, PubChem uses Cactvs for 2D layout coordinate computation.

A friend pointed this out to me. If you scroll to the bottom of the CACTVS Toolkit FAQ (http://www.xemistry.com/docs.htm), it says the following:

Interesting. I did not know that PubChem is built with Cactvs. I heard it was implemented with OpenEye's OEChem library.

Well, that is not wrong, but only part of the story. Both Cactvs and OpenEye software are used, in combination with the in-house NCBI toolkit. Software built with Cactvs is in charge of structure submission pre-parsing, structure input, structure ASN.1 encoding, 2D layout coordinate computation, structure rendering, most property computations, structure unification, the complete structure search system and Web-based structure sketching for queries. The OpenEye toolkit is used for structure standardization, some property computation (names, canonic SMILES), and SD file output. There are applications at NCBI which link to both OpenEye and Xemistry libraries - they can peacefully co-exist.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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