Scripts
Scripts
Voici une série de programmes Python permettant d'obtenir des données de PubMed et d'utiliser le MeSH pour en tirer parti.- Les manips à effectuer pour pouvoir utiliser ces programmes sont décrites dans le fichier ReadMe.txt inclus dans l'archive jointe. Il serait étonnant que ça fonctionne du premier coup sur un autre ordinateur que le mien, j'ai sans doute oublié quelques trucs...
- MeSHProcessor.py permet d'extraire la liste des descripteurs, concepts et termes correspondant à une catégorie de la structure hierarchique du MeSH (voir ici
et là
), puis de compter les occurrences et cooccurrences de ces descripteurs dans un fichier texte résultant d'une requête Medline, et enfin d'exporter ces résultats sous forme de fichiers .txt, à partir desquels le script Matlab txt2matWEData.m reconstruit les fichiers Lists.mat et Data.mat destinés à WordsEvolution
- Analysis.py permet, à partir des fichiers créés par MeSHProcessor.py, d'effectuer quelques analyses simples : obtention de la liste des descripteurs les plus fréquents, distance entre descripteurs, voisinages
- Je viens de découvrir l'existence d'utilitaires donnant directement accès au données PubMed. Les deux scripts suivants les utilisent :
- MedlineFetcher.py permet de télécharger des données depuis PubMed avec plus de souplesse que depuis l'interface web. Il sauvegarde régulièrement les données obtenues (ce qui est sympa pour les requêtes qui fournissent de nombreux résultats) et pourra permettre d'enchaîner les requêtes, de choisir de quelle manière les résultats seront enregistrés, etc.
- Une requête PubMed du type ' "Perception"MeSH ' donne pour résultat la liste des articles "indexés par un descripteur" ("Perception" en l'occurrence — dixit la doc Medline, qui ne précise pas comment cette indexation à été effectuée, en particulier si elle a été élaborée manuellement ou non). MedlineCoresults.py est destiné à obtenir les résultats d'une série de requêtes portant sur les paires de descripteurs (par exemple ' "Perception"MeSH AND "Vision"MeSH ' incluses dans un ensemble donné de descripteurs. Ainsi le nombre d'articles correspondant à chaque paire peut être obtenu très rapidement. On peut le comparer au nombre de cooccurences fourni par MeSHProcessor.py pour les mêmes descripteurs.
Espérons qu'au moins une partie de tout cela puisse être utile...
Le code comporte probablement quelques bourdes. Toutefois il devrait être à peu près lisible : il est commenté et les noms de variables y sont explicites, voir ridiculement longs (astuce très sympa pour l'éditeur IDLE : il existe un raccourci de "complétion" des noms de variables déjà utilisées, dont l'effet est analogue à celui d'un appui sur la touche Tab dans un terminal ; ce raccourci est Option+/ sur Mac, voir dans les Préférences d'IDLE)
Ce code emploie beaucoup le module 'pickle', qui est super sympa lui aussi : il permet de sauvegarder dans un fichier tout objet qui en implémente l'interface (ce qui est le cas des structures standard du langage : listes, dictionnaires, etc.) en faisant pickle.dump(objet, fichier), puis de les récupérer par pickle.load(fichier), dans un autre script deux ans plus tard.
Scripts d'indexation
necessite les modules pythons PYXml et NumPy
- Ajuster les chemins dans personal path
- MedlineFetcher.py
- Importer les bon modules. Marche avec Python 2.4
- medlineEfetch(str(year) + 'dp', 200) : Importe toutes les années pour année variant entre year = str(2007 - i) avec i dans range(n). Le nombre 200 indique la taille du batch entre deux sauvegardes. Mettre plutot 20000.
- Si besoin de limiter la requet faire e.g. : medlineEfetch('clinical AND '+ str(year) + 'dp', 200)
- PubmedCoocurrence
- Le lancer en utilisant
- from pubmedCooccurrenceCounter import*
- serialCounter('example', 2007, 2007)
- Resultats
Alternative : En ligne de commande lancer : pythonpath filename (après avoir rajouter à la fin la commande)
Collaborateur(s) de cette page: davidchavalarias
et
pierre.chevremont
.
Page dernièrement modifiée le vendredi 22 août, 2008 16:09:35 CET par davidchavalarias.


