EpidemiumDB

De Challenge4Cancer
Aller à : navigation, rechercher

Bienvenus sur la page de description et de discussions autour de la base de données EpidemiumDB !

A propos de la base données EpidemiumDB

L'équipe du projet Epidemium et deux porteurs de projets, Seraya Maouche (BD4Cancer) et Edouard Debonneuil (projet Baseline) ont proposé de créer une base de données commune et globale pour tous les projets Epidemium. Centraliser les données garantira une homogénéité et une standardisation des données collectées et utilisées dans le cadre du Challenge4Cancer. Cette base de données sera utilisée pour les analyses de données et la centralisation des résultats, mais également pour centraliser toutes les informations, publications, ressources autour des méga-données (Big Data) et des données ouvertes (Open Data) pour l'oncologie.

Afin d’avoir une version multiplateformes et portable de la base de données, qui s’intègre facilement avec les différents environnements d’analyse, une version SQLite d’EpidemiumDB a été développée et partagée en ligne. Cette version inclut seulement la partie d’EpidemiumDB qui est nécessaire pour les analyses (données épidemiologiques, types de cancers, facteurs de risques, etc).

Resources EpidemiumDB (présentations, code, documentation)

Contenu de la base de données

EpidemiumDB contient:

  • Tous les types de cancers, leurs classifications, leurs facteurs de risque et les statistiques par pays.
  • Des données épidémiologiques du projet Baseline
  • Les médicaments anti-cancers, leurs effets secondaires et effets indésirables connus ou identifiés par le projet BD4Cancer.
  • Les associations gènes-cancers (collectés et annotés par BD4Cancer)
  • Des ressources Big Data/épidémiologie : registres sur les cancer, base de données externes sur le cancer, bases de données sur les médicaments, jeux de données ouverts, plateformes Open Data, projets sur les cancers, publications, articles sur les Big/Open data en oncologies,outils d'analyse et de visualisation Big Data... (collectées et annotées par BD4Cancer).

La base de données est ouverte à la contribution de tous. Elle accueillera d'autres types de données des autres projets.

Statistiques de la base de données

Nombre de tables: 46

Table nombre d'entrées Date of last modification
cancerType
cancerRiskFactor
riskFactorGroup
Country 250 7 Mai 2016
cancerRegistry
cancerDatabase
News Table 36 15 Mai 2016
Cancer datasets 14 15 Mai 2016
Open Data Platforms 15 15 Mai 2016
drugDatabase
metadata 337 7 Mai 2016
location 505 7 Mai 2016
locationPartOf 7 7 Mai 2016
collectedData 5 435 936 7 Mai 2016
baselineCondition 11 551 7 Mai 2016
baselineSource 6 7 Mai 2016

Création et hébergement

La base de données EpidemiumDB a été créée le 10 mars 2016 par Seraya Maouche et elle est hébergée sur le serveur Epidemium.cc.

La première version SQLite de cette base de données a été développée le 9 mai 2016 par Seraya Maouche. Elle a été mise en ligne sur le serveur data.epidemium.cc par Olivier de Fresnoye.

Développement à cours terme

  • Une base de données centrale ouverte à tous les projets et qui sera publiquement disponible (l'équipe BD4Cancer).
  • Une interface base de données avec le langage R pour faciliter l'analyse des données et l'exportation vers d'autres environnements d'analyse (l'équipe BD4Cancer).
  • Une interface Web pour permettre de collecter/modifier les données épidemiologique (l'équipe Baseline).
  • Une interface Web pour permettre d'explorer et de rechercher des informations dans EpidemiumDB (l'équipe Epidemium)

Développement à long terme

  • Une API pour la base de données
  • Un package R pour la base de données

Membres du projet

Coordinateur(trice) du projet: Seraya Maouche (contact: seraya.maouche@iscb.org)

Equipe d'Epidemium DB:

Contributeur rôles Projet Début de contribution Identification sur la page
Seraya Maouche Coordination de la base

Conception de la base

Développement de la base

et alimentation de > 40 tables

BD4Cancer 2 février 2016 SM
Edouard Debonneuil Conception et alimentation des

tables baseline.

Baseline 26 février 2016 EB
Olivier de Fresnoye Contribution à la gestion du projet

et la documentation

Epidemium 1 mars 2016 ODF
Pierre Mary Chargé de l'administration du serveur

qui héberge EpidemiumDB

Epidemium 10 mars 2016 PM
Clémence Couderc Contribution à deux tables

cancerDatabase et News

BD4Cancer 8 avril 2016 CCC
Augustin Terlinden Conception et alimentation des

tables baseline.

Baseline 26 février 2016 AT
Peter-Mikhaël Richard Conception et alimentation des

tables baseline.

Baseline 26 février 2016 PMR
Dahbia Agher en attente de recevoir leurs

contributions.

Baseline DA
Benjamin Habert en attente de recevoir leurs

contributions.

Quantmetry BH
Issam Ibnouhsein en attente de recevoir leurs

contributions.

Quantmetry II
Long Do Cao en attente de recevoir leurs

contributions.

Quantmetry LDC
Stéphane Jankowski en attente de recevoir leurs

contributions.

Quantmetry SJ

Conception de la base de données

Selon les besoins de chaque projet, la base de données doit contenir des tables bien structurées, qui peuvent soit être utilisées par un seul projet ou partagées. Dans le tableau, ci-dessous, nous décrivons ces tables. Pour de nouveaux besoins, merci de formuler votre demande dans la section "nouvelles tables", ci-après.

Description des tables

Les tables qui composent la base de données EpidemiumDB peuvent être classées en:

Catégorie 1: Tables communes à tous les projets
Nom de

la table

contenu responsable

du contenu

Etat Champs de la table à faire
cancerType Tous les types de cancers

avec leurs codifications internationales

SM créée par SM cancerType_id INT (PK)

cancerType_name VARCHAR

cancerType_otherName VARCHAR

cancerType_frenchName VARCHAR

cancerType_bodySystem VARCHAR

cancerType_ICD10 VARCHAR

cancerType_ICDO3 VARCHAR

cancerType_SNOMED VARCHAR

cancerType_MeSH VARCHAR

cancerType_OMIM VARCHAR

cancerType_medlinePlus VARCHAR

cancerType_WHOpage VARCHAR

cancerType_createdBy INT

cancerType_creationDate DATETIME

cancerType_lastModifiedBy INT

cancerType_lastModificationDate DATETIME

cancerType_validationStatus TINYINT

valider la table

Contribution de tous

les projets est nécessaire pour homogénéiser les données

cancerRiskFactor Tous les facteurs de risques pour les différents cancers. SM & ED créée par SM cancerRiskFactor_id INT (PK)

cancerRiskFactor_name VARCHAR

cancerRiskFactor_metadataID INT

cancerRiskFactor_validatedByAnExpert TINYINT

cancerRiskFactor_createdBy INT

cancerRiskFactor_creationDate DATETIME

cancerRiskFactor_lastModifiedBy INT

cancerRiskFactor_lastModificationDate DATETIME

cancerRiskFactor_validationStatus TINYINT

- valider la table et la remplire
cancer2riskFactor relation cancer aux facteurs de risque. SM & ED créée par SM cancer2riskFactor_id INT (PK)

cancer2riskFactor_cancerID INT (FK)

cancer2riskFactor_riskFactorID INT (FK)

riskFactorGroup Table des groupes de facteurs de risque SM & ED créée par SM riskFactorGroup_id INT (PK)

riskFactorGroup_name VARCHAR

riskFactorGroup_metadataID INT

valider la table
riskFactor2group Une relation reliant chaque facteur de risque à son groupe. SM & ED Créée par SM riskFactor2group_id INT (PK)

riskFactor2group_riskFactorID INT (FK)

riskFactor2group_riskGroupID INT (FK)

valider la table
riskFactor2publication Relation "cancer risk factors" aux publications scientifiques SM & ED créée par SM riskFactor2publication_id INT (PK)

riskFactor2publication_riskFactorID INT (FK)

riskFactor2publication_publicationID INT (FK)

valider la table
country Tous les pays avec les codes ISO, la page du pays à

l'OMS et la page statistique cancer pour chaque pays.

SM créée et alimenté

par SM

country_id INT (PK)

country_name VARCHAR

country_iso2 VARCHAR

country_iso3 VARCHAR

country_numericCode INT

country_WHOcancerCountryProfile VARCHAR

Valider la table
contributor contributor_id INT (PK)

contributor_firstName VARCHAR

contributor_lastName VARCHAR

contributor_projectID INT (FK)

contributor_startedContributing DATE

contributor_countryID INT (FK)

metadata Cette table donne la descriptions

de toutes les variables et données utilisées dans EpidemiumDB.

AT

PMR

ED

SM

Créée

par ED et

SM et

alimentée par l'équipe

Baseline

metadata_id INT (PK)

metadata_name VARCHAR

metadata_family VARCHAR

metadata_definition VARCHAR

metadata_unit VARCHAR

metadata_measure VARCHAR

metadata_weightedBy INT

cancerType_createdBy INT (FK)

cancerType_creationDate DATETIME

cancerType_lastModifiedBy INT (FK)

cancerType_lastModificationDate DATETIME

cancerType_validationStatus TINYINT

Terminer et

valider la table

dataset dataset_id INT (PK)

dataset_name VARCHAR

dataset_source VARCHAR

dataset_lastUpdate VARCHAR

dataset_description VARCHAR

dataset_population VARCHAR

dataset_gender VARCHAR

dataset_electronicFormat VARCHAR

dataset_size VARCHAR

dataset_dataCollectionPeriod VARCHAR

dataset_cancerTypeID INT (FK)

dataset_contributorID INT (FK)

dataset_countryID INT (FK)

dataset_link VARCHAR

dataset_createdBy INT (FK)

dataset_creationDate DATETIME

dataset_lastModifiedBy INT (FK)

dataset_lastModificationDate DATETIME

dataset_validationStatus TINYINT

cancerRegistry cancerRegistry_id INT (FK)

cancerRegistry_shortName VARCHAR

cancerRegistry_fullName VARCHAR

cancerRegistry_twinDedicatedRegistry TINYINT

cancerRegistry_stakeholder INT (FK)

cancerRegistry_countryID INT (FK)

cancerRegistry_link VARCHAR

cancerRegistry_API TINYINT

cancerRegistry_creationDate DATETIME

cancerRegistry_createdBy INT

cancerRegistry_lastModifiedBy INT (FK)

cancerRegistry_lastModificationDate DATETIME

cancerRegistry_validationStatus TINYINT

Commentaires: ....

Catégorie 2 - Tables demandées par le projet Baseline

Nom de la table contenu responsable

du contenu

Etat Champs de la table A faire
baselineCondition Décrit les conditions dans lesquelles la données est valable. Exprimé dans le contexte d'une matrice [Y|X], décrit à quoi correspond la ligne ED

PMR

SM

créée baselineCondition_id INT (PK)

baselineCondition_locationID INT

baselineCondition_ageMin TINYINT

baselineCondition_ageMax TINYINT

baselineCondition_yearMin YEAR

baselineCondition_yearMax YEAR

baselineCondition_gender VARCHAR

baselineCondition_ethnicOriginID TINYINT

baselineCondition_createdBy INT

baselineCondition_creationDate DATETIME

baselineCondition_lastModifiedBy INT

baselineCondition_lastModificationDate DATETIME

baselineCondition_validationStatus TINYINT

valider

si la table doit être maintenue

collectedData contient les

données collectées. Une ligne de cette table par valeur collectée. Le contexte de cette valeur est une zone géographique, une tranche d'âge, un gender, une tranche d'années, une origine ethnique

PMR

ED

créée

collectedData_id INT (PK)

collectedData_metadataID INT (FK)

collectedData_locationID INT (FK)

collectedData_sourceID INT (FK)

collectedData_value FLOAT

collectedData_ageMin TINYINT

collectedData_ageMax TINYINT

collectedData_yearMin YEAR

collectedData_yearMax YEAR

collectedData_ethnicOrigin TINYINT (FK)

collectedData_conditionID INT (FK)

collectedData_createdBy INT

collectedData_creationDate DATETIME

collectedData_lastModifiedBy INT

collectedData_lastModificationDate DATETIME

collectedData_validationStatus TINYINT

alimenter

la table.

baselineUser stocke les comptes utilisateur du site de Baseline

Colonnes : id, firstName, lastName, role, email, password, activationStatus

PMR créée baselineUser_id INT (PK)

baselineUser_firstName VARCHAR

baselineUser_lastName VARCHAR

baselineUser_email VARCHAR

baselineUser_password TINYTEXT

baselineUser_role VARCHAR

baselineUser_activationStatus TINYINT

baselineSource décrit l'origine des données et la validation de leur qualité

Colonnes : id, dataOrigin, originURL, userID, validationStatus

Un responsable par pays:

France: Maxime

Algérie: DA

Allemagne: DA

Japon: Mayuma

pour passer valider tables (mettre le champs "validationStatus" à 1)

créée baselineSource_id INT (PK)

baselineSource_dataOrigin TEXT

baselineSource_originURL VARCHAR

baselineSource_userID INT (FK)

baselineSource_validationStatus TINYINT

location Toutes les zones géographiques concernées par la collecte de données dans le cadre du projet Baseline. ED

PMR

créée location_id INT (PK)

location_name TEXT

location_synonym TEXT

location_partOfCountry INT

location_validationStatus TINYINT

locationPartOf Les pays appartiennent à des continents, les régions à des pays, les départements à des régions (2 types de régions en France...). Cette table décrit ces liens. ED

PMR

créée locationPartOf_id INT (PK)

locationPartOf_locationId INT

locationPartOf_partOfId INT

locationPartOf_validationStatus TINYINT

ethnicOrigin ED

PMR

créée ethnicOrigin_id TINYINT (PK)

ethnicOrigin_ethnicOriginName TEXT

Commentaires: Les tables baseline ont été mises à jour (structure et description sur le Wiki) le 11 avril 2016.

Catégorie 3 - Tables demandées par le projet BD4Cancer

Nom de

a table

contenu responsable

du contenu

Etat Champs de la table A faire
gene Contient tous les gènes humains obtenus de l'organisme HUGO. SM créée à alimenter
gene2cancer Contient tous les gènes associés aux cancers SM créée gene2cancer_id INT (PK)

gene2cancer_geneID INT

gene2cancer_cancerTypeID INT

gene2riskFactor gene2riskFactor_id INT (PK)

gene2riskFactor_geneID INT

gene2riskFactor_riskFactorID INT

antiCancerDrug Contient tous médicaments anti cancers SM crée à alimenter
drug2cancer drug2cancer_id INT (PK)

drug2cancer_drugID INT

drug2cancer_cancerTypeID INT

sideEffect contient les effets secondaires connus SM crée à alimenter
antiCancerDrug2sideEffect Contient tous les effets secondaires (drug side effects)

liés à l'usage des médicaments anti-cancers.

SM crée antiCancerdrug2SE_id INT (PK)

antiCancerdrug_drugID INT

antiCancerdrug_SEid INT

à alimenter
cancerADR Contient tous les effets indésirables (Adverse Drug Reaction) liés à l'usage des médicaments anti-cancers.
antiCancerDrug2ADR contient tous les effets indésirables (Adverse Drug Reaction)

lié aux médicaments anti-cancers.

SM crée antiCancerdrug2cancer_id INT (PK)

antiCancerdrug_drugID INT

antiCancerdrug_ADRid INT

à alimenter
twitterAntiCancerDrugData contient les données Twitter collectées sur

les médicaments anti-cancers

SM crée un corpus de données est en préparation

Catégorie 4 - Tables de ressources pour la veille

Nom de

la table

contenu responsable

du contenu

Etat Champs de

la table

A faire
cancerDatabase Toutes les bases de données liées au cancer

qui sont identifiés par le text mining ou par une "curation" manuelle"

dans le cadre du projet BD4Cancer

SM crée cancerDatabase_id INT (PK)

cancerDatabase_shortName VARCHAR

cancerDatabase_fullName VARCHAR

cancerDatabase_cancerType VARCHAR

cancerDatabase_dataType VARCHAR

cancerDatabase_shortDescription TEXT

cancerDatabase_dbURL VARCHAR

cancerDatabase_releaseDate DATE

cancerDatabase_dbLastUpdate DATE

cancerDatabase_curationMethod VARCHAR

cancerDatabase_organism VARCHAR

cancerDatabase_owner VARCHAR

cancerDatabase_licence VARCHAR

cancerDatabase_country INT

cancerDatabase_creationDate DATETIME

cancerDatabase_createdBy INT

cancerDatabase_lastmodificationDate DATETIME

cancerDatabase_lastModifiedBy INT

cancerDatabase_validationStatus TINYINT



cancerDatabase2publication cancerDatabase2publication_id INT (PK)

cancerDatabase2publication_cancerDatabaseID INT (FK)

cancerDatabase2publication_publicationID INT (FK)

drugDatabase
drugDatabase2publication drugDatabase2publication_id INT (PK)

drugDatabase2publication_drugDatabaseID INT (FK)

drugDatabase2publication_publicationID INT (FK)

cancerWebsite contient tous les sites web intéressants qui ont

un lien avec le cancer.

SM crée cancerWebsite_id INT (PK)

cancerWebsite_name VARCHAR

cancerWebsite_link VARCHAR

cancerWebsite_cancerTypeID INT

cancerWebsite_countryID INT

cancerProject cancerProject_id INT (PK)

cancerProject_acronym VARCHAR

cancerProject_fullName VARCHAR

cancerProjects_link VARCHAR

cancerProject_countryID INT (FK)

project2cancer project2cancer_id INT (PK)

project2cancer_cancerProjectID INT

project2cancer_cancerTypeID INT

project2dataset project2dataset_id INT (PK)

project2dataset_cancerProjectID INT

project2dataset_datasetID INT

cancerProject2publication cancerProject2publication_id INT (PK)

cancerProject2publication_cancerTypeID INT (FK)

cancerProject2publication_publicationID INT (FK)

cancerStakeholder cancerStakeholder_id INT(PK)

cancerStakeholder_shortName VARCHAR

cancerStakeholder_fullName VARCHAR

cancerStakeholder_link VARCHAR

cancerStakeholder_countryID INT

news contient tous les articles de la presse spécialisée ou générale

sur le Big Data, Open Data, machine learning en oncologie

SM

OT

crée news_id INT (PK)

news_title TEXT

news_publicationDate DATE

news_link VARCHAR

news_sourceID INT (FK)

news2author news2author_id INT (PK)

news2author_newsID INT

news2author_authorID INT

newsSource Cette table contient la source de la news (Forbes, Fortune, Les Echos,

...)

SM crée newsSource_id INT (PK)

newsSource_name TEXT

newsSource_link VARCHAR

newsSource_countryID INT (FK)

author Auteur d'une news ou d'une publication sur le cancer, Big Data en cancer,

épidémiologie du cancer,..

SM crée author_id INT (PK)

author_firstName VARCHAR

author_lastName VARCHAR

author_email VARCCHAR

author_twitter VARCCHAR

publication Publications scientifiques sur le cancer, big data en cancer, open data en cancer,.. SM crée publication_id INT (PK)

publication_title TEXT

publication_yearOfPublication YEAR

publication_journalID INT

publication_journalLink VARCHAR

publication_volume VARCHAR

publication_pagination VARCHAR

publication_allAuthors VARCHAR

publication_pubmedID VARCHAR

publication_DOI VARCHAR

publication_cancerType INT

publication_typeOfArticle VARCHAR

publication_category VARCHAR

publication_creationDate DATETIME

publication_createdBy INT

publication_lastmodificationDate DATETIME

publication_lastModifiedBy INT

publication_validationStatus TINYINT

publication2author publication2author_id INT (PK)

publication2author_publicationID INT (FK)

publication2author_authorID INT (FK)

journal Contient la liste des revues scientifiques avec le code NLM et le lien vers le journal. SM crée

journal_id INT

journal_shortName VARCHAR

journal_cancerJournal TINYINT

journal_fullName VARCHAR

journal_publisher VARCHAR

journal_link VARCHAR

journal_NLMid VARCHAR

journal_nlmURL VARCHAR

journal_language VARCHAR

journal_eISSN VARCHAR

journal_SJR VARCHAR

journal_impactFactor VARCHAR

journal_countryID INT

journal_validationStatus TINYINT


Catégorie 5 - table demandées par le projet Ven

Catégorie 6 - Statistiques et données épidémiologiques sur les cancer

Catégorie 7 - Résultats des projets

Nouvelles tables

Chaque projet peut demander la création d'une nouvelle table pour stocker les données de son projet. Merci de décrire dans cette section l'objet de la table, les données qu'elle contiendra et sa structure. Chaque nouvelle table doit tenir compte de l'architecture existante de la base de données.

Pour chaque nouvelle demande, merci de spécifier le nom du projet et le nom de son porteur.

Interface R/EpidemiumDB

Les personnes qui utilisent R peuvent se connecter directement à la base de données en utilisant la librairie RMySQL (Fig. 1).

RMySQL.png

Nous avons mis un script R sur Github afin que

#Install RMySQL package 
install.packages("RMySQL")

# Load required packages
library("DBI")
library("sqldf")
library("WriteXLS")
library("rjson")
library("jsonlite")
library("df2json")

# Load RMySQL
library(RMySQL)

# Connect to EpidemiumDB
# create a database connection object
# the user, password, host and database name are stored in a separate file
# called connectDB.R that need to be called before bdConnect() function.
setwd("/home/common/database/")
source("connectDB.R")
epidemiumDB = dbConnect(MySQL(), user=user, password=password, dbname=dbname, host=host)

Interface Python/EpidemiumDB

Nous avons mis sur le Github Epidemium un exemple de script Python qui s'interface avec la base de données Epidemium à l'aide MySQLdb

# Install MySQLdb
#!/usr/bin/python
import MySQLdb

# Open database connection
db = MySQLdb.connect(host="host_name",    # host name (IP address for Epidemium.cc)
user="username",     # your username
passwd="password",   # your password
db="epidemiumdb")    # name of the database

# Prepare a cursor object using cursor()
cursor = db.cursor()
# Send and SQL query using execute()
cursor.execute("SELECT VERSION()")

# Fetch a single row using fetchone()
data = cursor.fetchone()
print "Database version : %s " % data
cursor.execute("SELECT * FROM metadata")
rows = cursor.fetchall()

Interface Perl/EpidemiumDB

Nous avons mis sur le Github Epidemium un exemple de script Perl qui s'interface avec la base de données Epidemium à l'aide du module DBI (http://dbi.perl.org), l'inerface standard de Perl pour les base de données.

#!/usr/bin/perl
use strict;
use warnings;
use DBI;

my $dbfile   = "epidemiumdb";
my $dsn      = "dbi:SQLite:dbname=$dbfile";
my $user     = "";
my $password = "";
my $dbh = DBI->connect($dsn, $user, $password, {
PrintError       => 0,
RaiseError       => 1,
AutoCommit       => 1,
FetchHashKeyName => 'NAME_lc',
});

Interface base de données/autres langages ou autres environnements d'analyse

to do

Visualisation des données EpidemiumDB

Questions /suggestions