Go to content

AgrégationChimie

Récupérer des méta-données sur un produit chimique via Pubchem

Les principes généraux

Après avoir créé un script pour l'ajout de livres dans une base de donnée, j'ai eu besoin d'ajouter des produits chimiques afin de centraliser des données sur un petit lot de molécules.

Pour cela, il a fallu identifier les informations qui m'intéressaient. J'ai donc essayer d'être complet sans être trop exigeant afin d'avoir une haute probabilité que tous les champs soient remplis. J'ai donc établi la liste suivante :

  • le nom systématique (en anglais);
  • le nom courant ;
  • les autres noms ;
  • la formule ;
  • la masse molaire ;
  • le(s) numéro(s) CAS ;
  • le CID (identifiant pubchem)
  • un dessin de la molécule ;

Le choix des identifiants a été important, comme l'indique mon article sur le numéro CAS, c'est en fait un identifiant qui ne répond pas à mes attentes et son côté propriétaire ne facilite pas les choses. L'accès au CAS est propriétaire, j'ai regardé du côté de ChemSpider qui est fait par la RSC, mais les informations étaient moins complètes que sur Pubchem et la base de donnée est moins fournie. Du coup, Pubchem était tout désigné. Comme l'accès est gratuit, c'est un bon moyen de contourner le passage par l'ACS pour obtenir les numéros CAS (ça apprendra à l'ACS à rendre libre ses données..).

Le choix de la base de donnée n'était pas si trivial, car je ne pensais pas pouvoir récupérer toutes les informations sur une seule base de donnée (surtout.. le numéro CAS). Au final, PubChem a dépassé mes attentes et semble être suffisant. Il existe d'autres bases de données chimiques mais qui peuvent difficilement rivaliser aussi bien techniquement que sur le fond avec PubChem. En effet, la documentation de leur API est simple(simplissime ?) et permet de faire énormément de choses.

Au final, pas tant de travail que ça, mais c'est vraiment la connaissance des forces et des faiblesses de chaque identifiant qui a été intéressant.

Sur le plan technique, j'ai codé l'ensemble avec PHP, et la librairie jQuery. Mes connaissances techniques étant limitées, surtout en javascript et le reste de mon site était déjà codé avec ces éléments (la partie SQL étant inutile ici). La possibilité de faire des requêtes asynchrones de javascript (AJAX) est en effet très intéressante.

Le code

Vous pouvez télécharger le code source. Il contient :

  • add_compound.html : La page html qui permet de lancer la requête ;
  • add_compound.js : le code javascript pour pour faire les requêtes AJAX, les traiter et les afficher;

Le résultat

Testez le script, vous pouvez taper un identifiant quelconque dans le champ et la requête sera automatiquement effectuée lorsque vous appuyez sur entrée. Faites attention à ne pas mettre de terme trop générique pour ne pas surcharger le serveur (le script est bridé à 5 composés par requête).

Go to top
Go up