SlideShare une entreprise Scribd logo
1  sur  17
Atelier InterMine

ABiMS / MIGALE / LIPM
Semaine 35
Sebastien.Carrere, Ludovic.Legrand

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Contexte
Dans le cadre du WP7 du projet Investissement d’Avenir SUNRISE, la plateforme Bioinformatique du Laboratoire des
Interactions Plantes-Microorganismes a en charge la mise à disposition d’outils pour la gestion de données massives et
hétérogènes de tournesol.
En parallèle, l’infrastructure nationale EMBRC-France mène également une réflexion similaire dans le cadre du WP “Einfrastructure” qui a pour objectifs de développer un environnement intégré (données et outils) autour des modèles
marins émergents (algues, bactéries, métazoaires…).
Enfin, à Jouy, Idex Institut de Modélisation des Systèmes Vivants, Saclay (IMSV) : intégration de données “omiques”
de bacteries (plantes a terme)
C’est dans cette optique que nous avons identifié l’entrepôt de données Intermine (http://www.intermine.org) comme une
solution potentielle.
Cet atelier nous permettrait :
- d’acquérir une culture commune dans le domaine de l’intégration de données
- de monter en compétence collectivement sur un outil s’affichant comme clef dans le domaine de l’intégration de données
biologiques
- d’atteindre une masse critique afin de faire émerger une communauté d’utilisateurs et développeurs sur cet outil

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
InterMine
●

Data WareHouse :
–

entrepôt de données

–

intégration de données hétérogènes

–

orienté organismes modèles
●

FlyMine, YeastMine, RatMine

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Technologies
●

git

●

Java (javac, SDK, ant, tomcat)
–
–

chargement des données

–

●

construction du modèle
application Web

Perl
–
–

●

Téléchargement de données (~ BioMAJ)
Scripts de manipulation de fichiers XML

PostgreSQL
–

customisé (boost des performances,beaucoup de données, nombreux accès)

–

BioSEG : BioSEG
●

Procedures utilisant les structures d'index postGIS pour optimiser les recherches de type
region/overlap sur les sequences.

–
Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Construire une mine en 4 étapes
●

Création de la mine
–
–

●

création de l'arborescence du projet
création deS bases de données

Description du modèle de données
–

fichier project.xml

–

description des sources et des relations

●

Chargement des données

●

Déploiement de l'application web

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Création de la mine
Création de l'arborescence et des fichiers par défaut.

make_mine
mymine
|­­ data
|­­ dbmodel
|­­ default.intermine.integrate.properties
|­­ default.intermine.webapp.properties
|­­ download_logs
|­­ integrate
|­­ postprocess
|­­ project.xml
`­­ webapp

Création des bases de données

createdb
createuser ­E ­W intermine
createdb ­O intermine ­T template1 mymine
createdb ­O intermine ­T template1 items­mymine
createdb ­O intermine ­T template1 userprofile­mymine
3 bases de données sont crées pour une mine:
base de données correspondant au modèle de données et aux sources de la mine
base items correspondant à une sorte de cache lors de la construction
base users gérant les profils utilisateurs (sauvegarde de leur requêtes, templates, listes de gènes, etc...)
Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Description du modèle de données
Fichier central project.xml
Ce fichier décrit :
  i) le modèle utilisé (genomic par défaut, en existe­t­il d'autres ? possibilité de surcharger ce modèle)
 ii) les sources (données a intégrer)
iii) les postprocess (création des liens de collection, extraction de séquences, index Lucene, autocompletion)

<source name="malaria­gff" type="malaria­gff">
<property name="gff3.taxonId" value="36329"/>
<property name="gff3.seqDataSourceName" value="PlasmoDB"/>
<property name="gff3.dataSourceName" value="PlasmoDB"/>
<property name="gff3.seqClsName" value="Chromosome"/>
<property name="gff3.dataSetTitle" value="PlasmoDB P. falciparum genome"/>
<property name="src.data.dir" location="/path/to/malaria/genome/gff"/>
</source>

malaria­gff est un type particulier pour le tutorial, le type pour les fichiers GFF étant ‘gff’.
Cependant, le type par défaut ne charge pas grand chose (pas de liens entre genes/mRNA/Exons/CDS …).
Nécessité d'écrire son propre Loader (classe JAVA) (make_source)

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Chargement des données //
Deploiement de l'application web
●

Si tout le reste a été réglé, il n' y a pas grand
chose à faire (3 commandes ant)
–

insertion dans la base de données temporaire

–

vérification des contraintes d’intégrité

–

bascule dans la base de production

–

génération des liens, extraction des séquences,
construction d'index Lucene

–

déploiement web (tomcat)

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Création du modèle

cd mymine/dbmodel/build
ant clean build­db

Chargement des données
Post-process
Déploiement web

cd mymine/integrate
ant ­Dsource=all

cd mymine/posprocess
ant 

cd mymine/webapp
ant build­db­userprofile 
ant default remove­webapp release­webapp

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Charger un GFF3
Difficulté principale
Le loader par défaut ne gère pas les liens de parentés (codées dans le GFF3 par la valeur de l’attibut Parent se référent à un ID
précédemment rencontré et ce même en utilisant le modèle genomic basé sur la Sequence Ontology (conclusion confirmée via la
mailing list).
Dans le tutoriel, la chargement des GFF3 se fait via un loader spécifique (malaria-gff).
Donc il est nécessaire d’écrire son propre loader.

Solution : créer un loader
Contenu du fichier project.xml
<source name="helianthus­gff" type="gff­bfc">
 <property name="gff3.taxonId" value="4232"/>
 <property name="gff3.seqDataSourceName" value="HelianthusDB"/>
 <property name="gff3.dataSourceName" value="HelianthusDB"/>
 <property name="gff3.seqClsName" value="Chromosome"/>
 <property name="gff3.dataSetTitle" value="HaT13l FrameDP predictions"/>
 <property name="src.data.dir" location="/path/to/data_helianthus/gff3"/>
</source>
- Nom de la nouvelle source à créer
- Nom de la datasource des séquences associées des chromosomes/transcrits
- Le type (SO) de ce à quoi correspond la colonne 1 du GFF3:
dans mon cas ils s'agit de transcrits mais si j'utilise dans mon cas la classe « Transcripts », comme mon GFF3 utilise des termes SO
ne respectant pas la hiérarchie SO correspondant (gene est au dessus de transcrits) et SURTOUT pour que les postprocess
d'extraction de séquences fonctionne, j'ai du me plier au schéma Chromosome>Gene>mRNA>Exon>CDS ; de plus lors de l'import
des fichiers de sequence, il faut que ce nom de classe coïncide

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Création de la nouvelle source
http://intermine.readthedocs.org/en/latest/database/datasources/custom/#gff
Notre source est de type GFF :
bio/script/make_source gff­bfc gff
Ce script génère entre autres 2 fichiers principaux : un fichier xml pour surchager le modèle de données, et une
classe JAVA pour implémenter le parsing et le chargement dans le modèle.

Edition de bio/sources/gff-bfc/gff-bfc_additions.xml
Dans l'exemple suivant, je souhaite ajouter un attribut « product » que je récupèrerai dans le champ Note de
mes features GFF3. Pour ce faire, il faut amender le modèle de base pour ajouter cet attribut sur les différentes
classes en éditant ce fichier :

<?xml version="1.0"?>
<classes>
<class name="Gene" is­interface="true">
<attribute name="product" type="java.lang.String"/>
</class>
<class name="MRNA" is­interface="true">
<attribute name="product" type="java.lang.String"/>
</class>
<class name="Exon" is­interface="true">
<attribute name="product" type="java.lang.String"/>
</class>
<class name="CDS" is­interface="true">
<attribute name="product" type="java.lang.String"/>
</class>
</classes>
Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Création de la nouvelle source
http://intermine.readthedocs.org/en/latest/database/datasources/custom/#gff

Edition de la classe JAVA
bio/sources/gff-bfc/main/src/org/intermine/bio/dataconversion/GffBfcGFF3RecordHandler.java
Cette classe se charge du parsing des données et de créer les objets devant être stockés dans la base de
données.
Dans mon cas, cette classe devait dans un premier temps expliciter les liens de parentés Gene->mRNA->Exon>CDS mais aussi préparer la création des protéines à partir des CDS (en vue du chargement des fichiers de
séquences protéiques) mais aussi alimenter l'attribut « product » créé précédemment
NB : ce dernier point aurait pu être géré soit :
i) lors du chargement du fichier fasta protéique avec l'implémentation d'un Loader Fasta récupérant le
gène associé à la protéine (nécessité de stocker cette information dans le header fasta ou de contrôler la
nomenclature des accessions)
ii) avec un fichier de correspondance gene ↔ protéine

Code source:
https://gist.github.com/carrere/90b63b7c66913ad2cdd8

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Autres tests d'import de données
●

Import de fichiers Fasta
–

●

Import de résultats InterProScan
–

●

quelques zones d'ombres

développement d'un Loader

Connexion Chado
–

Par défaut seules les données de types Chromosome, Gene, CDS et Exons
sont exportées → développement

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Evaluation de la webApp
●

évaluation rapide...

●

… mais semble facilement customisable

●

intérêt des widgets disponibles (expression, cytoscape, jbrowse)

●

pas très orienté séquence (pas de recherche par blast par
exemple) → plus orienté fouille (QueryBuilder)

●

interopérabilité (API, connexion Galaxy, xref, exports standards)

●

restriction d'accès non gérée (multiplication des mines)

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Bilan semaine
●

Assez complexe a prendre en main
–

–
●

●

de nombreux fichiers de conf avec des ordres de priorité pas toujours
clairs
la doc est assez mal structurée

Difficile d'intégrer des données maison (même si les formats sont
standards)
Coût de developpement nécessaire vs. le coût de mettre en place
une telle solution

●

Interface Web claire et assez simplement customisable

●

Des bases de référence en support

●

Pas d'alternative ? SRS / EnsEMBL / BioMART

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
Sources
●

http://www.intermine.org

●

Rapport LIPM/Abims/Migale

●

●

Bioinformatics. 2012
InterMine: a flexible data warehouse system for the integration and analysis
of heterogeneous biological data.
Smith RN, Aleksic J, Butano D, Carr A, Contrino S, Hu F, Lyne M, Lyne R,
Kalderimis A, Rutherford K, Stepan R, Sullivan J, Wakeling M, Watkins X,
Micklem G.
Brief Bioinform. 2013 May 14.
A review of genomic data warehousing systems.
Triplet T, Butler G.

Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028

Contenu connexe

Similaire à 20131028 InterMine AG CATI BBRIC

Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
 
PhyloJava : une application de phylogénie sur la grille DATAGRID
PhyloJava : une application de phylogénie sur la grille DATAGRIDPhyloJava : une application de phylogénie sur la grille DATAGRID
PhyloJava : une application de phylogénie sur la grille DATAGRIDsuive
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Nicolas Georgeault
 
Journées ABES 2014 - Focus sur la plateforme Istex
Journées ABES 2014 - Focus sur la plateforme IstexJournées ABES 2014 - Focus sur la plateforme Istex
Journées ABES 2014 - Focus sur la plateforme IstexABES
 
Gwt jetty et sources de données
Gwt   jetty et sources de donnéesGwt   jetty et sources de données
Gwt jetty et sources de donnéesFranck SIMON
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationAntoine Rey
 
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne UniversitéESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne UniversitéLudovic A
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)Fourat Zouari
 
Présentation_Spark.pptx
Présentation_Spark.pptxPrésentation_Spark.pptx
Présentation_Spark.pptxboulonvert
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Corinne Schillinger
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de donnéespprem
 

Similaire à 20131028 InterMine AG CATI BBRIC (20)

Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Hibernate.pdf
Hibernate.pdfHibernate.pdf
Hibernate.pdf
 
PhyloJava : une application de phylogénie sur la grille DATAGRID
PhyloJava : une application de phylogénie sur la grille DATAGRIDPhyloJava : une application de phylogénie sur la grille DATAGRID
PhyloJava : une application de phylogénie sur la grille DATAGRID
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010
 
Springioc
SpringiocSpringioc
Springioc
 
Cache
CacheCache
Cache
 
Journées ABES 2014 - Focus sur la plateforme Istex
Journées ABES 2014 - Focus sur la plateforme IstexJournées ABES 2014 - Focus sur la plateforme Istex
Journées ABES 2014 - Focus sur la plateforme Istex
 
Gwt jetty et sources de données
Gwt   jetty et sources de donnéesGwt   jetty et sources de données
Gwt jetty et sources de données
 
Workshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring IntegrationWorkshop Spring - Session 5 - Spring Integration
Workshop Spring - Session 5 - Spring Integration
 
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne UniversitéESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
ESUPDAYS 26 : CAS 5.2 - Retour d'expérience Sorbonne Université
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)
 
Présentation_Spark.pptx
Présentation_Spark.pptxPrésentation_Spark.pptx
Présentation_Spark.pptx
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Automatisez vos tâches répétitives avec Grunt (Blend 2013)
Automatisez vos tâches répétitives avec Grunt (Blend 2013)
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Des solutions de synchronisation de données
Des solutions de synchronisation de donnéesDes solutions de synchronisation de données
Des solutions de synchronisation de données
 
Apprendre J2EE
Apprendre J2EEApprendre J2EE
Apprendre J2EE
 

20131028 InterMine AG CATI BBRIC

  • 1. Atelier InterMine ABiMS / MIGALE / LIPM Semaine 35 Sebastien.Carrere, Ludovic.Legrand Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 2. Contexte Dans le cadre du WP7 du projet Investissement d’Avenir SUNRISE, la plateforme Bioinformatique du Laboratoire des Interactions Plantes-Microorganismes a en charge la mise à disposition d’outils pour la gestion de données massives et hétérogènes de tournesol. En parallèle, l’infrastructure nationale EMBRC-France mène également une réflexion similaire dans le cadre du WP “Einfrastructure” qui a pour objectifs de développer un environnement intégré (données et outils) autour des modèles marins émergents (algues, bactéries, métazoaires…). Enfin, à Jouy, Idex Institut de Modélisation des Systèmes Vivants, Saclay (IMSV) : intégration de données “omiques” de bacteries (plantes a terme) C’est dans cette optique que nous avons identifié l’entrepôt de données Intermine (http://www.intermine.org) comme une solution potentielle. Cet atelier nous permettrait : - d’acquérir une culture commune dans le domaine de l’intégration de données - de monter en compétence collectivement sur un outil s’affichant comme clef dans le domaine de l’intégration de données biologiques - d’atteindre une masse critique afin de faire émerger une communauté d’utilisateurs et développeurs sur cet outil Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 3. InterMine ● Data WareHouse : – entrepôt de données – intégration de données hétérogènes – orienté organismes modèles ● FlyMine, YeastMine, RatMine Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 4. Technologies ● git ● Java (javac, SDK, ant, tomcat) – – chargement des données – ● construction du modèle application Web Perl – – ● Téléchargement de données (~ BioMAJ) Scripts de manipulation de fichiers XML PostgreSQL – customisé (boost des performances,beaucoup de données, nombreux accès) – BioSEG : BioSEG ● Procedures utilisant les structures d'index postGIS pour optimiser les recherches de type region/overlap sur les sequences. – Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 5. Construire une mine en 4 étapes ● Création de la mine – – ● création de l'arborescence du projet création deS bases de données Description du modèle de données – fichier project.xml – description des sources et des relations ● Chargement des données ● Déploiement de l'application web Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 6. Création de la mine Création de l'arborescence et des fichiers par défaut. make_mine mymine |­­ data |­­ dbmodel |­­ default.intermine.integrate.properties |­­ default.intermine.webapp.properties |­­ download_logs |­­ integrate |­­ postprocess |­­ project.xml `­­ webapp Création des bases de données createdb createuser ­E ­W intermine createdb ­O intermine ­T template1 mymine createdb ­O intermine ­T template1 items­mymine createdb ­O intermine ­T template1 userprofile­mymine 3 bases de données sont crées pour une mine: base de données correspondant au modèle de données et aux sources de la mine base items correspondant à une sorte de cache lors de la construction base users gérant les profils utilisateurs (sauvegarde de leur requêtes, templates, listes de gènes, etc...) Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 7. Description du modèle de données Fichier central project.xml Ce fichier décrit :   i) le modèle utilisé (genomic par défaut, en existe­t­il d'autres ? possibilité de surcharger ce modèle)  ii) les sources (données a intégrer) iii) les postprocess (création des liens de collection, extraction de séquences, index Lucene, autocompletion) <source name="malaria­gff" type="malaria­gff"> <property name="gff3.taxonId" value="36329"/> <property name="gff3.seqDataSourceName" value="PlasmoDB"/> <property name="gff3.dataSourceName" value="PlasmoDB"/> <property name="gff3.seqClsName" value="Chromosome"/> <property name="gff3.dataSetTitle" value="PlasmoDB P. falciparum genome"/> <property name="src.data.dir" location="/path/to/malaria/genome/gff"/> </source> malaria­gff est un type particulier pour le tutorial, le type pour les fichiers GFF étant ‘gff’. Cependant, le type par défaut ne charge pas grand chose (pas de liens entre genes/mRNA/Exons/CDS …). Nécessité d'écrire son propre Loader (classe JAVA) (make_source) Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 8. Chargement des données // Deploiement de l'application web ● Si tout le reste a été réglé, il n' y a pas grand chose à faire (3 commandes ant) – insertion dans la base de données temporaire – vérification des contraintes d’intégrité – bascule dans la base de production – génération des liens, extraction des séquences, construction d'index Lucene – déploiement web (tomcat) Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 9. Création du modèle cd mymine/dbmodel/build ant clean build­db Chargement des données Post-process Déploiement web cd mymine/integrate ant ­Dsource=all cd mymine/posprocess ant  cd mymine/webapp ant build­db­userprofile  ant default remove­webapp release­webapp Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 10. Charger un GFF3 Difficulté principale Le loader par défaut ne gère pas les liens de parentés (codées dans le GFF3 par la valeur de l’attibut Parent se référent à un ID précédemment rencontré et ce même en utilisant le modèle genomic basé sur la Sequence Ontology (conclusion confirmée via la mailing list). Dans le tutoriel, la chargement des GFF3 se fait via un loader spécifique (malaria-gff). Donc il est nécessaire d’écrire son propre loader. Solution : créer un loader Contenu du fichier project.xml <source name="helianthus­gff" type="gff­bfc">  <property name="gff3.taxonId" value="4232"/>  <property name="gff3.seqDataSourceName" value="HelianthusDB"/>  <property name="gff3.dataSourceName" value="HelianthusDB"/>  <property name="gff3.seqClsName" value="Chromosome"/>  <property name="gff3.dataSetTitle" value="HaT13l FrameDP predictions"/>  <property name="src.data.dir" location="/path/to/data_helianthus/gff3"/> </source> - Nom de la nouvelle source à créer - Nom de la datasource des séquences associées des chromosomes/transcrits - Le type (SO) de ce à quoi correspond la colonne 1 du GFF3: dans mon cas ils s'agit de transcrits mais si j'utilise dans mon cas la classe « Transcripts », comme mon GFF3 utilise des termes SO ne respectant pas la hiérarchie SO correspondant (gene est au dessus de transcrits) et SURTOUT pour que les postprocess d'extraction de séquences fonctionne, j'ai du me plier au schéma Chromosome>Gene>mRNA>Exon>CDS ; de plus lors de l'import des fichiers de sequence, il faut que ce nom de classe coïncide Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 11. Création de la nouvelle source http://intermine.readthedocs.org/en/latest/database/datasources/custom/#gff Notre source est de type GFF : bio/script/make_source gff­bfc gff Ce script génère entre autres 2 fichiers principaux : un fichier xml pour surchager le modèle de données, et une classe JAVA pour implémenter le parsing et le chargement dans le modèle. Edition de bio/sources/gff-bfc/gff-bfc_additions.xml Dans l'exemple suivant, je souhaite ajouter un attribut « product » que je récupèrerai dans le champ Note de mes features GFF3. Pour ce faire, il faut amender le modèle de base pour ajouter cet attribut sur les différentes classes en éditant ce fichier : <?xml version="1.0"?> <classes> <class name="Gene" is­interface="true"> <attribute name="product" type="java.lang.String"/> </class> <class name="MRNA" is­interface="true"> <attribute name="product" type="java.lang.String"/> </class> <class name="Exon" is­interface="true"> <attribute name="product" type="java.lang.String"/> </class> <class name="CDS" is­interface="true"> <attribute name="product" type="java.lang.String"/> </class> </classes> Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 12. Création de la nouvelle source http://intermine.readthedocs.org/en/latest/database/datasources/custom/#gff Edition de la classe JAVA bio/sources/gff-bfc/main/src/org/intermine/bio/dataconversion/GffBfcGFF3RecordHandler.java Cette classe se charge du parsing des données et de créer les objets devant être stockés dans la base de données. Dans mon cas, cette classe devait dans un premier temps expliciter les liens de parentés Gene->mRNA->Exon>CDS mais aussi préparer la création des protéines à partir des CDS (en vue du chargement des fichiers de séquences protéiques) mais aussi alimenter l'attribut « product » créé précédemment NB : ce dernier point aurait pu être géré soit : i) lors du chargement du fichier fasta protéique avec l'implémentation d'un Loader Fasta récupérant le gène associé à la protéine (nécessité de stocker cette information dans le header fasta ou de contrôler la nomenclature des accessions) ii) avec un fichier de correspondance gene ↔ protéine Code source: https://gist.github.com/carrere/90b63b7c66913ad2cdd8 Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 13. Autres tests d'import de données ● Import de fichiers Fasta – ● Import de résultats InterProScan – ● quelques zones d'ombres développement d'un Loader Connexion Chado – Par défaut seules les données de types Chromosome, Gene, CDS et Exons sont exportées → développement Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 14. Evaluation de la webApp ● évaluation rapide... ● … mais semble facilement customisable ● intérêt des widgets disponibles (expression, cytoscape, jbrowse) ● pas très orienté séquence (pas de recherche par blast par exemple) → plus orienté fouille (QueryBuilder) ● interopérabilité (API, connexion Galaxy, xref, exports standards) ● restriction d'accès non gérée (multiplication des mines) Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 15. Bilan semaine ● Assez complexe a prendre en main – – ● ● de nombreux fichiers de conf avec des ordres de priorité pas toujours clairs la doc est assez mal structurée Difficile d'intégrer des données maison (même si les formats sont standards) Coût de developpement nécessaire vs. le coût de mettre en place une telle solution ● Interface Web claire et assez simplement customisable ● Des bases de référence en support ● Pas d'alternative ? SRS / EnsEMBL / BioMART Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028
  • 17. Sources ● http://www.intermine.org ● Rapport LIPM/Abims/Migale ● ● Bioinformatics. 2012 InterMine: a flexible data warehouse system for the integration and analysis of heterogeneous biological data. Smith RN, Aleksic J, Butano D, Carr A, Contrino S, Hu F, Lyne M, Lyne R, Kalderimis A, Rutherford K, Stepan R, Sullivan J, Wakeling M, Watkins X, Micklem G. Brief Bioinform. 2013 May 14. A review of genomic data warehousing systems. Triplet T, Butler G. Sebastien.Carrere@toulouse.inra.fr - AG CATI-BBRIC - 20131028