diff --git a/journal/logbook_elhomsy.md b/journal/logbook_elhomsy.md index 3fe77db12074ea3b6493ad8eeb5dee397e9f8141..b26f0f8e430fa843d4b50efaaadb42dfc27cf447 100644 --- a/journal/logbook_elhomsy.md +++ b/journal/logbook_elhomsy.md @@ -114,4 +114,75 @@ Journal de bord MOOC RR - Victor Elhomsy - Reporting : rendre compte régulièrement de notre activité : - Réfléchir avec du recul, énoncer clairemet les problèmes - Permettre à l'encadrant de suivre l'avancement - - Garder une trace (utile pour un rapport) \ No newline at end of file + - Garder une trace (utile pour un rapport) + +# Module 3 : La main à la pâte, une analyse réplicable + +## 1. Une analyse réplicable, c'est quoi ? +- Traditionnellement : focus sur les **résultats**, résumé méthodo des méthodes, discussion sur conclusions +- Réplicable : résumé méthodo remplacé par **code complet** + explications des choix +- Raisons : plus facile à refaire, modifier, inspecter, vérifier + +## 2. Etude de cas : incidence de syndromes grippaux +- Réseau sentinelles : données relevées par des médecins généralistes +- Erreur fréquente dans l'importation des données : données manquantes -> Ne pas supprimer à la main dans l'éditeur, non réplicable, faire avec code +- Définition des dates : cf norme ISO 8601 + +## 3. Importer les données avec Jupyter/Python 3 +- Bibliothèques : pandas (gestion des données), matplotlib (figures), isoweek (pandas ne comprend pas le format iso des semaines) +- Point technique : Supprimer données avec pandas => Nécessité de faire une copie + +## 4. Inspection et validation des données +- Pré-traitement pour adapter les données aux conventions des logiciels. Ex : gestion du format pour les semaines entre isoweek et pandas +- Vérification : inspection visuelle, code de validation + +## 5. Questions et réponses avec Python +- Doit contenir toutes les étapes du traitement de données sous forme **exécutable**, les explications des choix, les détails techniques (là qu'on trouve les erreurs) + +# Module 4 : Vers une étude reproductible : la réalité du terrain + +## 0. Introduction +Objectifs : +- Répliquer le travail de qqun d'autre +- Comprendre les difficultés techniques IRL +- Etudier qq pistes de solutions + +## 1. L'enfer des données +- Taille, structure, diversité, ... +- 2 "nouveaux" problèmes : nature "diverse" (non homogènes), grand espace mémoire (-> convertir en binaire : moins gros et ça se passe de toute façon) +- Métadonnées : format texte intéressant pour les stocker +- Boutisme (petit : 1er nombre=bit de poids le plus faible) : doit être spécifié si on stocke en binaire +- FITS : blbiothèque C facile d'emploi +- HDF : plus récent, hiérarchique, aucune structure imposée (data, metadata), mais du coup bibli C plus compliquée + - HDFView : vient avec la bibli C, pour explorer et visualiser + - Interface très complète avec Python : h5py +- Stockage, archivage, distribution : Zenodo (CERN), Figshare (privé) + +## 2. L'enfer du logiciel +### 2.1. Passage à l'échelle : les codes complexes +- Même en structurant/dépliant le code, **pas de vision d'ensemble** à cause de la structure linéaire/séquentielle, et de l'interaction entre différents langages +- **Workflow** : bien identifier entrée/sortie de chaque fonction, vue d'ensemble en représentant en graphes, mouvements de données explicites, partages de fragments de workflows +- Mais peu de vision sur les données et les détails techniques, surtout pour visualiser ; et investissement lourd +- **Checkpoints** dans le calcul : permet de tester étape par étape, évite de refaire les parties couteuses + +### 2.2. Passage à l'échelle : les environnements complexes +- Librairies **dépendant** de paquets, qui dépendant eux-mêmes de plein de librairies : pas de standard pour la gestion de paquets +- Besoin de contrôler l'environnement de travail : connaître les paquets/versions, les partager, ne pas écraser ce qui est déjà installé + +### 2.3. L'épreuve du temps +- Evolution hyper rapide des écosystèmes en compatibilité ascendante. A contrôler régulièrement (Popper) +- Se restreindre à ce qui est maitrisable (code en C) +- Archivage : + - Code source : SOftware Heritage, HAL + - Environnements : technologie Docker (pérenne ?) + +## 3. L'enfer du calcul +- Compromis entre temps d'exécution et reproductibilité +- **Arrondis** différents suivant l'ordre des opérations, qui dépend du compilateur +- Calcul parallèle : exécution plus rapide, mais qui dépend du nombre de processeurs +- Calcul = logiciel + données + plateforme (matériel + infrastructure logicielle) +- Pb des **nombres aléatoires** : définir la "graine" dans le code, pb de l'arithmétique avec des flottants + +# Conclusion +- Recherche reproductible : enjeu pour la méthodologie scientifique, et pour l'inspectabilité et la réutilisation des travaux +- Des outils existent : documents computationnels, workflows, gestionnaires de suivi de version, archives, intégration continue, ... \ No newline at end of file