Tutoriel ActivePapers
Édition Python Édition JVM Édition Pharo Blog … bibliothèque —> Tutoriel ActivePapers Ce court tutoriel montre comment inspecter le contenu d’un ActivePaper extraire du code et de la documentation (y compris des graphiques) modifier les paramètres de calcul modifier le code relancer les calculs créer un ActivePaper à partir de zéro Le fichier exemple pour ce tutoriel peut être téléchargé depuis Figshare. Il est également recommandé de consulter la description sur le site de Figshare.
Vous n’avez pas besoin de comprendre son fonctionnement ni sa raison d’être, mais si cela vous intéresse, n’hésitez pas à lire l’article décrivant ces travaux, qui porte sur le calcul des tenseurs de diffusion translationnelle et rotationnelle d’une protéine en solution à partir d’une trajectoire de dynamique moléculaire. Veuillez copier le fichier ActivePaper téléchargé dans un répertoire vide. Ouvrez une fenêtre de terminal et placez-vous dans ce répertoire. Lorsque vous tapez ls -l, vous devriez voir quelque chose comme : -rw-r—r— 1 hinsen staff 148133188 Sep 26 16:21 lysozyme_diffusion.ap Inspection du contenu La commande aptool ls produit une longue liste de jeux de données, commençant par : code/correlation_functions code/diffusion_tensor code/identify_trajectories code/plots code/python-packages/fitting code/python-packages/molecular_structure code/python-packages/mosaic code/python-packages/quaternion code/python-packages/time_series code/python-packages/units code/thermal_averages code/trajectory_processing data/coordinate_trajectories/rotation_laboratory_frame_1 data/coordinate_trajectories/rotation_laboratory_frame_10 data/coordinate_trajectories/rotation_laboratory_frame_2 Mais comment aptool sait-il quel fichier ActivePaper vous souhaitez examiner ?
Eh bien, s’il n’y a qu’un seul fichier avec l’extension .ap dans le répertoire courant, c’est celui qu’il utilise. C’est pourquoi il est recommandé d’utiliser un répertoire distinct pour chaque projet ActivePaper. Si, pour une raison quelconque, vous ne souhaitez pas procéder ainsi, vous pouvez spécifier explicitement le nom du fichier ActivePaper : aptool ls -p lysozyme_diffusion.ap Vous pouvez obtenir plus d’informations en utilisant aptool ls -l, ce qui donne : 2013-06-07/09:13:05 calclet code/correlation_functions 2013-06-07/09:19:48 calclet code/diffusion_tensor 2013-06-07/10:02:29 calclet code/identify_trajectories 2013-06-12/08:03:48 calclet code/plots 2013-06-04/15:42:02 module code/python-packages/fitting 2013-05-02/15:11:53 module code/python-packages/molecular_structure 2013-06-14/15:46:18 reference code/python-packages/mosaic 2013-05-23/11:42:31 module code/python-packages/quaternion 2013-05-27/04:13:09 module code/python-packages/time_series 2013-05-02/15:12:07 module code/python-packages/units ainsi que de nombreuses autres lignes similaires.
La première colonne indique la date et l’heure de la dernière modification de chaque jeu de données. La deuxième colonne indique le type de jeu de données. La liste ci-dessus contient deux types de code exécutable : calclet et module.
Il en existe un troisième, absent de cette liste : importlet. Un module est exactement ce à quoi un développeur Python s’attend : un fichier source Python destiné à être importé par d’autres codes Python.
Les calclets et les importlets sont les deux variantes de scripts fournies par ActivePapers. Le type le plus courant est le calclet, un script Python aux droits restreints : il ne peut effectuer aucune opération d’E/S en dehors du fichier ActivePaper dans lequel il se trouve, ce qui signifie qu’il ne peut accéder ni aux fichiers ni aux ressources réseau. Ces restrictions garantissent la reproductibilité (toutes les données d’entrée sont assurément présentes dans l’ActivePaper) et protègent l’utilisateur contre les bogues et les codes malveillants.
Connexes : — Cours interactifs Python et science des données que vous codez directement dans le navigateur.
Cependant, elles impliquent aussi que les calclets ne peuvent pas être utilisés pour importer des données dans l’ActivePaper. C’est là qu’interviennent les importlets : ils peuvent utiliser toutes les fonctionnalités de Python et accéder à n’importe quelle ressource.
Cela signifie également que vous ne devez pas exécuter les importlets d’autrui sans les avoir préalablement examinés. La page [[Calclets]] explique comment écrire des calclets et des importlets. Il existe un autre type de jeu de données dans la liste ci-dessus : la référence, qui sert à faire référence à des jeux de données situés dans d’autres fichiers ActivePaper. Une référence se compose de deux parties : une référence au fichier et le nom du jeu de données au sein de ce fichier.
La référence au fichier peut être un DOI pour un fichier publié, ou un nom de fichier local. Évidemment, les noms de fichiers locaux n’ont aucun sens sur l’ordinateur d’autrui ; ainsi, les références locales sont un peu comme les importlets : elles documentent l’origine des données, mais ne les rendent pas disponibles. Examinons les références de notre ActivePaper : aptool refs Nous trouvons un DOI et dix références locales : doi:10.6084/m9.figshare.705829 local:lysozyme_spce_rbt_1 local:lysozyme_spce_rbt_10 local:lysozyme_spce_rbt_2 local:lysozyme_spce_rbt_3 local:lysozyme_spce_rbt_4 local:lysozyme_spce_rbt_5 local:lysozyme_spce_rbt_6 local:lysozyme_spce_rbt_7 local:lysozyme_spce_rbt_8 local:lysozyme_spce_rbt_9 Le DOI correspond à la bibliothèque pyMosaic, version 0.1.1, telle que déposée sur Figshare.
Ça vaut le coup d'oeil : — Un abonnement pour les certificats Python et de science des données soutenus par l'université.
Les fichiers locaux sont les trajectoires de simulation analysées dans l’ActivePaper. Obtenons davantage d’informations sur ces références : aptool refs -v doi:10.6084/m9.figshare.705829 links: code/python-packages/mosaic local:lysozyme_spce_rbt_1 copies: data/center_of_mass data/orientation data/reference_structure data/time et ainsi de suite pour les neuf autres fichiers d’entrée. Cela montre que le DOI est utilisé dans un lien vers le jeu de données code/python-packages/mosaic du fichier de destination, tandis que les fichiers locaux ont servi de source pour des données copiées dans l’ActivePaper lui-même.
Une référence de copie sert donc uniquement à la documentation ; il n’est pas nécessaire de disposer d’une copie du fichier référencé. Revenons aux types de jeux de données.
Il en existe quelques autres, qui n’apparaissaient pas dans les premières lignes de aptool ls -l ; examinons donc certaines des lignes restantes : 2013-07-03/12:24:26 text documentation/README 2013-06-14/15:55:08 file documentation/c_rr_diagonals.pdf 2013-06-14/15:55:00 data data/correlation_function_integration_limit 2013-06-14/15:46:47 dummy data/coordinate_trajectories/rotation_laboratory_frame_1 Vous devinez probablement ce que signifie text. Quant à file, c’est exactement ce qu’est un fichier dans l’unix : une séquence d’octets, sans interprétation particulière qui y soit associée.
Nous verrons plus loin comment extraire un tel fichier. La signification de data est peut-être moins évidente, notamment en quoi il diffère d’un file. La réponse est que data représente un jeu de données HDF5 arbitraire, caractérisé par un espace de données et un type de données.
Considérez-le comme un tableau si vous le souhaitez ; c’est en effet très proche. Reste enfin dummy, qui désigne un jeu de données inexistant. Plus précisément, un jeu de données qui n’existe plus. Il s’agit d’un jeu de données généré par un calclet, puis supprimé explicitement (à l’aide de aptool dummy …) afin de réduire la taille du fichier.
Si vous souhaitez l’inspecter ou exécuter l’un des calclets qui le lisent, vous devez d’abord le régénérer en relançant le calclet. Procédons donc ainsi : aptool update -v Cette commande met à jour tout ce qui doit l’être dans l’ActivePaper : les jeux de données dummy, mais aussi les jeux de données obsolètes, c’est-à-dire ceux qui sont plus anciens que la version actuelle du calclet qui les a produits. L’option -v rend la commande verbeuse : elle indique quels calclets sont exécutés et pourquoi.
Préparez-vous à patienter un moment ; sur ma machine, l’opération prend environ huit minutes. Nous pouvons constater que la taille du fichier a considérablement augmenté : ls -l -rw-r—r— 1 hinsen staff 540352636 Oct 23 14:54 lysozyme_diffusion.ap De plus, les jeux de données précédemment marqués comme dummy sont désormais réels : aptool ls -l data/coordinate_trajectories/rotation_laboratory_frame_1 2013-10-23/14:45:29 data data/coordinate_trajectories/rotation_laboratory_frame_1 Extraction des graphiques Si vous examinez la sortie complète de aptool ls -l, vous remarquerez plusieurs fichiers PDF sous documentation.
Pour les consulter, extrayez-les sous forme de fichiers réels : aptool checkout documentation Cela récupérera également le README, car cette commande extrait tout ce qui se trouve dans le groupe HDF5 documentation vers un répertoire local nommé, vous l’avez deviné, documentation. Le groupe documentation dans un ActivePaper est destiné aux données destinées aux humains ; il n’est généralement pas utilisé comme entrée pour les calculs.
Notez que vous pouvez bien sûr extraire des fichiers individuels, par exemple : aptool checkout documentation/README.txt La commande checkout n’extrait que les jeux de données plus récents que le fichier correspondant sur le disque, si celui-ci existe déjà. Vous pouvez ainsi modifier les fichiers extraits sans qu’ils soient écrasés. Nous verrons cela en action immédiatement lorsque nous travaillerons avec le code. Extraction et modification du code Ensuite, examinons tout le code
Construire un portefeuille de données, projet par projet
Parcours de science des données basés sur des projets avec un terminal guidé et des ensembles de données réels