# L'outil SPIDER : Système Partagé d'Interopérabilité des Données d'Expérimentation et de Recherche

Thierry Heirman, Laurence Drouilhet

► To cite this version:

Thierry Heirman, Laurence Drouilhet. L'outil SPIDER : Système Partagé d'Interopérabilité des Données d'Expérimentation et de Recherche. Printemps de la Donnée 2022, Inrae, May 2022, Toulouse, France. hal-04219520

HAL Id: hal-04219520

https://hal.science/hal-04219520v1

Submitted on 27 Sep 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>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
L'outil SPIDER

# « Système Partagé d'Interopérabilité des Données d'Expérimentation et de Recherche »

GenPhySE

Thierry Heirman & Laurence Drouilhet

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

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

Systèmes d'Informations et Calcul
pour le Phénotypage Animal

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

Génétique Physiologie et Systèmes d'Elevage
CONTEXTE

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

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

<figure><img src="image_7.png" /></figure>
Open data repose sur des données FAIR

Findable
Q

Accessible

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

Interoperable

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

Reusable

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

Findable
Métadonnées facilement
découverte et retrouvées

Accessible
Métadonnées accessibles
librement (licences)

FAIR

Interoperable
Métadonnées
échangeables (ontologies,
vocabulaire FAIR)

Re-usable
Métadonnées réutilisables
(descriptions, formats
standards)

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

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

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

<figure><img src="image_13.png" /></figure>
# Open data repose sur des données FAIR

## Importance des métadonnées

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

Données

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

Métadonnées

Garantissent la pérennité des données :

* Description des données et du contexte

* Permet leur réutilisation

* Standardisation des formats pour faciliter la recherche

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

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

<figure><img src="image_18.png" /></figure>
CONCRETEMENT

Comment s'y prendre ?

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

<figure><img src="image_20.png" /></figure>
# GenPhySE dans tout ça ?

## Objectifs

* Organiser the stockage des données produites dans l'unité

* Faciliter l'acquisition des métadonnées associées à nos données

* Facilitate the submission of the data

* Améliorer l'interopérabilité entre les systèmes d'informations (SI)

<figure><img src="image_21.png" /><figcaption>→ Constitution de groupes par type de données (en 2018)</figcaption></figure>

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

<figure><img src="image_23.png" /></figure>
# GenPhySE dans tout ça ?

## Etape 1 : Inventaire
Avant de savoir comment organiser les données, il faut savoir de quelles données on dispose ...

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

* Volume

* Lieu de stockage

* Format de saisie

* Nature

* Informations complémentaires
saisies et stockées (Métadonnées)

* Analyses

* Mode d'interrogation

* Connaitre ce qui existe → Findable

* Identifier les manques (ex: « espaces de stockage ») → Accessible

* Identifier les « liens » permettant de raccorder les SI (ex: « Num animal ») → Interoperable

* Définir les souhaits d'accès → Reusable

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

<figure><img src="image_26.png" /></figure>
Findable
Métadonnées facilement
découverte et retrouvées

Accessible
Métadonnées accessibles
librement (licences)

Interoperable
Métadonnées
échangeables (ontologies,
vocabulaire FAIR)

Re-usable
Métadonnées réutilisables
(descriptions, formats
standards)

FAIR

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

<figure><img src="image_28.png" /></figure>
# GenPhySE dans tout ça ?

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

## 1- étape inventaire : longue et fastidieuse ! (mais c'est fait !)

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

<figure><img src="image_31.png" /></figure>
# GenPhySE dans tout ça ?

## inventaire ...

<table><thead><tr><th>Type Données -omiques</th><th>Fichier Brut</th><th>Taille Fichier Brut/échantillon</th><th>Taille fichiers bruts pour un projet</th><th>Stockage Actuel Fichier Brut</th><th>Durée Stockage souhaité Fichier Brut</th><th>Informations à stocker pour tracer ce fichier brut?</th><th>Fichier pré-analyse</th><th>Taille Fichier pré-analyse</th><th>Taille fichiers pré-analyés pour un projet</th><th>Stockage Actuel Fichier pré_analyse</th><th>Durée Stockage souhaité Fichier pré-analyse</th><th>Informations à stocker pour tracer ce fichier pré-analyse?</th><th>Dépôt dans base publique?</th><th>Quel type de fichier/information déposé(e) dans base publique?</th></tr></thead><tbody><tr><td>Données d'ARN circulaires</td><td>Fichier idem RNAseq</td><td></td><td></td><td></td><td></td><td></td><td>données d'annotation: Excel</td><td>négligeable</td><td></td><td></td><td></td><td>version du génome</td><td>oui</td><td>NCBI</td></tr><tr><td>Métagénomique 16s</td><td>Fichier fastq.gz</td><td>20Mo/échantillon</td><td>dépend nombre éch</td><td>ng6</td><td>jusqu'à publication</td><td>Réf. protocole/phenotype/prime</td><td>Fichier fastq/tsv/html</td><td>quelques centaines de Ko</td><td></td><td>ng6/genotoul bioinfo/ Galaxy/PC</td><td>jusqu'à publication</td><td>Pipeline d'analyse/script</td><td>oui (SRA)</td><td>Fichier fastq.gz + metata-data</td></tr><tr><td>RNAseq, Séquençage</td><td>fastq.gz</td><td>~80Mo /échant depend de la profondeur de sequencage</td><td></td><td>save/work</td><td>jusqu'à publication</td><td></td><td>Fichier.bam/bai/ mpileup/vcf</td><td>bam: 40Mo, Bai: 2Mo et mpileup: 22Mo et vcf: 4Mo</td><td></td><td>save et work</td><td>3 ans</td><td>genome de référence</td><td></td><td></td></tr><tr><td>Transcriptome (microarray)</td><td>1 fichier.txt/spot + image</td><td></td><td>66Go/64éch</td><td>serveur</td><td></td><td></td><td>fichier excel</td><td></td><td></td><td></td><td></td><td></td><td>oui</td><td>log2 normalized signal</td></tr><tr><td>données qPCR</td><td>Données de fluorescence (à demander à la plateforme)</td><td></td><td>Fluidigm: 26500Ko/puce</td><td>serveur + plateforme</td><td></td><td></td><td>fichier excel</td><td>quelques centaines de Ko</td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Données Métabolome RMN</td><td>fichier de Brucker: 1dossier/échantillon</td><td></td><td>399Mo/493échantillons</td><td>serveur</td><td></td><td></td><td>fichier.txt des buckets transmis par la plateforme</td><td>1fichier/spectre e=1Mo si bucket</td><td>493éch/493d ossiers/399 Mo</td><td></td><td></td><td></td><td>Workflow4metabolomics</td><td>??</td></tr><tr><td>Données Lipidomique</td><td></td><td></td><td></td><td></td><td></td><td></td><td>excel pour</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Données Protéome Shot-Gun</td><td>1 Spectre MS/MS par échantillon (à demander à la plateforme?)</td><td></td><td></td><td>Plateforme protéomique INRA</td><td></td><td></td><td>protéome (séquences des peptides et identification proteines)</td><td>samespotsexperiment</td><td></td><td>14Mo/70échantillons</td><td>Cloud ENSAT (via logiciel SeaFile)</td><td></td><td>non</td><td></td></tr><tr><td>Données Protéome Electrophorèse 2D/analyse d'image</td><td>image du gel (fichier.mel)</td><td>12Mo/gel (1gel=1échantillon)</td><td>dépend nombre éch</td><td>DD PC analyse d'image ENSAT + sauvegarde sur DD externe</td><td></td><td></td><td>Fichier généré par le logiciel d'analyse de gels 2D SameSpots</td><td></td><td>70Mo/300ech 8Mo/12échantillons</td><td>DD PC analyse d'image ENSAT + sauvegarde sur DD externe</td><td></td><td>scan du gel avec identification des spots</td><td>non</td><td></td></tr></tbody></table>

<figure><img src="image_32.png" /></figure>
# GenPhySE dans tout ça ?

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

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

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

<figure><img src="image_36.png" /></figure>
# GenPhySE dans tout ça ?

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

<figure><img src="image_38.png" /></figure>
# GenPhySE dans tout ça ?

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

1- étape inventaire : longue et fastidieuse ! (mais c'est fait !)

2- métadonnées associées aux données : en cours

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

<figure><img src="image_41.png" /></figure>
# GenPhySE dans tout ça ?

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

1- étape inventaire : longue et fastidieuse ! (mais c'est fait !)

2- métadonnées associées aux données : en cours

3- collaboration CATI SICPA pour création stockage et interface SPIDER

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

<figure><img src="image_44.png" /></figure>
**Objectif** : collecter et interopérer des informations issues de sources hétérogènes afin qu'elles soient centralisées pour faciliter l'accès et la valorisation des données

Cas d'usage exprimés par le groupe de travail « Gestion des Données » :

* CU 1a : à partir d'un numéro d'animal, savoir s'il existe des données ...

* CU 1b : ... et savoir où elles se trouvent

* CU 2 : récupération des données brutes et/ou pré-traitées

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

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

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

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

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

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

**Constats de départ**
## Données éparpillées

Génotypage

Photos

Séquençage

Vidéos

<table><thead><tr><th>id_animal</th><th>margaup_dnais</th><th>margaup_nation</th><th>margaup_inra</th><th>sanit_ani_id</th><th>sanit_ani_num</th><th>sidex_ani_elev</th><th>sidex_ani_ordre</th><th>sidex_date</th><th>date_reforme</th></tr></thead><tbody><tr><td>44191</td><td>2020-12-26</td><td>FR372Q4202041391</td><td>041391</td><td>NOU.FR372Q4202041391</td><td>041391</td><td>FR372Q4</td><td>041391</td><td>2020-01-01</td><td>2021-05-19</td></tr><tr><td>44190</td><td>2020-12-23</td><td>FR372Q4202041336</td><td>041336</td><td>NOU.FR372Q4202041336</td><td>041336</td><td>FR372Q4</td><td>041336</td><td>2020-01-01</td><td>2021-05-19</td></tr><tr><td>44189</td><td>2020-12-23</td><td>FR372Q4202041329</td><td>041329</td><td>NOU.FR372Q4202041329</td><td>041329</td><td>FR372Q4</td><td>041329</td><td>2020-01-01</td><td>2021-05-19</td></tr><tr><td>44188</td><td>2020-12-23</td><td>FR372Q4202041324</td><td>041324</td><td>NOU.FR372Q4202041324</td><td>041324</td><td>FR372Q4</td><td>041324</td><td>2020-01-01</td><td>2021-05-19</td></tr><tr><td>44187</td><td>2020-12-23</td><td>FR372Q4202041314</td><td>041314</td><td>NOU.FR372Q4202041314</td><td>041314</td><td>FR372Q4</td><td>041314</td><td>2020-01-01</td><td>2021-05-19</td></tr></tbody></table>

<table><thead><tr><th>id_animal</th><th>margaup_dnais</th><th>margaup_nation</th><th>margaup_inra</th><th>sanit_ani_id</th><th>sanit_ani_num</th><th>sidex_ani_elev</th><th>sidex_aniOrdre</th><th>sidex_date</th><th>date_reforme</th></tr></thead><tbody><tr><td>41777</td><td>2015-09-10</td><td>FR17MAG201514313</td><td>514313</td><td>NULL</td><td>NULL</td><td>FR17MAG</td><td>514313</td><td>2015-01-01</td><td>2015-10-19</td></tr><tr><td>35803</td><td>2014-05-19</td><td>FR17MAG201412688</td><td>412688</td><td>NULL</td><td>NULL</td><td>FR17MAG</td><td>412688</td><td>2014-01-01</td><td>2014-11-17</td></tr><tr><td>35802</td><td>2014-05-19</td><td>FR17MAG201412687</td><td>412687</td><td>NULL</td><td>NULL</td><td>FR17MAG</td><td>412687</td><td>2014-01-01</td><td>2014-11-17</td></tr><tr><td>35796</td><td>2014-05-18</td><td>FR17MAG201412680</td><td>412680</td><td>NULL</td><td>NULL</td><td>FR17MAG</td><td>412680</td><td>2014-01-01</td><td>2014-11-17</td></tr><tr><td>35790</td><td>2014-05-16</td><td>FR17MAG201412673</td><td>412673</td><td>NULL</td><td>NULL</td><td>FR17MAG</td><td>412673</td><td>2014-01-01</td><td>2014-11-17</td></tr></tbody></table>

<table><thead><tr><th>id_animal</th><th>margaup_dnais</th><th>margaup_nation</th><th>margaup_inra</th><th>sanit_ani_id</th><th>sanit_ani_num</th><th>sidex_ani_elev</th><th>sidex_aniOrdre</th><th>sidex_date</th><th>date_reforme</th></tr></thead><tbody><tr><td>372548</td><td>2021-10-13</td><td>FR17MAG202115003</td><td>115003</td><td>GJS.FR17MAG202115003</td><td>115003</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-08</td></tr><tr><td>371060</td><td>2021-07-22</td><td>FR17MAG202113511</td><td>113511</td><td>GJS.FR17MAG202113511</td><td>113511</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-08</td></tr><tr><td>370955</td><td>2021-07-21</td><td>FR17MAG202113406</td><td>113406</td><td>GJS.FR17MAG202113406</td><td>113406</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-08</td></tr><tr><td>378603</td><td>2021-11-12</td><td>FR352WH202163898</td><td>163898</td><td>SGC.FR352WH202163898</td><td>163898</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-07</td></tr><tr><td>378602</td><td>2021-11-12</td><td>FR352WH202163897</td><td>163897</td><td>SGC.FR352WH202163897</td><td>163897</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-07</td></tr></tbody></table>

<table><thead><tr><th>id_animal</th><th>margaup_dnais</th><th>margaup_nation</th><th>margaup_inra</th><th>sanit_ani_id</th><th>sanit_ani_num</th><th>sidex_ani_elev</th><th>sidex_aniOrdre</th><th>sidex_date</th><th>date_reforme</th></tr></thead><tbody><tr><td>378752</td><td>2021-12-03</td><td>FR352WH202164047</td><td>164047</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-05</td></tr><tr><td>378732</td><td>2021-12-03</td><td>FR352WH202164027</td><td>164027</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-05</td></tr><tr><td>378697</td><td>2021-12-03</td><td>FR352WH202163992</td><td>163992</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-04</td></tr><tr><td>379578</td><td>2021-12-03</td><td>FR352WH202167856</td><td>167856</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-03</td></tr><tr><td>379577</td><td>2021-12-03</td><td>FR352WH202167855</td><td>167855</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>NULL</td><td>2021-12-03</td></tr></tbody></table>

## Données structurées

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

CIBLE : Synchronisation des identifiants

<figure><img src="image_53.png" /></figure>
## Données éparpillées

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

### margaup:

date_nais: "2021-04-16Z"

n_inra: "180392"

n_nation: "FR86DGH202180392"

sexe: "1"

### sanit:

### 0:

ani_id: "GIB;FR86DGH202180392"

ani_num: "180392"

ev_datedeb: "2021-04-20Z"

ev_datefin: "2021-04-20Z"

nom_ev: "Carences"

trait_date: "2021-04-20Z"

trait_nom: "Forceris 250"

trait_qte: "2.0 ml"

## Données structurées

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

# CIBLE : Récupération des données

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

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

<figure><img src="image_60.png" /></figure>
Données éparpillées

Génotypage

Photos

Séquençage

Vidéos

Données structurées

SI Alimentation

SI Ambiance

SI Echantillon

SI Expérimentation

SI Parcelles

SI Sanitaire

SI Bovins

SI Lapins

SI Ovins-Caprins

SI Poissons

SI Porcins

SI Volailles

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

CIBLE : Interrogation des données

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

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

<figure><img src="image_64.png" /></figure>
# Suivi du projet : Ce qui a déjà été fait

## Objectif 1 : Réaliser une preuve de concept du projet SPIDER (Stage Marie Laur, 5e année INSA)

* Etudier les différentes technologies rendant possible le projet

* Importer un jeu de test de données

* Réaliser la maquette d'interrogation des données (par identifiant animal) et la maquette de dépôts des données (avec saisie des métadonnées)

* Valider indépendamment chaque élément du projet

## Objectif 2 : Mettre en place l'infrastructure du projet

* Etudier les différentes offres institutionnelles en lien avec la DSI (stockage, virtualisation, calcul)

* Choisir les technologies de virtualisation, des stockages capacitifs et distribués

* Mettre en place les différentes briques logicielles

* S'assurer du bon fonctionnement des briques logicielles et de la bonne communication entre briques logicielles

## Objectif 3 : Fournir une première version testable au comité des utilisateurs (CDD Marie Laur)

* Peupler le stockage distribué avec un jeu de données test (porcins de GenPhySE) issues de SI structurés

* Ecrire les interfaces web d'interrogation des données par identifiant animal et de dépôts des fichiers volumineux avec saisie des métadonnées

* Livrer une première version testable du projet

* Traiter les retours utilisateurs, corriger les anomalies techniques et métier

* Ecrire les documentations techniques et utilisateur du projet

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

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

<figure><img src="image_67.png" /></figure>
# Suivi du projet : à venir

## Objectif 4 : Passer SPIDER à l'échelle pour répondre à tous les besoins de GenPhySE (Data Engineer, 8-12 mois)

* Réaliser une console web d'administration (Paramétrage des contenus des interfaces web, suivi/curation des données, ...)

* Poursuivre le peuplement du stockage distribué avec les données des autres SI structurés pour les animaux de GenPhySE

* Ajouter d'autres types de données (autres données -omiques, photos, vidéos, autres, ...)

* Ajouter des fonctionnalités de recherche avancées (par projet, par lots, par échantillon, ...)

## Objectif 5 : Améliorer l'interopérabilité de la solution (Data Engineer, 4-6 mois)

* Interopérabilité technique : intégration grâce au projet SICPA_Interop et au recours à des technologies standards

* Interopérabilité syntaxique : utilisation de formats ouverts (JSON, CSV, TXT, ...)

* Interopérabilité sémantique : mettre en place le lien avec les ontologies (AOL, ATOL, EOL, ...)

## Objectif 6 : Décrire les nouveaux/futurs types de données de manière générique (Data Engineer, 8-12 mois)

* Décrire les futurs types de données (données et métadonnées)

* Concevoir une méthode générique pour l'ajout de futurs types de données

* Réaliser l'interface « ajout de nouveaux types de données » dans la console web d'administration

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

<figure><img src="image_69.png" /></figure>
# Suivi du projet : à venir

## Objectif 7 : Tendre de plus en plus vers des données fédérées (Data Engineer, 4-6 mois)

* Ajouter les fonctionnalités d'export de datasets vers les dataverses INRAE

* S'appuyer sur les développements SICPA\_OpenData

## Objectif 8 : Ouvrir la solution SPIDER aux départements Génétique Animale et PHASE (Data Engineer, 6-8 mois)

* Etendre la solution à GABI, à PEGASE, à UMRH, ...

* Peupler le stockage distribué avec toutes les données de tous les SI du CATI SICPA

## Objectif 9 : Industrialiser la solution SPIDER (Data Engineer, 6-8 mois)

* Utiliser des technologies d'infrastructure as code (Ansible ? Docker ? Terraform ?) pour industrialiser la création du cluster distribué, la création du serveur web, le déploiement des interfaces web, ...

* Ouvrir la solution au plus grand nombre

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

<figure><img src="image_71.png" /></figure>
Conclusion : vision fonctionnelle de l'architecture

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

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

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

## Objectif 7 : Tendre de plus en plus vers des données fédérées

SICPA_OpenData :

* Objectif : faciliter, de manière transparente, la publication de données issues de nos SI vers le dataverse INRAE (aide à la création du fichier de métadonnées du dataset, aide à la création distante du dataset, aide à l'upload des fichiers, aide à la publication du dataset)

* Toutes les bibliothèques s'appuient sur les API natives Dataverse

* Bibliothèques déjà développées :

* CSharp / .NET (DLL)

* Java (JAR)

* Un PHP (PHAR)

* Bibliothèque à venir :

* Python (PYC)

* Bibliothèques disponibles sur la forge DGA, la forge MIA et sur le wiki du PEPI 2G (lien vers forge la forge MIA)

* Documentations techniques disponibles sur le serveur germinal de Toulouse

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

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

<figure><img src="image_77.png" /></figure>
Merci de votre attention

Des questions?

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

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

## CSharp / .NET :

* Projet : https://forgemia.inra.fr/theirman/sicpaopendata-for-dotnet

* Documentation d'intégration : https://forgemia.inra.fr/theirman/sicpaopendata-for-dotnet/-/blob/master/README.md

* Documentation technique : https://germinal.toulouse.inra.fr/~theirman/SicpaOpenData/DotNET/index.html

* Librairie : https://forgemia.inra.fr/theirman/sicpaopendata-for-dotnet/-/blob/master/SicpaOpenData/bin/Release/SicpaOpenData.dll

## Java / JDK :

* Projet : https://forgemia.inra.fr/theirman/sicpaopendata-for-jdk

* Documentation d'intégration : https://forgemia.inra.fr/theirman/sicpaopendata-for-jdk/-/blob/master/README.md

* Documentation technique : https://germinal.toulouse.inra.fr/~theirman/SicpaOpenData/JDK/

* Librairie : https://forgemia.inra.fr/theirman/sicpaopendata-for-jdk/-/blob/master/target/SicpaOpenData.jar

## PHP :

* Projet : https://forgemia.inra.fr/theirman/sicpaopendata-for.php

* Documentation d'intégration : https://forgemia.inra.fr/theirman/sicpaopendata-for.php/-/blob/master/README.md

* Documentation technique : https://germinal.toulouse.inra.fr/~theirman/SicpaOpenData/PHP/

* Librairie : https://forgemia.inra.fr/theirman/sicpaopendata-for.php/-/blob/master/target/SicpaOpenData.phar

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