[ase-users] Potential Pubchem API Integration

Ben Comer bcomer3 at gatech.edu
Fri Aug 9 21:47:02 CEST 2019


Hello all,

I've noticed that ASE has a very limited number of molecules that can be 
easily made into an atoms object. An easy fix for this could be to 
integrate a restful API to a chemical database to query and pull in 
structures from the internet. Pubchem 
(https://pubchem.ncbi.nlm.nih.gov/) might make sense for this, since it 
does not require an API key to access. We could just use the requests 
library to access molecules by name (or anything else, like cid fro 
example.) Some code to access the API would be a fairly short putt, we 
might make something like this:

from io import StringIO
from ase.io import read
import requests


def pubchem(name):
     r = 
requests.get("https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/{}/sdf".format(name))
     f_like = StringIO(r.text)
     atoms = read(f_like, format = 'sdf')
     return atoms

atoms = pubchem('ammonia')
print(atoms)


Just an idea, what do you guys think?


Thanks,

Ben Comer




More information about the ase-users mailing list