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

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

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()
Use case python example