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
##############################################################################
# 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é)

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
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()
