On voit bien la structure du calcul, y compris le traitement des régions en parallèle.
* Cherchez l'erreur!
Il y a un point très important que j'ai laissé de côté jusqu'à maintenant pour me concentrer sur la partie technique: comment écrire et exécuter un workflow. Ce point est plutôt de nature méthodologique: il s'agit de la surveillance de possibles erreurs.
Dans les documents computationnels du module 3, nous avons exécuté des petits bouts de code à la main et regardé les résultats. Nous l'avons fait pour bien comprendre ce qui se passe, et pour décider comment procéder. Dans un workflow, tout est automatisé, et tous les résultats finissent dans des fichiers que nous pourrions regarder, mais la plupart du temps nous ne les regardons pas. Regarder un plot d'une incidence hebodamadaire sur quelques décennies, c'est intéressant. En regarder 13 qui se ressemblent devient une corvée. Mais si nous ne regardons jamais les résultats, nous pouvons facilement passer à côté d'erreurs insoupçonnées. Et oui, ça arrive dans la vraie vie, même à des chercheurs expérimentés.
Il est donc primordial d'introduire des vérifications dans un workflow, et de faciliter l'inspection manuelle des possibles erreurs. Dans ma règle =preprocess=, j'ai écrit les messages d'erreur dans des fichiers spécifiques, sans les melanger avec les résultats comme on ferait dans un document computationnel. Alors regardons-les!
#+begin_src sh :session *snakemake2* :results output :exports both
14 days, 0:00:00 between 1989-05-01 and 1989-05-15
#+end_example
Sans inspecter ces messages, auriez-vous soupçonné qu'il manquent tant de données pour la Corse, par exemple? Et si je n'avais pas fait attention à les rendre faciles à inspecter, l'auriez-vous fait quand-même?
On peut d'ailleurs se demander comment il est possible d'avoir tant de points manquants dans les données régionales, mais un seul point manquant dans les données nationales qui devraient, en théorie, être simplement la somme sur les régions. Mais c'est une question que seul le Réseau Sentinelles peut répondre.