Journal Un nouveau logiciel open source pour le criblage "in silico" (chemoinformatique)

11
19
mai
2014

Chers lecteurs,

Je suis heureux de pouvoir annoncer la première version du logiciel ACPC.

https://github.com/UnixJunkie/ACPC/blob/master/README.md

ACPC est un logiciel open source pour faire du criblage "in silico" ("ligand-based virtual screening", en anglais).
ACPC utilise la fonction d'autocorrelation pour encoder les charges partielles des molécules de façon rotation-translation invariante.
ACPC est écrit en OCaml (http://ocaml.org/) et utilise la librairie Parmap (http://www.dicosmo.org/code/parmap/) pour la parallélisation des calculs sur les machines multicoeurs.
ACPC est assez rapide dans le domaine (> 1600 molécules par seconde sur certains jeux
de données) et donne de bons résultats en terme d'aire sous la courbe ROC ("AUC" en anglais).

A partir d'une molécule active donnée (qui sert de requête) pour une protéine cible, ACPC
permet de trier par score décroissants une "base de donnée" de molécules chimiques.
Avec un peu de chance, les molécules les mieux classées seront aussi des molécules actives pour la même protéine cible et peuvent être testées de façon expérimentale ("in vitro", cette fois).

Il y a quelques exemples d'utilisation dans le README.md sur github.

L'article scientifique est disponible gratuitement ici:
http://www.jcheminf.com/content/6/1/23/abstract

Le code source est la:
https://github.com/UnixJunkie/ACPC

Le dataset utilisé pour valider le logiciel est la:
http://www.riken.jp/zhangiru/\
software/DUD_ACPC_1.0_validation.tar.xz

Dans le domaine, un logiciel très utile et lui aussi open source
est Open Babel:
http://openbabel.org/wiki/Main_Page

Il y a bien-sur aussi des éditeurs de logiciel, avec souvent des
licences gratuites pour les chercheurs académiques:
http://www.chemaxon.com/
http://www.eyesopen.com/
http://www.inteligand.com/
http://www.chemcomp.com/

Si vous avez des questions, n’hésitez pas!

Cordialement,
Francois Berenger.

  • # criblage "in silico" ???

    Posté par . Évalué à 9.

    Une petite explication?

  • # Batteries

    Posté par . Évalué à 1.

    Voilà un projet bien intéressant ; en jetant un coup d'oeil au code, je vois que batteries est utilisé: c'est efficace? (dans le sens facilité d'utilisation et performances).

    Il faudrait que je regarde la partie théorique pour voir si je peux en faire quelque chose en maths spé en python l'année prochaine…

    • [^] # Re: Batteries

      Posté par (page perso) . Évalué à 3.

      Batteries, c'est tres bien pour faire des logiciels consequents en OCaml.
      C'est tres complet par rapport a la librairies standard de l'INRIA et presque toutes les fonctions sont recursives terminales; donc pas de surprises a l'execution meme si on traite des structures de donnees enormes.

      Pour faire de la chemoinformatique en Python, Open Babel a des bindings tres complets en Python je crois, donc ca devrait etre assez facile.

      Et sinon, j'ai oublie de le dire, mais ACPC est installable automatiquement via l'OCaml Package Manager (OPAM; http://opam.ocaml.org/). Il suffit de taper 'opam install acpc' pour faire une installation depuis les sources.

      • [^] # Re: Batteries

        Posté par . Évalué à 1.

        Le but de leur faire faire de la chemoinformatique en python, ce ne serait pas de leur faire utiliser une lib existante, mais implémenter un algorithme simple qui fonctionnerait au moins dans des cas triviaux. Je suis supposé chercher des applications informatiques dans d'autres sciences que ma discipline. J'ai quelques pistes en maths et en physique, mais en chimie, encore rien.

        • [^] # Re: Batteries

          Posté par (page perso) . Évalué à 2.

          Avec la chemoinformatique, on peut tres vite tomber dans des maths, pas forcement compliques mais interessants par contre. Par exemple, une molecule peut etre vue comme un graphe, donc il y a certains algorithmes de graphe qui sont utiles en chemoinformatique.
          Mais bon, je ne suis pas expert dans le domaine, juste un debutant.
          Ce que fait ACPC peut d'ailleurs etre vu comme une tache de classification.
          Disons que les molecules actives sont de la classe 1 et les molecules inactives de la classe 0.
          On score toutes les molecules de la "base de donnees" de molecules en les comparant a une molecule active connue (notre "requete") en esperant que toutes les molecules actives cachees dans la base de donnee auront un score meilleur que toutes les molecules inactives.
          Si c'est le cas, alors on a une bonne methode avec une aire sous la courbe proche de 1.0.
          Une methode aleatoire aurait une aire sous la courbe proche de 0.5.
          Les methodes moins performantes qu'un tri aleatoire des molecules de la base de donnee auront une aire sous la courbe < 0.5.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.