******************************************************************************* Cas pratique : utilisation de l'API ******************************************************************************* En R =============================================================================== .. note:: Cet exemple a été réalisé avec : - R version 4.0.4 (2021-02-15) - Le package httr Version 1.4.2 - (Optionnel, pour proposer une figure finale) le package ggplot .. code-block:: R ############################################################################## # Import des packages ############################################################################## library(httr) library(ggplot2) # optionnel ############################################################################## # Main ############################################################################## #============================================================================= # Création de variables #============================================================================= # Adresse de l'API (disponible ici : # https://emergen-db.france-bioinformatique.fr/my_api/) url = "https://emergen-db.france-bioinformatique.fr/api/count/by/variant" # Votre token personnel (disponible ici : # https://emergen-db.france-bioinformatique.fr/my_api/) key = "##################################" #============================================================================= # Import des données #============================================================================= # Utilisation de l'api res = GET(url, add_headers(Authorization = paste("Token", key, sep = " "))) # Préparation des données results = unlist(content(res)) results = setNames(as.numeric(results[c(F, T)]), results[c(T, F)]) results = sort(results) #============================================================================= # Visualisation de données #----------------------------------------------------------------------------- # Réalisation d'un bar plot de la distribution des variants #============================================================================= # Avec les fonctions graphique de base par(mar = c(10, 4, 4, 2) + 0.1) barplot(results, las = 2, ylim = c(0, 2000)) # Avec ggplot df = cbind.data.frame(Variants = names(results), Nombre = results) df$Variants = factor(df$Variants, levels = df$Variants) ggplot(data=df, aes(x=Variants, y=Nombre)) + geom_bar(stat = "identity", fill = "steelblue")+ geom_text(aes(label = Nombre), vjust = 1.6, color = "white", size = 3.5) + theme_minimal() + theme(axis.text.x = element_text(angle = 45, hjust = 1), text = element_text(size = 20)) + ggtitle("Distribution des variants détectés en France") **Résultat (exemple avec des données ne reflétant par la réalité)** .. image:: _static/img/use_case_R.png :width: 100 % :alt: Use case R example En Python =============================================================================== .. note:: Cet exemple a été réalisé avec : - Python version 3.7.8 - Le package pandas Version 1.2.3 - Le package plotly Version 4.14.3 .. code-block:: python import requests import plotly.express as px import pandas as pd r = requests.get("http://localhost:8000/api/count/by/variant", headers = {'Authorization': 'Token 01d56f9e67ac0087b67a9a97ca6cb3aafeea6b76'}) r.status_code res = r.json() df = pd.DataFrame(res) fig = px.bar(df.sort_values('Count'), x = 'resultat', y = 'Count', labels = {'Count':'Nombre', 'resultat' : 'Variants'}) fig.show() .. image:: _static/img/use_case_python.png :width: 100 % :alt: Use case python example