CancerViz

De Challenge4Cancer
Aller à : navigation, rechercher

Site internet du projet

http://cancerviz.weareopensource.me/
Ajout de l'équipe Epidemium, octobre 2017 : Démonstration inaccessible, mais possible de voir le projet sur Github.

Description du projet

Les projets de recherche dans le monde médical basés sur l'analyse de données peuvent s'appuyer sur de nombreux jeux de données (notamment Open Data), souvent hétérogènes et de qualités variables.

Dans ces projets et plus généralement dans les initiatives de Data Science, une partie importante du temps et des efforts (en particulier au début) est consacrée à la phase d’analyse de données exploratoire (Data Discovery), et plus particulièrement au travail d'acquisition des données, en particulier :

  1. recherche et sélection de jeux de données pertinents à analyser,
  2. qualification des jeux de données sélectionnés, notamment en termes de périmètre couvert et qualité des données,
  3. agrégation et croisement des jeux de données, et plus particulièrement des analyses comparatives (e.g. les jeux de données ont-ils la même couverture géographique ? la décomposition en pays est-elle la même ?)

Nous proposons ici un outil de Data Visualization :

  • facilitant la phase d’acquisition des données (en particulier les problématiques 2 & 3 ci-dessus), grâce à des visualisations interactives multicritères, selon les différents axes d’analyses disponibles dans les jeux de données,
  • permettant par ailleurs d’initier des premières analyses exploratoires grâce à ces visualisations interactives multicritères,

afin accélérer la phase d’analyse de données exploratoire (Data Discovery), souvent très chronophage et laborieuse.

L’outil présenté ici est une version « prototype » : nous avons en effet pris connaissance de ce challenge il y a seulement quelques jours. Nous nous sommes donc concentrés à mettre en œuvre rapidement :

  • une « technology full-stack », basée exclusivement sur des technologies open-source, couvrant toute la chaîne de valeur, de l’acquisition des données à la publication des visualisations sur un site internet dédié, sans oublier les analyses de données intermédiaires,
  • un prototype opérationnel pour ce challenge concernant la recherche sur le cancer, présentant différentes fonctionnalités possibles avec quelques exemples illustratifs.

Démarche adoptée

Traitement et analyse des données

Les traitements et analyses réalisés ont été relativement simples à ce stade :

  1. Préparation des données
    1. Nettoyage des données
      1. Pays : analyse et filtrage de quelques niveaux de détail supplémentaires pour éviter les "double-comptages" (e.g. UK = 'UK, England and Wales' + 'UK, Northern Ireland' + 'UK, Scotland')
      2. Année : exploitation des données des années 1950 à 2010 uniquement (les données de 2011 à 2013 sont trop incomplètes : e.g. ne couvrent pas les Etats-Unis)
      3. Localisation de cancers : analyse et filtrage des différents niveaux de sous-totaux intermédiaires pour éviter les "double-comptages" (e.g. 'All cancers', 'All cancers but lung')
    2. Croisement des données
      1. Pays: 'mapping' des données de mortalité avec la liste des pays de la carte géographique
  2. Aggrégation des données : simples sous-totaux selon les axes d'analyse considérés

Front-end / visualisation des données

Deux approches différentes ont été utilisées (cf. section 'Ressources utilisées' pour le détail des technologies utilisées) :

  1. Pré-calcul des données restituées (avec python / pandas) pour affichage des graphiques prédéterminés interactifs (grâce à la librairie dc.js, s'appuyant sur d3.js et crossfilter)
  2. Intégration des données dans une base de données (MongoDB) pour une interactivité totale grâce à la stack MEAN, permettant d'afficher des résultats d'analyses de données ad hoc, à la demande de l'utilisateur

Ressources utilisées

Jeux de données

Le projet utilise le jeu de données principal mis à disposition par l’équipe Epidemium, et plus précisément le dataset dataset_simply.zip. Nous nous sommes concentrés pour ce prototype sur les données de mortalité issues de la World Health Organisation couvrant 76 pays sur la période 1950-2012, avec le niveau de granularité suivant :

  • par pays,
  • par année,
  • par sexe,
  • par tranche d’âge,
  • par localisation de cancers.

Technologies utilisées (exclusivement open-source)

Partage du code et travail en équipe

  • Slack
  • Gitlab
  • Trello

Traitement et analyse des données

  • Environnement de développement Anaconda, incluant une distribution gratuite du notebook Jupyter, du langage python et de la librairie d'analyse de données pandas pour python.

Front-end / visualisation des données

  • Librairie JavaScript dc.js pour les graphiques interactifs, s'appuyant sur les librairies JavaScript d3.js (pour les graphiques dynamiques) et Crossfilter (pour la gestion de l'interactivité entre graphiques)
  • Carte des pays du monde au format GeoJSON fournie par le site internet GeoJSON Maps of the globe, basé sur les bases de données géographiques de Natural Earth
  • Libraire JavaScript spécialisée d3 Geo (inclue dans la librairie JavaScript d3.js) pour la gesion des cartes géographiques + les fonctionnalités spécifiques de Geo Projections (extension de d3 Geo)
  • Libraire Javascript NVD3 couplé à Angular-NVD3
  • MEAN Stack basée sur Meanjs remaniée pour les besoins des Challenge Epidemium et intégrant les futurs pull requests de MeanJs, Design Materialize (Angular 1.5, NodeJs v5.7.0)

Publication et hébergement du site internet du projet

  • Apache en reverse proxy
  • Pm2
  • Hook web (Gitlab)

Prochaines étapes possibles

Le prototype présenté pourra être amélioré, après la fin du challenge Challenge4Cancer, selon les deux axes suivants :

  • Analyses et visualisations complémentaires dans le cadre de la recherche pour le cancer :
    • Analyses d'indicateurs supplémentaires (e.g. données d'incidences de cancer) et croisement entre indicateurs (e.g. analyse comparative entre les évolutions relatives du nombre de décès et du nombre d'incidences)
    • Extension des visualisations actuelles pour inclure des axes d'analyses complémentaires (e.g. analyse par tranche d'âge ET par localisation de cancers)
    • Format de visualisations supplémentaires (e.g. heatmaps pour représenter visuellement le degré de couverture / disponibilité des données)
    • Cartes régionales (e.g. Europe) et/ou nationales (e.g. France par région et/ou département)
  • Réutilisation du moteur "end-to-end" open-source pour d'autres projets de recherche.

Equipe

  • Pierre Brisorgueil
  • Thiên-Lôc Nguyên