# Formation EBAII Niveau 2 - Science ouverte et principes FAIR dans un projet de bioinformatique

Thomas Denecker, Charlotte Berthelier

► To cite this version:

Thomas Denecker, Charlotte Berthelier. Formation EBAII Niveau 2 - Science ouverte et principes FAIR dans un projet de bioinformatique : Comment rendre un projet bioinformatique plus reproductible?. Master. Roscoff, France. 2023. hal-04113112

HAL Id: hal-04113112

https://hal.science/hal-04113112

Submitted on 1 Jun 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
<figure><img src="image_2.png" /></figure>

# Science ouverte et principes FAIR dans un projet de bioinformatique

## Comment rendre un projet bioinformatique plus reproductible ?

Roscoff, 4-9 juin 2023

Charlotte Berthelier, Thomas Denecker & l' équipe formation de l'IFB

<figure><img src="image_3.png" /></figure>

<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /></figure>

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>

<figure><img src="image_8.png" /></figure>

<figure><img src="image_9.png" /></figure>
<figure><img src="image_10.png" /></figure>

Attribution - Partage dans les Mêmes
Conditions 2.0 France (CC BY-SA 2.0 FR)

This is a human-readable summary of (and not a substitute for) the license. Avertissement

<figure><img src="image_11.png" /></figure>

Vous êtes autorisé à :

**Partager** — copier, distribuer et communiquer le matériel par
tous moyens et sous tous formats

**Adapter** — remixer, transformer et créer à partir du matériel pour toute utilisation, y compris commerciale.

L'Oeffrant ne peut retirer les autorisations concédées par la licence
tant que vous appliquez les termes de cette licence.

<figure><img src="image_12.png" /></figure>

Selon les conditions suivantes :

<figure><img src="image_13.png" /></figure>

**Attribution** — Vous devez **crediter** l'Œuvre, intégrer un lien vers la licence et **indiquer** si des modifications ont été effectuées à l'Œuvre. Vous devez indiquer ces informations par tous les moyens raisonnables, sans toutefois suggérer que l'Oeffrant vous soutient ou soutient la façon dont vous avez utilisé son Œuvre.

<figure><img src="image_14.png" /></figure>

**Partage dans les Mêmes Conditions** — Dans le cas où vous effectuez un remix, que vous transformez, ou crééz à partir du matériel composant l'Œuvre originale, vous devez diffuser l'Œuvre modifiée dans les même conditions, c'est à dire avec la même licence avec laquelle l'Œuvre originale a été diffusée.

**Pas de restrictions complémentaires** — Vous n'êtes pas autorisé à appliquer des conditions légales ou des mesures techniques qui restreindraient légalement autrui à utiliser l'Œuvre dans les conditions décrites par la licence.

<figure><img src="image_15.png" /></figure>

<figure><img src="image_16.png" /></figure>

https://creativecommons.org/licenses/by-sa/2.0/fr/

Un contenu trouvable simplement,
accessible, décrit et réutilisable

Les slides

https://doi.org/10.6084/m9 figshare.23275349.v3

Le code

https://github.com/IFB-ElixirFr/FAIR_EBAII_n2

DOI 10.5281/zenodo.4800637

Site web

https://ifb-elixirfr.github.io/FAIR_EBAII_n2/

<figure><img src="image_17.png" /></figure>

<figure><img src="image_18.png" /></figure>
Contexte
De plus en plus de données

<figure><img src="image_19.png" /></figure>

Data is the new oil

Clive Humby

Data is the new oil? No: Data is the new soil.

David Mccandless

<figure><img src="image_20.png" /></figure>
Quelques chiffres au quotidien

<figure><img src="image_21.png" /></figure>

https://www.domo.com/data-never-sleeps#

<figure><img src="image_22.png" /></figure>
En biologie, c'est pareil !

<figure><img src="image_23.png" /></figure>

-Sequences (116.3 trillions) - Bases (19,938.8 trillions)

<figure><img src="image_24.png" /></figure>

ENA

European Nucleotide Archive

<figure><img src="image_25.png" /></figure>

<figure><img src="image_26.png" /></figure>

PRIDE

Proteomics IDEntifications Database

<figure><img src="image_27.png" /></figure>

IFB

INSTITUT FRANÇAIS DE L'BIONFORMATIQUE

<figure><img src="image_28.png" /></figure>

ABIMS

<figure><img src="image_29.png" /></figure>
## Data deluge en biologie

<table><thead><tr><td>Type de données</td><td>Base de données</td><td>Volumes de données</td></tr></thead><tbody><tr><td>Mesures de l'expression des gènes</td><td>ArrayExpress</td><td>72 938 experiments<br/>2 429 810 assays<br/>56,68 TB of archived data</td></tr><tr><td>Mesures de l'expression des gènes</td><td>GEO</td><td>5 570 704 échantillons</td></tr><tr><td>Structure 3D des protéines</td><td>PDB</td><td>177 009 Structures</td></tr><tr><td>Séquence nucléotidiques</td><td>GenBank</td><td>241 830 635 séquences et<br/>1 731 302 248 418 bases</td></tr><tr><td>Données d'identification ou de<br/>quantification des protéines</td><td>Pride</td><td>580 917 268 spectres de masse</td></tr><tr><td>Séquence nucléotidiques (COVID-19)</td><td>GISAID (EpiCoV)</td><td>15 158 725 séquences virales</td></tr></tbody></table>

MAJ : Mars 2023
## Comment ?

Cout

<figure><img src="image_30.png" /><figcaption>Prix par génome humain</figcaption></figure>

<figure><img src="image_31.png" /></figure>

<figure><img src="image_32.png" /></figure>

Vitesse

<figure><img src="image_33.png" /></figure>

### Dans les années 90

4 ans pour le premier milliard de nucléotides du génome humain

### Aujourd'hui

Le génome complet en moins de 24h

<figure><img src="image_34.png" /></figure>
# Pourquoi ? Créer de la connaissance !

<figure><img src="image_35.png" /></figure>

<figure><img src="image_36.png" /></figure>
## Pourquoi générer toujours plus de données ?

Pourquoi ne pas simplement exploiter les données déjà disponibles ?

- La description des données est encore trop souvent incomplète ;

- Les données ne sont pas facilement récupérables ;

- Il n'y a souvent pas de contrôle systématique des erreurs par des experts ;

- Les données ne sont pas générées exactement de la façon souhaitée ;

- Une question de confiance.

**Conclusion** : Plus simple ? Plus rapide ? Plus sûr ?

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>
Une question de confiance

<figure><img src="image_39.png" /></figure>

Lin, D., Crabtree, J., Dillo, I. et al. The TRUST Principles for digital repositories. Sci Data 7, 144 (2020).
https://doi.org/10.1038/s41597-020-0486-7

<figure><img src="image_40.png" /></figure>
Les 3 “R” de la confiance

R
éplicabilité
répétabilité
reproductibilité

Souvent utilisées mais souvent confondues
et notamment par la langue (Plesser, 2018)

<figure><img src="image_41.png" /></figure>
## Réplicabilité

Jour J

<figure><img src="image_42.png" /></figure>

<figure><img src="image_43.png" /></figure>

> “L’étroitesse de l’accord entre les résultats individuels successifs obtenus sur le même échantillon soumis à l’essai dans le même laboratoire et dans les conditions suivantes : même analyste, même appareil, même jour”

<figure><img src="image_44.png" /></figure>

https://doi.org/10.17226/25303

> “Obtaining consistent results across studies aimed at answering the same scientific question, each of which has obtained its own data”

<figure><img src="image_45.png" /></figure>
## Répétabilité

<figure><img src="image_46.png" /></figure>

<figure><img src="image_47.png" /></figure>

> “L'étroitesse de l'accord entre les résultats individuels obtenus sur le même échantillon soumis à l'essai dans le même laboratoire et dont au moins l'un des éléments suivants est différent : l'analyste, l'appareil, le jour”

<figure><img src="image_48.png" /></figure>

https://doi.org/10.17226/25303

> “The measurement can be obtained with stated precision by the same team using the same measurement procedure, the same measuring system, under the same operating conditions, in the same location on multiple trials. For computational experiments, this means that a researcher can reliably repeat her own computation”

<figure><img src="image_49.png" /></figure>
## Reproductibilité

<figure><img src="image_50.png" /></figure>

<figure><img src="image_51.png" /></figure>

"L'étroitesse de l'accord entre les résultats individuels obtenus sur le même échantillon soumis à l'essai dans des laboratoires différents et dans les conditions suivantes : analyste différent, appareil différent, jour différent ou même jour"

<figure><img src="image_52.png" /></figure>

acm
Association for
Computing Machinery

"Obtaining consistent computational results using the same input data, computational steps, methods, code, and conditions of analysis"

<figure><img src="image_53.png" /></figure>
En résumé

<table><thead><tr><th colspan="3">Data</th></tr><tr><th></th><th></th><th>Same</th><th>Different</th></tr></thead><tbody><tr><th rowspan="2">Code</th><th>Same</th><td>Reproducible</td><td>Replicable</td></tr><tr><th>Different</th><td>Robust</td><td>Generalisable</td></tr></tbody></table>

https://doi.org/10.6084/m9 figshare.5443201.v1,
# Recommandations pour être reproductible

## Description de la partie expérimentale

Méthodes, instruments, procédures, mesures, conditions expérimentales

<figure><img src="image_54.png" /></figure>

https://doi.org/10.17226/25303

## Description de la partie computationnelle

Etapes de l'analyse des données et choix techniques

## Description de la partie statistique

Décisions analytiques : quand, comment, pourquoi

## Discussion des choix et des résultats obtenus
Et dans les faits ?
## Les données face aux ravages du temps

### Data Entropy

**MISSING DATA**

As research articles age, the odds of their raw data being extant drop dramatically.

<figure><img src="image_55.png" /></figure>

Vives, T. H. et al Curr. Biol. http://www.biol.univodx.fr/abab-2013-11.01.04 (2013)

DataONE

3
Récupérer les données

<figure><img src="image_56.png" /></figure>

https://youtu.be/66oNv_DJuPc

<figure><img src="image_57.png" /></figure>
Reproduire les données

<figure><img src="image_58.png" /></figure>

Kim et al, 2018

https://dx.doi.org/10.1093%2Fgigascience%2Fgiy077

<figure><img src="image_59.png" /></figure>
## En biologie

70 %

des analyses en biologie
expérimentale ne sont
pas reproductibles

Ten Years Reproducibility Challenge : êtes vous
capables de refaire vos analyses d'il y a 10 ans ?

<figure><img src="image_60.png" /></figure>

Monya Baker, 2016

<figure><img src="image_61.png" /></figure>
## En informatique

<figure><img src="image_62.png" /></figure>

(Collberg et al. 2015)

<figure><img src="image_63.png" /></figure>
Comment rendre un projet bioinformatique plus
reproductible ?
<figure><img src="image_64.png" /></figure>
# PARTIE I

## Du point de vue de l'analyse des données
# L'objectif ?

## Être plus FAIR !

Utiliser des outils et des méthodes pour produire des résultats liés à la problématique scientifique tout en étant FAIR

<figure><img src="image_65.png" /></figure>

<figure><img src="image_66.png" /></figure>

cirad

LA REDORCHE ACRONOMIQUE
POUR LE DÉVELOPPEMENT

donnees-recherche@cirad.fr

<figure><img src="image_67.png" /></figure>

IFB

NETTOYER FINANSIQUES DU BONFOUMATIQUE

elixir
FRANCE

ABIMS
Des principes hérités des principes FAIR data

Findable

<figure><img src="image_68.png" /></figure>

Accessible

<figure><img src="image_69.png" /></figure>

Interoperable

<figure><img src="image_70.png" /></figure>

Reusable

<figure><img src="image_71.png" /></figure>
Des principes hérités des principes FAIR data

Q F

<figure><img src="image_72.png" /></figure>

A

<figure><img src="image_73.png" /></figure>

I

<figure><img src="image_74.png" /></figure>

R

<figure><img src="image_75.png" /></figure>
# Des principes hérités des principes FAIR data

<figure><img src="image_76.png" /></figure>

## Facile à trouver (pour l'Homme et la machine)

- Identifiant unique (un DOI par exemple)

- Métadonnées décrivant l'analyse et les outils ; elles sont FAIR, consultables et indexables

- Protocoles d'analyses simples à trouver (GitHub pages)

<figure><img src="image_77.png" /></figure>

A

<figure><img src="image_78.png" /></figure>

I

<figure><img src="image_79.png" /></figure>

R

<figure><img src="image_80.png" /></figure>
# Des principes hérités des principes FAIR data

<figure><img src="image_81.png" /></figure>

## Facile à trouver (pour l'Homme et la machine)

- Identifiant unique (un DOI par exemple)

- Métadonnées décrivant l'analyse et les outils ; elles sont FAIR, consultables et indexables

- Protocoles d'analyses simples à trouver (GitHub pages)

<figure><img src="image_82.png" /></figure>

## Accessible

- Ressources disponibles (GitHub, DockerHub) et outils tiers open source (conda)

- Les métadonnées sont accessibles, même lorsque le logiciel n'est plus disponible

<figure><img src="image_83.png" /></figure>

I

<figure><img src="image_84.png" /></figure>

R

<figure><img src="image_85.png" /></figure>
# Des principes hérités des principes FAIR data

<figure><img src="image_86.png" /></figure>

## Facile à trouver (pour l'Homme et la machine)

- Identifiant unique (un DOI par exemple)

- Métadonnées décrivant l'analyse et les outils ; elles sont FAIR, consultables et indexables

- Protocoles d'analyses simples à trouver (GitHub pages)

<figure><img src="image_87.png" /></figure>

## Accessible

- Ressources disponibles (GitHub, DockerHub) et outils tiers open source (conda)

- Les métadonnées sont accessibles, même lorsque le logiciel n'est plus disponible

<figure><img src="image_88.png" /></figure>

## Interopérable

- Coopération des outils (snakemake, docker) aussi bien en local que sur serveurs (cloud ou cluster)

<figure><img src="image_89.png" /></figure>

## R

<figure><img src="image_90.png" /></figure>
# Des principes hérités des principes FAIR data

<figure><img src="image_91.png" /></figure>

## Facile à trouver (pour l'Homme et la machine)

- Identifiant unique (un DOI par exemple)

- Métadonnées décrivant l'analyse et les outils ; elles sont FAIR, consultables et indexables

- Protocoles d'analyses simples à trouver (GitHub pages)

<figure><img src="image_92.png" /></figure>

## Accessible

- Ressources disponibles (GitHub, DockerHub) et outils tiers open source (conda)

- Les métadonnées sont accessibles, même lorsque le logiciel n'est plus disponible

<figure><img src="image_93.png" /></figure>

## Interopérable

- Coopération des outils (snakemake, docker) aussi bien en local que sur serveurs (cloud ou cluster)

<figure><img src="image_94.png" /></figure>

## Réutilisable

- Protocole rejouable (snakemake) à l'identique (Jupyter) dans un environnement virtuel (docker)

<figure><img src="image_95.png" /></figure>
# Pour aller plus loin

scientific data

OPEN

ARTICLE

## Introducing the FAIR Principles for research software

Michelle Barker<fnref n="1" />,², Neil P. Chue Hong<fnref n="1" />, Daniel S. Katz<fnref n="1" />,², Anna-Lena Lamprecht<fnref n="1" />,², Carlos Martinez-Ortiz<fnref n="1" />,5, Fotis Psomopoulos⁴, Jennifer Harrow⁴, Leyla Jael Castro⁴, Morane Gruenpeck³, Paula Andrea Martinez<fnref n="1" />,⁵ & Tom Honeyman<fnref n="1" />,¹¹

Research software is a fundamental and vital part of research, yet significant challenges to discoverability, productivity, quality, reproducibility, and sustainability exist. Improving the practice of scholarship is a common goal of the open science, open source, and FAIR (Findable, Accessible, Interoperable and Reusable) communities and research software is now being understood as a type of digital object to which FAIR should be applied. This emergence reflects a maturation of the research community to better understand the crucial role of FAIR research software in maximising research value. The FAIR for Research Software (FAIR4RS) Working Group has adapted the FAIR Guiding Principles to create the FAIR Principles for Research Software (FAIR4RS Principles). The contents and context of the FAIR4RS Principles are summarised here to provide the basis for discussion of their adoption. Examples of implementation by organisations are provided to share information on how to maximise the value of research outputs, and to encourage others to amplify the importance and impact of this work.

### Introduction

In 2016 the publication of "The FAIR Guiding Principles for scientific data management and stewardship<fnref n="1" />" supported a vision where valuable scientific outputs are made 'FAIR' by becoming more Findable, Accessible, Interoperable and Reusable. From the outset, the FAIR Guiding Principles were intended to be applicable to many kinds of digital assets. Increased understanding of the importance of research software in research has catalysed applications of the FAIR Guiding Principles to this type of digital asset. Community-endorsed FAIR principles for research software were released in 2022 by the FAIR for Research Software (FAIR4RS) Working Group (WG), which was jointly convened by the Research Software Alliance (RSA). Future Of Research Communications and E-Scholarship (FORCE11), and the Research Data Alliance (RDA). This milestone reflects the maturation of the research community in understanding the benefits of having FAIR research software, and coming together as the FAIR4RS WG to achieve this. The FAIR4RS WG is a global and interdisciplinary community whose members share an interest in the application of FAIR principles to research software, such as researchers, software users, developers and maintainers, policy makers, infrastructure support staff, and funders.

The FAIR4RS Principles are relevant to any stakeholder in the research community seeking to increase transparency, reproducibility, and reusability of research. This paper highlights the importance of the FAIR4RS Principles and the positive signals of adoption that demonstrate high levels of community support. It must also be acknowledged that research software and data discoverability is a long-standing challenge and there have

<footnote n="1">¹Research Software Alliance, QLD 4780, Cairns, Australia. ²Software Sustainability Institute & EPCC, University of Edinburgh, 47 Potterrow, Edinburgh, EH8 8BT, UK. ³NCSA & CS & ECE & ISchool, University of Illinois at Urbana-Champaign, 1205 W Clark St., Urbana, IL, 61801, USA. ⁴Institute of Computer Science, University of Potsdam, An der Bahn 2, 14476, Potsdam, Germany. ⁵Netherlands eScience Center, Science Park 140, 1098 XS, Amsterdam, Netherlands. ⁶Institute of Applied Biosciences, Centre for Research and Technology Helias, Thessaloniki, 17001, Greece. ⁷ELIXIR Hub, South Building, Wellcome Genome Campus, Hinxton, Cambridgeshire, CB10 1SD, UK. ⁸Semantic Technologies team, ZB MED Information Centre for Life Sciences, Gleator Strasse 60, 50931, Cologne, Germany. ⁹Software Heritage, Inria, 2 rue Simone IFP, Paris, 75012, France. ¹⁰Research Software Alliance/Australian Research Data Commons, Level 6, Dhugah Tower, The University of Queensland, Brisbane, QLD 4072, Australia. ¹¹Australian Research Data Commons, University of Technology Sydney Library, Ultimo, NSW, 2007, Australia. The e-mail: michelle@researchsoft.org</footnote>
Exemple d'utilisation
## Plan expérimental

Étude de la réponse à une privation en fer chez l'algue verte *Ostreococcus tauri*
16 échantillons de données RNAseq (triplicat, single-end de 100bp)

<figure><img src="image_96.png" /></figure>

(Lelandais et al. 2016)

Données réduites pour la démonstration

<figure><img src="image_97.png" /></figure>
## Analyse de données

<figure><img src="image_98.png" /></figure>

<figure><img src="image_99.png" /></figure>
Notre question à présent ?

# Comment réaliser cette analyse
de façon reproductible ?

(et pourquoi pas la rejouer en un click)
## Proposition en 7 étapes

<figure><img src="image_100.png" /></figure>
Des choix techniques équivalents

GitHub

<figure><img src="image_101.png" /></figure>

<figure><img src="image_102.png" /></figure>

<figure><img src="image_103.png" /></figure>

GitLab

<figure><img src="image_104.png" /></figure>

Atlassian

Bitbucket

<figure><img src="image_105.png" /></figure>

docker

<figure><img src="image_106.png" /></figure>

<figure><img src="image_107.png" /></figure>

<figure><img src="image_108.png" /></figure>

Snakemake

<figure><img src="image_109.png" /></figure>

nextflow

<figure><img src="image_110.png" /></figure>

CMake

<figure><img src="image_111.png" /></figure>

ifb

INSTITUT FRANÇAIS
DE SITES ET MATIÈRES

<figure><img src="image_112.png" /></figure>

ABiMS

aws

<figure><img src="image_113.png" /></figure>

<figure><img src="image_114.png" /></figure>

Microsoft

Azure

<figure><img src="image_115.png" /></figure>

Google Cloud

<figure><img src="image_116.png" /></figure>

IFB

INSTITUT FRANÇAIS DE SITES ET MATIÈRES

elixir
FRANCE

ABiMS
# Etape 1 - Versionner le code et le partager

## Pourquoi ?

- Figer la version du code

- Vision dans le temps

- Partage & ouverture à la communauté

<figure><img src="image_117.png" /></figure>

<figure><img src="image_118.png" /></figure>
## Etape 1 - Versionner le code et le partager

### "FINAL".doc

<figure><img src="image_119.png" /><figcaption>FINAL.doc!</figcaption></figure>

<figure><img src="image_120.png" /></figure>

<figure><img src="image_121.png" /><figcaption>FINAL_rev.2.doc</figcaption></figure>

<figure><img src="image_122.png" /><figcaption>FINAL_rev.6.COMMENTS.doc</figcaption></figure>

<figure><img src="image_123.png" /><figcaption>FINAL_rev.8.comments5. CORRECTIONS.doc</figcaption></figure>

<figure><img src="image_124.png" /></figure>

<figure><img src="image_125.png" /><figcaption>FINAL_rev.18.comments7. corrections9.MORE.30.doc</figcaption></figure>

<figure><img src="image_126.png" /><figcaption>FINAL_rev.22.comments49. corrections10.#$%WHYDIDICOMETOGRADSCHOOL????.doc</figcaption></figure>

<figure><img src="image_127.png" /></figure>
## Etape 1 - Versionner le code et le partager

"FINAL".doc

<figure><img src="image_128.png" /><figcaption>FINAL.doc!</figcaption></figure>

<figure><img src="image_129.png" /></figure>

<figure><img src="image_130.png" /><figcaption>FINAL_rev.2.doc</figcaption></figure>

<figure><img src="image_131.png" /><figcaption>FINAL_rev.6.COMMENTS.doc</figcaption></figure>

<figure><img src="image_132.png" /><figcaption>FINAL_rev.8.comments5. CORRECTIONS.doc</figcaption></figure>

<figure><img src="image_133.png" /></figure>

<figure><img src="image_134.png" /><figcaption>FINAL_rev.18.comments7. corrections9.MORE.30.doc</figcaption></figure>

<figure><img src="image_135.png" /><figcaption>FINAL_rev.22.comments49. corrections.10.#@$%WHYDIDICOMETOGRADSCHOOL????.doc</figcaption></figure>

<figure><img src="image_136.png" /></figure>

WWW.PHDCOMICS.COM

JOSÉ CUMA © 2012

<figure><img src="image_137.png" /></figure>

<figure><img src="image_138.png" /></figure>

git

<figure><img src="image_139.png" /></figure>

GitHub

<figure><img src="image_140.png" /></figure>

GitLab

### Avantages

- Sauvegarde du code

- Simple pour partager

- Gestion automatique des versions, fusionne les différentes modifications

### Inconvénients

- Pas simple pour les novices

<figure><img src="image_141.png" /></figure>

IFB

NETTOYER LE BONFORMAATIF

<figure><img src="image_142.png" /></figure>

elixir
FRANCE
## Etape 1 - Versionner le code et le partager

"FINAL".doc

<figure><img src="image_143.png" /><figcaption>FINAL.doc!</figcaption></figure>

<figure><img src="image_144.png" /></figure>

<figure><img src="image_145.png" /><figcaption>FINAL_rev.2.doc</figcaption></figure>

<figure><img src="image_146.png" /><figcaption>FINAL_rev.6.COMMENTS.doc</figcaption></figure>

<figure><img src="image_147.png" /></figure>

<figure><img src="image_148.png" /><figcaption>FINAL_rev.8.comments5.CORRECTIONS.doc</figcaption></figure>

<figure><img src="image_149.png" /><figcaption>FINAL_rev.18.comments7.corrections9.MORE.30.doc</figcaption></figure>

<figure><img src="image_150.png" /></figure>

<figure><img src="image_151.png" /><figcaption>FINAL_rev.22.comments49.corrections.10.#@%?WHYDIDICOMETOGRADSCHOOL????.doc</figcaption></figure>

WWW.PHDCOMICS.COM

JOSÉE CAMI © 2012

<figure><img src="image_152.png" /></figure>

git

<figure><img src="image_153.png" /></figure>

<figure><img src="image_154.png" /></figure>

GitHub

<figure><img src="image_155.png" /></figure>

GitLab

## Après

IFB-ElixirFr / IFB-FAIR-bioinfo-training

Code

Issues

Pull requests

Actions

Projects

Wiki

Security

Insights

Settings

<figure><img src="image_156.png" /></figure>

master

<figure><img src="image_157.png" /></figure>

2 branches

<figure><img src="image_158.png" /></figure>

2 tags

Go to file

Add file

<figure><img src="image_159.png" /></figure>

Code

About

<figure><img src="image_160.png" /></figure>

Formation continue sur la FAIRisation du code informatique

<figure><img src="image_161.png" /></figure>

bioinformatics fair

Readme

AGPL-3.0 License

Releases

Tess release Latest
8 days ago

+1 release

Packages

No packages published
Publish your first package

Contributors

<figure><img src="image_162.png" /></figure>

Environments

github-pages Active

<figure><img src="image_163.png" /></figure>

thomasdenecker add new links

<figure><img src="image_164.png" /></figure>

92e2188 on 2 Sep 61 commits

<figure><img src="image_165.png" /></figure>

docs

add new links

3 months ago

<figure><img src="image_166.png" /></figure>

gitignore

ignore DS_Store files

3 months ago

<figure><img src="image_167.png" /></figure>

images.zip

to unzip for github.md

3 months ago

<figure><img src="image_168.png" /></figure>

LICENSE

Initial commit

3 months ago

<figure><img src="image_169.png" /></figure>

README.md

Update README.md

3 months ago

<figure><img src="image_170.png" /></figure>

_config.yml

Set theme jekyl theme-cayman

3 months ago

README.md

<figure><img src="image_171.png" /></figure>

### Les principes FAIR appliqués à la bioinformatique

L'Institut Français de Bioinformatique (IFB) organise en partenariat avec l'Institut de Biologie intégrative de la Cellule (I2BC) une formation à destination des bioinformaticiens et biostatisticiens souhaitant mettre en oeuvre les principes "FAIR" (Facile à trouver, Accessible, Interoperable, Réutilisable) dans leurs projets d'analyse et de développement. Les concepts FAIR, initialement définis dans le contexte d'ouverture des données de la recherche, seront ici adaptés pour cadrer avec un projet type de développement et/ou analyse bioinformatique/biostatistique. Ainsi, la formation n'aborde pas les aspects "FAIR" spécifiques aux données mais introduira plusieurs outils permettant d'améliorer la reproductibilité des analyses.

Pour plus d'informations (programme, slides, ...), un site web de la formation est disponible ici.

### Objectifs pédagogiques

A la fin de cette formation, les participants pourront mettre en oeuvre les principes de la science reproductible : encapsuler un environnement de travail, concevoir et exécuter des workflows, gérer des versions de code, passer à l'échelle sur un cluster de calcul, gérer des environnements logiciels et assurer la traçabilité de leur analyse à l'aide de Notebooks.

### La formation organisée en deux temps

La formation s'organise en deux temps :
# Etape 2 - Création d'un environnement virtuel

## Pourquoi ?

- Figer l'environnement

- Partager l'environnement

<figure><img src="image_172.png" /></figure>
# Etape 2 - Création d'un environnement virtuel

## Avant

<figure><img src="image_173.png" /></figure>

<figure><img src="image_174.png" /></figure>
## Etape 2 - Création d'un environnement virtuel

Avant

<figure><img src="image_175.png" /></figure>

<figure><img src="image_176.png" /></figure>

<figure><img src="image_177.png" /></figure>

### Avantages

- Rapide et léger

- Portable

- Simple à partager et déployer

### Inconvénients

- Avec un système à jour

- Accepté dans votre structure ?

<figure><img src="image_178.png" /></figure>
## Etape 2 - Création d'un environnement virtuel

Avant

<figure><img src="image_179.png" /></figure>

Après : figé un outil
(R & un package)

<figure><img src="image_180.png" /></figure>

docker

<figure><img src="image_181.png" /></figure>

FROM rocker/tidyverse

MAINTAINER Thomas DENECKER (thomas.denecker@gmail.com)

RUN Rscript -e
'devtools::install_github("PF2-pasteur-fr/SARTools",
build_options="--no-resave-data")'

<figure><img src="image_182.png" /></figure>
# Etape 3 - Installation des outils par un gestionnaire

## Pourquoi ?

- Avoir la bonne version

- Installer simplement

<figure><img src="image_183.png" /></figure>

<figure><img src="image_184.png" /></figure>
# Etape 3 - Installation des outils par un gestionnaire

Avant : exemple de FastQC

1) Télécharger la source

2) Décompresser le dossier

3) Installer et mettre à jour Java
(nombreux problèmes)

4) Changer les droits
## Etape 3 - Installation des outils par un gestionnaire

Avant : exemple de FastQC

1) Télécharger la source

2) Décompresser le dossier

3) Installer et mettre à jour Java
(nombreux problèmes)

4) Changer les droits

CONDA

### Avantages

- Gestionnaire simple à installer

- Installation simple des paquets

- Gestion des versions

### Inconvénients

- Peut être lourd (solution miniconda)

- Paquets manquants (R)

<figure><img src="image_185.png" /></figure>
## Etape 3 - Installation des outils par un gestionnaire

### Avant : exemple de FastQC

1) Télécharger la source

2) Décompresser le dossier

3) Installer et mettre à jour Java
(nombreux problèmes)

4) Changer les droits

CONDA

<figure><img src="image_186.png" /></figure>

### Après

```
$ conda install -c bioconda -y fastqc=0.12.1
```

Tous les outils utilisés dans le protocole sont disponibles sur Conda (https://anaconda.org/) : bowtie2, samtools, htseqcount, aspera, snakemake, ...

Installation simple en une ligne !
## Etape 4 - Création d'un script d'analyse

### Pourquoi ?

- Avoir un script d'analyse reproductible

- Ne pas refaire ce qui est déjà fait

- Paralléliser

<figure><img src="image_187.png" /></figure>

<figure><img src="image_188.png" /></figure>
# Etape 4 - Création d'un script d'analyse

## Avant (script Shell)

```
for sample in `ls *.fastq.gz`
do
    fastqc ${sample}
done
```
## Etape 4 - Création d'un script d'analyse

### Avant (script Shell)

```
for sample in `ls *.fastq.gz`
do
    fastqc ${sample}
done
```

<figure><img src="image_189.png" /></figure>

<figure><img src="image_190.png" /></figure>

Snakemake

### Avantages

- Workflow (gestion des jobs)

- Puissant et rapide

- Capable d'utiliser des environnements Conda

- Parallélisable sur un cluster

### Inconvénients

- Une logique à apprendre

- Syntaxe moins simple que le script shell
## Etape 4 - Création d'un script d'analyse

### Avant (script Shell)

```
for sample in `ls *.fastq.gz`
do
    fastqc ${sample}
done
```

<figure><img src="image_191.png" /></figure>

Plus court à écrire mais pas à exécuter !

### Après (Snakefile)

```
$ cat > Snakefile
SAMPLES, =
glob_wildcards("./samples/{smp}.fastq.gz")

rule final:
input: expand("fastqc/{smp}/{smp}_fastqc.zip", smp
=SAMPLES)

rule fastqc:
input: "samples/{smp}.fastq.gz"
output: "fastqc/{smp}/{smp}_fastqc.zip"
message: """Quality check"""
shell: """fastqc {input} --outdir
fastqc/{wildcards.smp}"""
$ snakemake
```
## Où en sommes nous ?

<figure><img src="image_192.png" /></figure>
# Etape 5 - Déporter l'analyse sur un serveur

## Pourquoi ?

- Environnement contrôlé

- Déport de l'analyse

<figure><img src="image_193.png" /></figure>

<figure><img src="image_194.png" /></figure>
# Etape 5 - Déporter l'analyse sur un serveur

Avant

Adaptation en local et sur les serveurs difficile voire non gérée ...

<figure><img src="image_195.png" /></figure>
## Etape 5 - Déporter l'analyse sur un serveur

### Avant

Adaptation en local et sur les serveurs difficile voire non gérée ...

<figure><img src="image_196.png" /></figure>

<figure><img src="image_197.png" /></figure>

ifb
INSTITUT FRANÇAIS
DE BIOFORMATIQUE

ABIMS

<figure><img src="image_198.png" /></figure>

Microsoft
Azure

aws

<figure><img src="image_199.png" /></figure>

Google Cloud

### Avantages

- Simple à mettre en place

- Augmentation de la puissance (cloud ou cluster)

- Pour tout le monde

### Inconvénients

- Pas simple pour les novices

- Attention aux données sensibles

<figure><img src="image_200.png" /></figure>

IFB

INSTITUT FRANÇAIS DE BIOFORMATIQUE

elixir
FRANCE

ABIMS
## Etape 5 - Déporter l'analyse sur un serveur

Avant

Adaptation en local et sur les serveurs difficile voire non gérée ...

<figure><img src="image_201.png" /></figure>

ifb

<figure><img src="image_202.png" /></figure>

Après

```
$ git clone
https://github.com/thomasdenecker/FAIR_Bioinfo
```

```
$ cd FAIR_Bioinfo
```

```
$ sudo docker run --rm -d -p 80:8888 --name fair_bioinfo -v ${PWD}:/home/rstudio tdenecker/fair_bioinfo bash ./FAIR_script.sh
```

Le protocole est lancé !

<figure><img src="image_203.png" /></figure>

IFB

INSTITUT FINANCIER DE LA BONFORMATIQUE

elixir
FRANCE

ABIMS
# Etape 6 - Portabilité de l'exploration des résultats

Pourquoi ?

- Rendre simple l'exploration

- Simple à partager

<figure><img src="image_204.png" /></figure>

<figure><img src="image_205.png" /></figure>
# Etape 6 - Portabilité de l'exploration des résultats

## Avant : Terminal R

```r
dds <- DESeqDataSetFromMatrix(countData =
cts, colData = coldata, design= ~ batch +
condition)
```

```r
dds <- DESeq(dds)
resultsNames(dds) # lists the coefficients
res <- results(dds, name =
"condition_trt_vs_untrt")
```

```r
# or to shrink log fold changes
# association with condition:
res <- lfcShrink(dds,
coef="condition_trt_vs_untrt", type="apeglm")
```
# Etape 6 - Portabilité de l'exploration des résultats

<figure><img src="image_206.png" /></figure>

## Avant : Terminal R

```r
dds <- DESeqDataSetFromMatrix(countData =
cts, colData = coldata, design= ~ batch +
condition)

dds <- DESeq(dds)
resultsNames(dds) # lists the coefficients
res <- results(dds, name =
"condition_trt_vs_untrt")

# or to shrink log fold changes
# association with condition:
res <- lfcShrink(dds,
coef="condition_trt_vs_untrt", type="apeglm")
```

## Avantages

- Portable (HTML)

- Accessible partout

- Interactif (paramétrable, graphes dynamiques, ...)

<figure><img src="image_207.png" /></figure>

## Inconvénients

- Mélange de R et de HTML
## Etape 6 - Portabilité de l'exploration des résultats

Avant : Terminal R

```R
dds <- DESeqDataSetFromMatrix(countData =
cts, colData = coldata, design= ~ batch +
condition)
```

```R
dds <- DESeq(dds)
resultsNames(dds) # lists the coefficients
res <- results(dds, name =
"condition_trt_vs_untrt")
```

```R
# or to shrink log fold changes
# association with condition:
res <- lfcShrink(dds,
coef="condition_trt_vs_untrt", type="apeglm")
```

<figure><img src="image_208.png" /></figure>

<figure><img src="image_209.png" /></figure>

<figure><img src="image_210.png" /></figure>
## Etape 7 - Editer un rapport d'analyse

### Pourquoi ?

- Avoir une trace de l'analyse
  (date, heure, paramètres, ...)

- Stocker les versions des outils

<figure><img src="image_211.png" /></figure>

<figure><img src="image_212.png" /></figure>
## Etape 7 - Editer un rapport d'analyse

Avant

<figure><img src="image_213.png" /></figure>

<figure><img src="image_214.png" /></figure>
## Etape 7 - Editer un rapport d'analyse

Avant

<figure><img src="image_215.png" /></figure>

<figure><img src="image_216.png" /></figure>

<figure><img src="image_217.png" /></figure>

<figure><img src="image_218.png" /></figure>

<figure><img src="image_219.png" /></figure>

### Avantages

- Syntaxe simple (Markdown)

- Partage (PDF, HTML, ...)

### Inconvénients

- Rares problèmes de visualisation en LATEX

<figure><img src="image_220.png" /></figure>
## Etape 7 - Editer un rapport d'analyse

Avant

<figure><img src="image_221.png" /></figure>

Après

### Statistical report of project Demo: pairwise comparison(s) of conditions with DESeq2

Thomas Denecker

2020-11-12

The SARTools R package which generated this report has been developed at PF2 - Institut Pasteur by M.-A. Dillies and H. Varet (hugo.varet@pasteur.fr). Thanks to cite H. Varet, L. Brillet-Guéguin, J.-Y. Coppie and M.-A. Dillies, SARTools: A DESeq2- and EdgeR-Based R Pipeline for Comprehensive Differential Analysis of RNA-Seq Data, PLoS One, 2016, doi: http://dx.doi.org/10.1371/journal.pone.0157022 when using this tool for any analysis published.

### 1 Introduction

The analyses reported in this document are part of the Demo project. The aim is to find features that are differentially expressed between STANDARD and DEPLETED. The statistical analysis process includes data normalization, graphical exploration of raw and normalized data, test for differential expression for each feature between the conditions, raw p-value adjustment and export of lists of features having a significant differential expression between the conditions.

The analysis is performed using the R software [1], Bioconductor [2] packages including DESeq2 [3,4] and the SARTools package developed at PF2 - Institut Pasteur. Normalization and differential analysis are carried out according to the DESeq2 model and package. This report comes with additional tab-delimited text files that contain lists of differentially expressed features.

For more details about the DESeq2 methodology, please refer to its related publications [3,4].

### 2 Description of raw data

The count data files and associated biological conditions are listed in the following table.

<table><caption>Table 1: Data files and associated biological conditions.</caption><thead><tr><th>label</th><th>files</th><th>Iron</th></tr></thead><tbody><tr><td>S1</td><td>SRR3095587, chr18, ftc.txt</td><td>STANDARD</td></tr><tr><td>S2</td><td>SRR3095588, chr18, ftc.txt</td><td>STANDARD</td></tr><tr><td>S3</td><td>SRR3095589, chr18, ftc.txt</td><td>STANDARD</td></tr><tr><td>D1</td><td>SRR3105659, chr18, ftc.txt</td><td>DEPLETED</td></tr><tr><td>D2</td><td>SRR3105659, chr18, ftc.txt</td><td>DEPLETED</td></tr><tr><td>D3</td><td>SRR3105659, chr18, ftc.txt</td><td>DEPLETED</td></tr></tbody></table>

After loading the data we first have a look at the raw data table itself. The data table contains one row per annotated feature and one column per sequenced sample. Raw names of this table are feature IDs (unique identifiers). The table contains raw count values representing the number of reads that map onto the features. For this project, there are 7659 features in the count data table.

<table><caption>Table 2: Partial view of the count data table.</caption><thead><tr><th></th><th>S1</th><th>S2</th><th>S3</th><th>D1</th><th>D2</th><th>D3</th></tr></thead><tbody><tr><th>cmat61ng00010</th><td>11</td><td>12</td><td>11</td><td>7</td><td>5</td><td>1</td></tr></tbody></table>

<figure><img src="image_222.png" /></figure>

<figure><img src="image_223.png" /></figure>

<figure><img src="image_224.png" /></figure>

<figure><img src="image_225.png" /></figure>
Conclusion
Quel est notre niveau de reproductibilité?

<figure><img src="image_226.png" /></figure>

Practical Computational Reproducibility in
the Life Sciences, Björn Grüning et al, 2018

<figure><img src="image_227.png" /></figure>
## Quel est notre niveau de reproductibilité?

<figure><img src="image_228.png" /></figure>

Practical Computational Reproducibility in
the Life Sciences, Björn Grüning et al, 2018

<figure><img src="image_229.png" /></figure>

FAIR
bioinfo

<figure><img src="image_230.png" /></figure>
Quel est notre niveau de reproductibilité?

<figure><img src="image_231.png" /></figure>

Practical Computational Reproducibility in
the Life Sciences, Björn Grüning et al, 2018

<figure><img src="image_232.png" /></figure>

<figure><img src="image_233.png" /></figure>

<figure><img src="image_234.png" /></figure>

<figure><img src="image_235.png" /></figure>

GitHub

<figure><img src="image_236.png" /></figure>

FAIR
bioinfo

<figure><img src="image_237.png" /></figure>
Quel est notre niveau de reproductibilité?

<figure><img src="image_238.png" /></figure>

Practical Computational Reproducibility in
the Life Sciences, Björn Grüning et al, 2018

<figure><img src="image_239.png" /></figure>

FAIR
bioinfo
## Quel est notre niveau de reproductibilité?

<figure><img src="image_240.png" /></figure>

Practical Computational Reproducibility in
the Life Sciences, Björn Grüning et al, 2018

5

<figure><img src="image_241.png" /></figure>

ifb

<figure><img src="image_242.png" /></figure>

3

CONDA

2

<figure><img src="image_243.png" /></figure>

1

<figure><img src="image_244.png" /></figure>

git

<figure><img src="image_245.png" /></figure>

GitHub

<figure><img src="image_246.png" /></figure>

FAIR
bioinfo

<figure><img src="image_247.png" /></figure>

IFB

NETTOYER FINANCIAL BONIFACIAL

<figure><img src="image_248.png" /></figure>

ABIMS

<figure><img src="image_249.png" /></figure>
## Quel est notre niveau de reproductibilité?

<figure><img src="image_250.png" /></figure>

Practical Computational Reproducibility in
the Life Sciences, Björn Grüning et al, 2018

<figure><img src="image_251.png" /></figure>

<figure><img src="image_252.png" /></figure>

FAIR
bioinfo

<figure><img src="image_253.png" /></figure>
## Take home messages

Une vraie réflexion sur la reproductibilité des analyses en Bioinformatique

Proposition d'une solution qui aide à rendre reproductible n'importe quel protocole d'analyse

La reproductibilité est une plus value pour la Bioinformatique !
## Un cercle vertueux

<figure><img src="image_254.png" /></figure>

FAIR raw data

+

FAIR_bioinfo scripts/protocols

=

FAIR processed data

<figure><img src="image_255.png" /></figure>
Mise en application

<figure><img src="image_256.png" /></figure>

FAIR
bioinfo

<figure><img src="image_257.png" /></figure>

ABiMS

Notre objectif

(Re)Découvrir des outils complémentaires pour gagner en reproductibilité

Notre créd o

FAIR raw data + FAIR bioinfo = FAIR processed data

Notre méthodologie

Rendre une analyse de données reproductible à partir de
données publiées

https://ifb-elixirfr.github.io/IFB-FAIR-bioinfo-training/index.html#home
## Ressources

### FAIR_bioinfo

- 2019 : https://github.com/thomasdenecker/FAIR_Bioinfo

- 2020 : https://ifb-elixirfr.github.io/IFB-FAIR-bioinfo-training/session2020.html

- 2021 : https://ifb-elixirfr.github.io/IFB-FAIR-bioinfo-training/session2021.html

### FAIR & le cluster de l'IFB

- Slurm : https://ifb-elixirfr.github.io/IFB-FAIR-bioinfo-training/assets/pdf/Session2020/04_cluster.pdf

- Snakemake + Slurm :
  https://ifb-elixirfr.github.io/IFB-FAIR-bioinfo-training/assets/pdf/Session2020/04 TP1 Snakemake.pdf

- Docker/Singularity :
  https://ifb-elixirfr.github.io/IFB-FAIR-bioinfo-training/assets/pdf/Session2020/04 TP2 Singularity.pdf

## Données

- Originale : https://trace.ncbi.nlm.nih.gov/Traces/sra/?run=SRR4026187

- Réduite : https://doi.org/10.5281/zenodo.3997237

<figure><img src="image_258.png" /></figure>
## Une belle équipe !

2019

<figure><img src="image_259.png" /></figure>

<figure><img src="image_260.png" /><figcaption>T. Denecker</figcaption></figure>

<figure><img src="image_261.png" /></figure>

<figure><img src="image_262.png" /><figcaption>C. Toffano-Nioche</figcaption></figure>

<figure><img src="image_263.png" /></figure>

2020-2023

<figure><img src="image_264.png" /><figcaption>C. Hernandez</figcaption></figure>

12BC

<figure><img src="image_265.png" /></figure>

<figure><img src="image_266.png" /><figcaption>H. Chiapello</figcaption></figure>

<figure><img src="image_267.png" /></figure>

<figure><img src="image_268.png" /><figcaption>G. Le Corguillé</figcaption></figure>

<figure><img src="image_269.png" /></figure>

<figure><img src="image_270.png" /><figcaption>P. Lieby</figcaption></figure>

<figure><img src="image_271.png" /></figure>

<figure><img src="image_272.png" /><figcaption>Y. Mahmah</figcaption></figure>

<figure><img src="image_273.png" /></figure>

<figure><img src="image_274.png" /><figcaption>J. Seiler</figcaption></figure>

<figure><img src="image_275.png" /></figure>

<figure><img src="image_276.png" /><figcaption>J. van Helden</figcaption></figure>
# PARTIE II

## Du point de vue des données
Questions préliminaires
Qu'est ce qu'une donnée de recherche ?

In the context of the OECD Recommendation of the Council Concerning Access to Research Data from Public Funding (OECD, 2006), “research data” are defined as **factual records** (numerical scores, textual records, images and sounds) **used as primary sources for scientific research** and that are **commonly accepted in the scientific community** as necessary to validate research findings. A research data set constitutes a systematic, partial representation of the subject being investigated.

Scientific data are very diverse: they include observational data, which record natural phenomena (in fields such as astronomy, geoscience and demography); **experimental data**, which record the outcomes of man-made experiments, such as laboratory experiments in physics, chemistry and **biology**, or clinical trials; computational data, which are generated through large-scale simulations; and reference data, which are highly curated datasets, such as the human genome.

OECD-ilibrary.org

<figure><img src="image_277.png" /></figure>
Qu'est ce qu'une métadonnée ?

Les métadonnées sont des « données qui décrivent des données » :

- **Information** structurée associée à un "objet", un document ou un jeu de données

- **Documentation** qui permet à l'utilisateur de comprendre, de comparer et d'échanger le contenu du jeu de données décrit

Il existe des standards de métadonnées :

- Standards minimaux (ex : Dublin Core)

- Standards métiers (ex : EML, DDI...)

Il est conseillé de produire les métadonnées **au moment de la collecte ou de la création** des données plutôt qu'à posteriori. Les métadonnées seront complétées **tout au long du cycle de vie des données**.

<figure><img src="image_278.png" /></figure>
## En résumé

<figure><img src="image_279.png" /></figure>

Les données

<figure><img src="image_280.png" /></figure>

Les métadonnées

<figure><img src="image_281.png" /></figure>
# C'est quoi le cycle de vie des données ?

Le modèle de UK Data Archive définit les six étapes suivantes :

- Création ou collecte des données (creating data) ;

- Traitement des données (processing data) ;

- Analyse des données (analysing data) ;

- Conservation des données (preserving data) ;

- Accès aux données (giving access to data / data discovery) ;

- Réutilisation des données (reusing data).

<figure><img src="image_282.png" /></figure>

Une introduction à la gestion et au partage des données de la recherche - Le cycle de vie des données

<figure><img src="image_283.png" /></figure>
## Et dans la “vraie vie” ?

### Le passé

* Le leg (du doctorant précédent ...)

* La biblio à TO

* Les méthodes pré existantes

### Le présent

* Les manipides

* La création de connaissance (méthodes, posters ...)

### Le futur

* Le manuscrit

* Les publications

### Des échantillons

* dans les frigos

* dans les tiroirs

### Des fichiers

* des petits, des gros

* un peu partout (PC, cloud, cluster)

* des données brutes, du code, des résultats

### De la connaissance

* des méthodes, du code

* des systèmes d'information

* des publications
## Mais au fait c'est quoi FAIR ?

Findable

<figure><img src="image_284.png" /></figure>

Accessible

<figure><img src="image_285.png" /></figure>

Interoperable

<figure><img src="image_286.png" /></figure>

Reusable

<figure><img src="image_287.png" /></figure>

Sangya Pundir

<figure><img src="image_288.png" /></figure>
Findable -- Faciliter la découverte des données

Findable

<figure><img src="image_289.png" /></figure>

- Les données ont un **PID** (Persistent IDentifier ou identifiant pérenne en français)

- Les données sont décrites par des métadonnées

- Ces métadonnées doivent être liées aux PIDs des données

- Les données sont déposées dans un entrepôt de données

https://doranum.fr/enjeux-benefices/principes-fair/

<figure><img src="image_290.png" /></figure>
Accessible -- Permettre l'accès aux données et leur téléchargement

Accessible

<figure><img src="image_291.png" /></figure>

- Les données sont accessibles à travers un **protocole de communication standard**

- Ce protocole est **libre et ouvert**

- Ce protocole permet un accès par **authentification** si besoin

- Les métadonnées restent accessibles même si les données ne le sont plus

https://doranum.fr/enjeux-benefices/principes-fair/

<figure><img src="image_292.png" /></figure>
# Interoperable -- Permettre l'exploitation des données quel que soit l'environnement informatique utilisé

Interoperable

<figure><img src="image_293.png" /></figure>

- Les données sont décrites avec un vocabulaire contrôlé

- Le vocabulaire utilisé respecte les principes FAIR

- Les métadonnées sont reliées à d'autres données

https://doranum.fr/enjeux-benefices/principes-fair/

<figure><img src="image_294.png" /></figure>
# Reusable -- Permettre la réutilisation des données pour de futures recherches

Reusable

<figure><img src="image_295.png" /></figure>

- Les métadonnées ont une **pluralité d'attributs**

- Une **licence de réutilisation** est attribuée aux données

- La description des données indique leur **provenance**

- Le partage des données suit les **standards de la communauté scientifique**

https://doranum.fr/enjeux-benefices/principes-fair/
En savoir plus

<figure><img src="image_296.png" /></figure>

https://doranum.fr/enjeux-benefices/principes-fair/
En savoir plus

scientific data

The FAIR Guiding Principles for scientific data management and stewardship

Wilkinson et al., 2016

https://doi.org/10.1038/sdata.2016.18

<figure><img src="image_297.png" /></figure>

https://www.go-fair.org/fair-principles/

<figure><img src="image_298.png" /></figure>
Exemple d'évaluation automatique par FAIR CHECKER

<figure><img src="image_299.png" /></figure>

<figure><img src="image_300.png" /></figure>

https://fair-checker.france-bioinformatique.fr

Thomas Rosnet et al.

<figure><img src="image_301.png" /></figure>

INSTITUT FRANÇAIS DE BIOINFORMATIQUE

<figure><img src="image_302.png" /></figure>
# Comment gérer les données ?
## Comment le gérer ?

## Plan de gestion de données

<figure><img src="image_303.png" /></figure>

Planifier et
anticiper

<figure><img src="image_304.png" /></figure>

Gérer, faire fructifier
et ne pas les perdre

<figure><img src="image_305.png" /></figure>

Data is the
new (s)oil !

<figure><img src="image_306.png" /></figure>
Les objectifs du PGD

1. Assurer la reproductibilité des expériences (comment les données sont obtenues)

2. Respecter le droit et les personnes (clarifier le cadre juridique et éthique)

3. Permettre la réutilisation des données (Garantir la compréhension des données)

4. Éviter les pertes de données (Assurer un stockage adapté)

5. Établir le rôle de chacun (Définir les responsabilités)

6. Clarifier les droits de réutilisation (Spécifier les modalités de partage)
Comment bien décrire les données ?
## Bilan de la qualité des métadonnées

Les métadonnées demandées sont différentes entre les bases de données et souvent complexes

La soumission est hétérogène

Les métadonnées sont souvent incomplètes, inconsistantes, redondantes et tout simplement pas assez informatives

<figure><img src="image_307.png" /></figure>

Quality of dictionary attributes in NCBI BioSample according to their type, in Gonçalves et al., 2019
## Exemple de standard : Genomic standards consortium

Producteur de Minimum Information Standards utilisés par l'ENA (EBI) et SRA (NCBI)

Notion de checklists sur l'ENA

https://www.ebi.ac.uk/ena/browser/checklists

<table><thead><tr><th>Specification projects</th><th>MIGS</th><th>MIMS</th><th>MIMARKS</th><th>New checklists</th></tr></thead><tbody><tr><td>Checklists</td><td>EU BA PL VI ORG</td><td>metagenomes</td><td>survey specimen</td><td>e.g., pan-genomes</td></tr><tr><td>Shared descriptors</td><td colspan="4">collection date, environmental package, environment (biome), environment (feature), environment (material), geographic location (country and/or sea, region), geographic location (latitude and longitude), investigation type, project name, sequencing method, submitted to INSDC</td></tr><tr><td>Checklist-specific descriptors</td><td>assembly, estimated size, finishing strategy, isolation and growth condition, number of replicons, ploidy, propagation, reference for biomaterial</td><td colspan="3">target gene</td></tr><tr><td>Applicable environmental packages (measurements and observations)</td><td>Air<br>Host-associated<br>Human-associated<br>Human-oral<br>Human-gut<br>Human-skin<br>Human-vaginal</td><td colspan="3">Microbial mat/biofilm<br>Miscellaneous natural or artificial environment<br>Plant-associated<br>Sediment<br>Soil<br>Wastewater/sludge<br>Water</td></tr></tbody></table>

Yilmaz et al., 2011
Soumettre les données
## Pourquoi soumettre les données et les métadonnées ?

- Pour l'Open Science et la reproductibilité des expériences

- Pour être FAIR et donner accès aux données

- Pour l'archivage

- Pour les publications

- Pour l'analyse avec par exemple MGinfy, GEOtoR, ...

<figure><img src="image_308.png" /></figure>

<figure><img src="image_309.png" /></figure>

## Getting started

Search by
Name, biome, or keyword

Text search

Sequence similarity

Sequence search

Or by data type

350874 amplicon
30079 assemblies
2050 metabarcoding
32855 metagenomes
2204 metatranscriptomes

4088 studies
281377 samples
431639 analyses

Or by selected biomes

<figure><img src="image_310.png" /></figure>

Human
(141077)

<figure><img src="image_311.png" /></figure>

Digestive
system
(Q379A)

<figure><img src="image_312.png" /></figure>

Aquatic
(44755)

<figure><img src="image_313.png" /></figure>

Marine
(32218)

<figure><img src="image_314.png" /></figure>

Digestive
system
(32218)

Latest

metabx
cryoconites)

The Ecosystem
derived from
This project
View more -

EMG.p
Salivar
## Data brokering

- Proposer une solution pour fluidifier la soumission des données

- Des outils sont proposés dans des branches particulières

- L'IFB souhaite offrir une solution nationale divisée en 3 activités :

- Développement d'outils

- Formation

- Support aux utilisateurs

<figure><img src="image_315.png" /></figure>

<figure><img src="image_316.png" /></figure>

METAGENOTE

<figure><img src="image_317.png" /></figure>

METARK
Questions juridiques
# Quelles obligations de partage des données ?

Les données de la recherche sont des informations publiques :

- Elles sont soumises à un principe d'**ouverture par défaut** et de **libre utilisation**
  (Loi Lemaire - Loi République numérique 2016 LPRN)

- Elles sont soumises à un **principe de gratuité** (Loi Valter 2015)

- Cas particulier de Météo France et IGN

- Spécificité des brevets et autres formes de valorisation

- Elles sont **protégées contre les risques d'accaparement**
# Et les principes FAIR ?

Aussi ouvert que possible, aussi fermé que nécessaire

## Des exceptions ?

- Le droit d'auteur comme dans les publications scientifiques, logiciels, ...

- Les projets en partenariat avec le privé

- Les données personnelles soumises à la RGPD (sauf avec un consentement, anonymisation ou dérogations)

- Les données sensibles comme la biodiversité (orchidée)

- Secret médical, secret d'affaires, secret militaire, secret des procédés,...
## Licence

Moyen d'encadrer le partage et la réutilisation des données

Par forcément nécessaire mais fortement recommandé dans tous les cas

Liste des licences et explication : https://www.data.gouv.fr/fr/licences

## Modalité de partage

- Considérer les restrictions, embargo et limites de réutilisation

- Se renseigner sur les obligations de partages spécifiques au bailleurs

- Identifier les jeux de données partageables ou non

- Identifier les futurs utilisateurs

- Déterminer quand partager

- Déterminer où partager en fonction des données, des bailleurs, ...

<figure><img src="image_318.png" /></figure>
## Bonnes pratiques
## Un environnement de travail sûr

### Sauvegardé

#### Stratégie 3 2 1

<figure><img src="image_319.png" /></figure>

3 copies

<figure><img src="image_320.png" /></figure>

2 systèmes

<figure><img src="image_321.png" /></figure>

dont 1 distante

### Protégé
## Le stockage

Nombreuses méthodes et technologies de stockage des données

- Disque dur

- Clé USB

- Cloud

## Vérifier l'intégrité des données lors de transfert

Il est possible de contrôler l'intégrité des données avec par exemple le md5sum

<figure><img src="image_322.png" /></figure>
## Les fichiers : nommage et format

### Nommage

- Bref et explicite

- Sans espace ni caractères spéciaux

- Avec une date au bon format

- Avec l'élément le plus important en premier

- Avec la version du document

### Format

Si possible non propriétaire

Les formats qui perdent le moins de données à la conversion

Le format utilisé par la communauté

**PUBLIC SERVICE ANNOUNCEMENT:**

OUR DIFFERENT WAYS OF WRITING DATES AS NUMBERS CAN LEAD TO ONLINE CONFUSION. THAT'S WHY IN 1988 ISO SET A GLOBAL STANDARD NUMERIC DATE FORMAT.

THIS IS **THE** CORRECT WAY TO WRITE NUMERIC DATES:

2013-02-27

THE FOLLOWING FORMATS ARE THEREFORE DISCOURAGED:

02/27/2013 02/27/13 27/02/2013 27/02/13

20130227 2013.02.27 27.02.13 27-02-13

27.2.13 2013. II. 27. 27/2-13 2013.158904109

MMXIII-II-XXVII MMXIII 1330300800

((3+3)×(111+1)-1)×3/3-1/3³ 2013

10/11011/1101 02/27/2013 01237

<figure><img src="image_323.png" /></figure>

https://xkcd.com/1179/

<figure><img src="image_324.png" /></figure>
## Organisation des données

### Organisation des dossiers

- Limitez le nombre de dossiers par niveau (5 ou 6 max)

- Allez du général au spécifique

- Choisissez des noms de dossiers explicites

Avec un README pour décrire le contenu (txt ou md)

<figure><img src="image_325.png" /></figure>
Accompagné d'un bon README (ici une proposition de recherche.data.gouv)

```
<Les textes d'aide sont dcrits entre chevrons et sont destinés à être supprimés avant toute sauvegarde>

<Un README ? Pourquoi ?

***La documentation d'un jeu de données doit être suffisante pour permettre à n'importe quel réutilisateur de comprendre et d'évaluer sa qualité. Le README fournit des informations complémentaires et accessibles lorsqu'elles ne sont pas déjà mises à disposition dans les métadonnées du jeu de données, dans les métadonnées des fichiers, et/ou dans des fichiers associés, ou des fichiers accessibles à long terme sur des services d'hébergement (entrepôt de fichiers ou publication). Dans ce dernier cas, nous vous prions d'inclure les URLs des documents en question ou leurs références***

<Privilégier les formats text document (.txt), ou markdown (.md)?

Modèle de Fichier RGD README --- Général --- Version: 0.1 (2022-11-22)

Ce fichier README a été généré le [YY-MM-DD] par [NAME].

Dernière mise-à-jour le : [YY-MM-DD].

# INFORMATIONS GENERALES

## Titre du jeu de données :

## DOI:

## Adresse de contact :

<Cl-après suit une liste d'éléments suggérés pour vous aider à enrichir, si nécessaire, votre documentation. La pertinence de certains dépend de la discipline du jeu de données ou du contexte de production>

****Supprimer toute section non-applicable****

# INFORMATIONS METHODOLOGIQUES

## Conditions environnementales / experimentales :

## Description des sources et méthodes utilisées pour collecter et générer les données :

<Si applicable, décriser les standards, les informations de calibration, les instruments utilisés, etc.>

## Méthodes de traitement des données :

<Si applicable, décriser le traitement des données et inclure tout détail pouvant être important pour réutiliser ou reproduire les données. Commenter chaque étape.

Par exemple, inclure les méthodes de nettoyage et d'analyse ; les codes et/ou algorithmes ; les procédures d'anonymisation ou de pseudonymisation pour les données sensibles concernant les humains ou des espèces menacées>

## Procédures d'assurance-qualité appliquées sur les données :

## Autres informations contextuelles :

<Toute information que vous considérez importante pour évaluer la qualité du jeu de données ou pour sa réutilisation : par exemple, des informations concernant les logiciels nécessaires pour interpréter les données.

Si applicable et non-inclus préalablement, ajouter les noms complets et les versions de tous les logiciels, de tous les paquets et de toutes les bibliographies nécessaires pour lire et interpréter les données *.g.* pour compiler les scripts.>
```

```R
# APERCU DES DONNEES ET FICHIER
#
## Convention de nommage des fichiers :
## Arborescence/plan de classement des fichiers :

# INFORMATIONS SPECIFIQUES AUX DONNEES POUR : [NON DU FICHIER]

<Le cas échéant, reproduire cette section pour chaque dossier ou fichier.
Les éléments se répétant peuvent être expliqués dans une section initiale commune.>

<Pour les données tabulaires, fournir un dictionnaire des données/manuel de codage contenant les informations suivantes :>

## Liste des variables/entités de colonne :

Pour chaque nom de variable ou entête de colonne, indiquer :

-- le nom complet de la variable sous forme "lisible par les humains" ;
-- la description de la variable ;
-- unité de mesure, si applicable ;
-- séparateur décimal "i.e." virgule ou point, si applicable ;
-- valeurs autorisées : liste ou plage de valeurs, ou domaine ;
-- format, si applicable, e.g. date>

## Code des valeurs manquantes :

<Definir les codes ou symboles utilisés pour les valeurs manquantes.>

## Informations additionnelles :

<Toute information que vous jugez utile pour mieux comprendre le fichier>
```

https://recherche.data.gouv.fr/fr/categorie/33/guide/modele-de-readme
Et maintenant ?
## Vous souhaitez

- Savoir comment remplir un plan de gestion de données ?

- Comprendre la différence entre PGD Structure et PGD Projet ?

- En savoir plus sur les métadonnées et ses standards ?

- Le cadre juridique des données ?

## L'IFB propose une formation !

(le contenu des éditions précédentes est en ligne)

https://moodle.france-bioinformatique.fr/course/index.php?categoryid=10
## Une belle équipe !

<figure><img src="image_326.png" /><figcaption>H. Chiapello</figcaption></figure>

<figure><img src="image_327.png" /><figcaption>T. Denecker</figcaption></figure>

<figure><img src="image_328.png" /><figcaption>J-F Dufayard</figcaption></figure>

<figure><img src="image_329.png" /><figcaption>F. de Lamotte</figcaption></figure>

<figure><img src="image_330.png" /><figcaption>P. Lieby</figcaption></figure>

<figure><img src="image_331.png" /><figcaption>Y. Mahmah</figcaption></figure>

<figure><img src="image_332.png" /><figcaption>G Sarah</figcaption></figure>

<figure><img src="image_333.png" /><figcaption>J. Seiler</figcaption></figure>

<figure><img src="image_334.png" /></figure>
Comment FAIRe ? Et si on essayait !
# Création d'un PGD

https://dmp.opidor.fr/plans/9346

<figure><img src="image_335.png" /></figure>

<figure><img src="image_336.png" /></figure>

## Titre du projet

EBAII N2

☑ projet de test, d'entrainement ou à des fins de formation

## Choisissez un modèle

Vous pouvez choisir soit un modèle fourni par votre organisme soit par un autre organisme, ou un modèle financeur. Le modèle par défaut est **Science Europe**
- **DMP template (english)**.

Retrouvez la liste des modèles disponibles

<figure><img src="image_337.png" /></figure>
Comment reproduire l'analyse ?

<figure><img src="image_338.png" /></figure>

https://github.com/IFB-ElixirFr/FAIR_EBAII_n2/blob/master/demoFAIR_EBAII_n2.ipynb
Reproduire l'analyse sur Jupyter hub

<figure><img src="image_339.png" /></figure>

Tableau de bord

Créer des plans

DMPs publics

Modèles de DMP

Aide

Plus

-français

<figure><img src="image_340.png" /></figure>

Thomas Denacker

<figure><img src="image_341.png" /></figure>

<figure><img src="image_342.png" /></figure>

<figure><img src="image_343.png" /></figure>

<figure><img src="image_344.png" /></figure>

https://jupyterhub.cluster.france-bioinformatique.fr/hub/login?next=%2Fhub%2F
# Reproduire l'analyse en un click !

## Au programme

- Notebook Jupyter (kernel bash)

- Téléchargement des données

- Import des scripts et des fichiers de paramétrage

- Réalisation des l'analyse

- En parallèle

- Sur le cluster

- De façon reproductible

- Exploration préliminaire des résultats

Les principes FAIR appliqués à la bioinformatique

Outils et environnements FAIR pour la bioanalyse

Thomas Denecker - Data brokering - IFB core

<figure><img src="image_345.png" /></figure>

<figure><img src="image_346.png" /></figure>

<figure><img src="image_347.png" /></figure>

Rejouer son article en un click

Cas d'étude

Contexte

L'objectif de l'étude est d'étudier la réponse à une privation en fer chez l'algue verte Ostreococcus tauri Lelandais et al, 2016. Il s'agit d'un organisme de 13.0328 Mb séparé en 20 chromosomes.

L'expérience est composée de 16 échantillons de données RNAseq (triplicat, single-end de 100bp). Le plan d'expérience est illustré ci-dessous. Pour accompagner cette démonstration, nous avons choisi les échantillons S11 et S12 (réponse adaptative à long terme.)

<figure><img src="image_348.png" /><figcaption>Figure 1 | Plan expérimental</figcaption></figure>

<figure><img src="image_349.png" /></figure>
# Partager ses résultats avec un notebook intéractif

## Au programme

- Notebook Jupyter (kernel R)

- Import des résultats

- Réalisation d'un tableau explorable avec datatable

- Réalisation d'un volcano plot avec plotly. Lors du survol d'un point, des informations sont retournées

Les principes FAIR appliqués à la bioinformatique

## Notebook R intéractif pour le partage des résultats

Thomas Denecker - Data brokering - IFB core

<figure><img src="image_350.png" /></figure>

<figure><img src="image_351.png" /></figure>

<figure><img src="image_352.png" /></figure>

### Un notebook R interactif

#### Chargement des packages

```
require( Kernit-1 )
library( plotly )
library( DT )
library( plotly )
library( plotly )
```

#### Lectures du tableau de résultats de SARtoots

```
datartoots <- read.csv2("backup/100s/DELETEDvSTANDARD complete.txt", sep = ",", header = T, stringsAsFactors = F)
datartoots <- datartoots %>%
  filter(log2FieldChange <= 1) %>%
  arrangeLTR(log2FieldChange) %>%
  head(log2FieldChange = as.numeric(log2FieldChange),
       pvalue = as.numeric(pvalue))
```

#### Datatable

Documentation: https://Studio.gh.io/ijDT/

```
datatable <- datartoots[, c(1, "log2FieldChange", "pvalue")], extensions = "Buttons", filter = "top",
  buttons = list(
    button = list(
      text = "log2FieldChange",
      type = "row", "col", "row", "col"),
      text = "log2FieldChange = as.numeric(log2FieldChange)",
      pvalue = as.numeric(pvalue)
    ),
    button = list(
      text = "log2FieldChange = TRUE"
    )
  )
```

#### Volcano plot avec Plotly

Documentation: https://plotly.com/

```
inter = bind( x = datartoots[,log2FieldChange],
             y = log2FieldChange[,pvalue],
             pvalue = datartoots[,pvalue],
             feature = datartoots[,feature])
inter = na paste(inter)
inter[,1] = na.data[,frame inter]
inter[,2] = na.numerics[,character(inter,.)]
inter[,2] = na.numerics[,character(inter,.)]
color = rep("black", nrow(inter))
psi = whichIs(inter) >= 2 & intery >= -log10(0.01)
color[psi] = "red"
```

```
plot_by(inter, x = x, y = y, type = 'scatter', meda = 'markers',
  text = 'paste(Feature', feature, 'dr-log(C)', x, 'br=PValue', pvalue),
  marker = list(Feature = 'red') %>%
  layout( title = "Volcano plot",
        shape = list( type = "line", x0 = min(inter), x1 = max(inter), y0 = log2FieldChange[,pvalue], y1 = log2FieldChange[,pvalue],
          list( type = "line", x0 = 2, x1 = 2, y0 = min(inter), y1 = max(inter), line = list( dash = "dot", width = 3))
        ),
        yaxis = list(zeroline = TRUE, title = "log2FieldChange")
      ),
      xaxis = list(zeroline = TRUE, title = "log2FieldChange")
    )
  sessionInfo:
```