SlideShare a Scribd company logo
1 of 32
1
Doing Graph->Table conversionsDoing Graph->Table conversions
With graph2tabWith graph2tab
Marco Brandizi, EBI, 17 Feb 2012Marco Brandizi, EBI, 17 Feb 2012
2
Sources: www.dilbert.com, http://www.flickr.com/photos/joao_trindade/4362414729/in/photostream/,
http://www.boringmeetingssuck.com/, http://jflashman.wordpress.com/2011/06/17/venerdi-17-con-rispetto/
3
Mainly interesting to developers dealing with
databases like AE and formats like MAGETAB
Others may be interested things around you
And affected by the software presented here
Mainly interesting to developers dealing with
databases like AE and formats like MAGETAB
Others may be interested things around you
And affected by the software presented here
Details are rather technical (graph theory and
operative research)
But obviously I'll keep them at a minimum here
I'm finalising a document for those keen on Maths
Details are rather technical (graph theory and
operative research)
But obviously I'll keep them at a minimum here
I'm finalising a document for those keen on Maths
Come on! We do science here!Come on! We do science here!
STOP PLEASE! I was joking!
4
What graph2tab is for
e.g., MAGETAB, ISA-Tab,e.g., MAGETAB, ISA-Tab,
SampleTABSampleTAB
e.g., MAGETAB, ISA-Tab,e.g., MAGETAB, ISA-Tab,
SampleTABSampleTAB(*) as long as it's Java-encoded(*) as long as it's Java-encoded
e.g., ArrayExpress, GXAe.g., ArrayExpress, GXA
BII, BiosamplesDBBII, BiosamplesDB
e.g., ArrayExpress, GXAe.g., ArrayExpress, GXA
BII, BiosamplesDBBII, BiosamplesDB
Generic, you can adapt it to anyGeneric, you can adapt it to any
model(*)/format combinationmodel(*)/format combination
Generic, you can adapt it to anyGeneric, you can adapt it to any
model(*)/format combinationmodel(*)/format combination
5
Three sub-problems
To find a suitable/optimal set of paths and rows
To layer the graph, so that homogeneous node will go
under the same set of columns when possible
To arrange node attributes in a way that allows one to
build the table from them
To find a suitable/optimal set of paths and rows
To layer the graph, so that homogeneous node will go
under the same set of columns when possible
To arrange node attributes in a way that allows one to
build the table from them
6
Pb 1, Basic rule: Paths = Rows
7
Requirement #1: A covering path set
OKOKOKOK
Wrong!Wrong!Wrong!Wrong!
8
Requirement #2: A minimum covering path set
OKOKOKOK
OK, but bigger!OK, but bigger!OK, but bigger!OK, but bigger!
9
Optimisation is not so simple
7 rows are enough.7 rows are enough.
But try to prove it andBut try to prove it and
to find them!to find them!
7 rows are enough.7 rows are enough.
But try to prove it andBut try to prove it and
to find them!to find them!
10
Flow Networks
f (N ,i)− f (i , N )=
{
−v i=s
0 i≠s ,t
v i=t
FlowFlow
11
Flow Networks
f (N ,i)− f (i , N )=
{
−v i=s
0 i≠s ,t
v i=t
Constrained flow
and admissible flow
Constrained flow
and admissible flow
l(i, j) ≤ f(i, j) ≤ c(i, j), (i,j) A∀ ∈
12
Flow Networks
f (N ,i)− f (i , N )=
{
−v i=s
0 i≠s ,t
v i=t
Minimum flowMinimum flowl(i, j) ≤ f(i, j) ≤ c(i, j), (i,j) A∀ ∈
f is minimal
13
From Minimum Flow to Minimum Covering Path Set
A fictitious source and sink
l(virtual arcs) = 0
l(real arcs) = 1
No upper bound
A fictitious source and sink
l(virtual arcs) = 0
l(real arcs) = 1
No upper bound
14
From Minimum Flow to Minimum Covering Path Set
i.e., the f(i,j) = no of times
we pass through (i,j)
Or no of repetitions for (i,j)
i.e., the f(i,j) = no of times
we pass through (i,j)
Or no of repetitions for (i,j)
15
Minimum Flow: Ford-Fulkerson Algorithm
16
Three sub-problems
To find a suitable/optimal set of paths and rows
To layer the graph, so that homogeneous node will
go under the same set of columns when possible
To arrange node attributes in a way that allows one to
build the table from them
To find a suitable/optimal set of paths and rows
To layer the graph, so that homogeneous node will
go under the same set of columns when possible
To arrange node attributes in a way that allows one to
build the table from them
17
Layering
18
Conceptually simple
You start by marking every node with its topological distance from
the farthest connected left node
Then for layer = 0..max
For each pair of nodes in the layer
Shift one of the two if they haven't the same type
You start by marking every node with its topological distance from
the farthest connected left node
Then for layer = 0..max
For each pair of nodes in the layer
Shift one of the two if they haven't the same type
19
Conceptually simple, but...
Computers understand biology even less than me!Computers understand biology even less than me!
'Source', 'Sample', 'Labeled Extract' are just symbols'Source', 'Sample', 'Labeled Extract' are just symbols
Either solution is acceptable without further informationEither solution is acceptable without further information
Computers understand biology even less than me!Computers understand biology even less than me!
'Source', 'Sample', 'Labeled Extract' are just symbols'Source', 'Sample', 'Labeled Extract' are just symbols
Either solution is acceptable without further informationEither solution is acceptable without further information
20
Conceptually simple, but...
Map<String, Integer> TYPE_ORDER =
new HashMap<String, Integer> ()
{{
put ( "Source Name", 0 );
put ( "Sample Name", 1 );
put ( "Extract Name", 2 );
put ( "Labeled Extract Name", 3 );
put ( "Assay Name", 4 );
put ( "Data File Name", 5 );
}};
Ah-Ah! Now I know what toAh-Ah! Now I know what to
choose!choose!
Ah-Ah! Now I know what toAh-Ah! Now I know what to
choose!choose!
+interface Node
extends Comparable<Node>
{
getInputs (): SortedSet<Node>
getOutputs (): SortedSet<Node>
getTabValues (): TabValueGroup[]
getType (): String
getOrder (): int
}
21
More cases, same trick
22
Three sub-problems
To find a suitable/optimal set of paths and rows
To layer the graph, so that homogeneous node will go
under the same set of columns when possible
To arrange node attributes in a way that allows one
to build the table from them
To find a suitable/optimal set of paths and rows
To layer the graph, so that homogeneous node will go
under the same set of columns when possible
To arrange node attributes in a way that allows one
to build the table from them
23
Basic Algorithm
For every path in the minimum covering path set:
For every node in the path:
Cover with empty cells any layer between previous node and
layer(node)
Merge attributes(node) into the columns/rows built so far for
layer(node)
For every path in the minimum covering path set:
For every node in the path:
Cover with empty cells any layer between previous node and
layer(node)
Merge attributes(node) into the columns/rows built so far for
layer(node)
24
Representing Node Attributes
TabValueGroup (
header = "Organism"
value = "Mus-mus"
tail = ( TabValueGroup (
header = "Term Source REF"
value = "NCBI-Tax"
tail = ( TabValueGroup (
header = "Term Accession"
value = "123"
))
))
)
StructuredTable (
header = "Organism"
rows = "R. Norvegicus"
tail = []
)
StructuredTable (
header = "Organism"
rows = "R. Norvegicus", "Mus-mus"
tail = ( StructuredTable (
header = "Term Source REF"
rows = "", "", "NCBI-Tax"
tail = ( StructuredTable (
header = "Term Accession"
rows = "", "", "123"
))
))
)
+ =
25
Merging Node Attributes
26
graph2tab on the Road
public interface TabValueGroup
{
public String getHeader();
public String getValue();
public List<TabValueGroup> getTail ();
}
public abstract class DefaultAbstractNode implements Node
27
Two ways to extend from basic interfaces
Simpler approach: just let the classes of your model to
implement the Node interface
Or, much simpler, to extend the DefaultAbstractNode
Simpler, but unrealistic
In fact, sorry, but I realised I don't have any
significant example about...
More realistic approach: wrappers, ie, a 1-1 mapping
from your nodes to graph2tab nodes
Simpler approach: just let the classes of your model to
implement the Node interface
Or, much simpler, to extend the DefaultAbstractNode
Simpler, but unrealistic
In fact, sorry, but I realised I don't have any
significant example about...
More realistic approach: wrappers, ie, a 1-1 mapping
from your nodes to graph2tab nodes
28
Extending through wrappers
public abstract class ExpNodeWrapper extends DefaultAbstractNode
{
ExpNodeWrapper ( ExperimentNode base, NodeFactory nodeFactory )
{
this.base = base;
this.nodeFactory = nodeFactory;
}
public List<TabValueGroup> getTabValues ()
{
List<TabValueGroup> result = new ArrayList<TabValueGroup> ();
result.add ( new DefaultTabValueGroup ( nameHeader, base.getName () ) );
for ( Annotation annotation: base.getAnnotations () )
{
DefaultTabValueGroup tbg = new DefaultTabValueGroup (
annotation.getType (), annotation.getValue () );
OntoTerm ot = annotation.getOntoTerm ();
if ( ot != null ) tbg.append (
new DefaultTabValueGroup ( "Term Accession Number", ot.getAcc (),
new DefaultTabValueGroup ( "Term Source REF", ot.getSource () ) ));
result.add ( tbg );
}
return result;
}
public int getOrder ()
{
String header = getType();
Integer order = TYPE_ORDER.get ( header );
return order == null ? -1 : order;
}
...
}
29
Extending through wrappers
public abstract class ExpNodeWrapper extends DefaultAbstractNode
{
...
public SortedSet<Node> getInputs ()
{
if ( inputs != null )
return super.getInputs ();
inputs = new TreeSet<Node> ();
for ( ExperimentNode in: base.getInputs () )
inputs.add ( nodeFactory.getNode ( in ) );
return super.getInputs ();
}
}
public class NodeFactory extends
org.isatools.tablib.export.graph2tab.simple_biomodel_tests.node_wrappers.NodeFactory
{
private NodeFactory () {}
private static final NodeFactory instance = new NodeFactory ();
public static NodeFactory getInstance () { return instance; }
protected ExpNodeWrapper createNewNode ( ExperimentNode base ) {
if ( base instanceof BioSource ) return new BioSourceWrapper ( (BioSource) base, this );
if ( base instanceof BioSample ) return new BioSampleWrapper ( (BioSample) base, this );
if ( base instanceof BioExtract ) return
new BioExtractWrapper ( (BioExtract) base, this );
if ( base instanceof BioLabeledExtract )
...
}
}
30
Real Use Cases so Far
Was born while I was working on the BII project, it's now part of
the ISA tools (exports studies from BII database to ISA-Tab
format, works out the sample and assay file)
ArrayExpress2 to MAGETAB exporter
Being integrated in the production environment, will allow to
re-generate SDRF files from (possibly re-annotated) database
records (ie, uses the AE2 object model)
MAGE-ML to MAGETAB converter
Thanks to Natalja Kurbatova
Re-Exporter in the Limpopo Library
Thanks to Natalja, Tony Burdett
Adam Faulconbridge, working with graph2tab for the SampleDB
project (???)
Was born while I was working on the BII project, it's now part of
the ISA tools (exports studies from BII database to ISA-Tab
format, works out the sample and assay file)
ArrayExpress2 to MAGETAB exporter
Being integrated in the production environment, will allow to
re-generate SDRF files from (possibly re-annotated) database
records (ie, uses the AE2 object model)
MAGE-ML to MAGETAB converter
Thanks to Natalja Kurbatova
Re-Exporter in the Limpopo Library
Thanks to Natalja, Tony Burdett
Adam Faulconbridge, working with graph2tab for the SampleDB
project (???)
31
Possibly in Future
Maybe a better extension mechanism
Java Annotations or XML mapping files
Translation to other languages
If someone is interested...
More biomedical use cases
Eg, several efforts in progress to represent experimental meta-
data in RDF/OWL (such as OBI)
One may need to convert such models back to tabular formats
Or to visualise them as tables
Non biomedical applications?
Maybe, workflows occur in many fields
Not so sure about tabular formats
Maybe a better extension mechanism
Java Annotations or XML mapping files
Translation to other languages
If someone is interested...
More biomedical use cases
Eg, several efforts in progress to represent experimental meta-
data in RDF/OWL (such as OBI)
One may need to convert such models back to tabular formats
Or to visualise them as tables
Non biomedical applications?
Maybe, workflows occur in many fields
Not so sure about tabular formats
32
Acknowledgements
Philippe Rocca-Serra, Susanna Sansone (Team leaders for BII), Eamonn
Maguire
For their support and their patience while I had struggled to come up to
an acceptable solution
Ugis Sarkans (team leader for AE) and AE team
Support and help for the AE exporter
Tony Burdett
Support for the Limpopo use case
Natalja Kurbatova
Worked out the MAGE-ML converter and on the Limpopo too
Adam Falcounbridge
Help in spotting and fixing a few bugs
Alvis Brazma, Natalja
Discussions on the ambiguities with the layering
Funders (CarcinoGENOMICS and EMBL)
Philippe Rocca-Serra, Susanna Sansone (Team leaders for BII), Eamonn
Maguire
For their support and their patience while I had struggled to come up to
an acceptable solution
Ugis Sarkans (team leader for AE) and AE team
Support and help for the AE exporter
Tony Burdett
Support for the Limpopo use case
Natalja Kurbatova
Worked out the MAGE-ML converter and on the Limpopo too
Adam Falcounbridge
Help in spotting and fixing a few bugs
Alvis Brazma, Natalja
Discussions on the ambiguities with the layering
Funders (CarcinoGENOMICS and EMBL)
And you all!And you all!And you all!And you all!

More Related Content

Similar to graph2tab, a library to convert experimental workflow graphs into tabular formats

Technical aptitude questions_e_book1
Technical aptitude questions_e_book1Technical aptitude questions_e_book1
Technical aptitude questions_e_book1Sateesh Allu
 
Bidirectional graph search techniques for finding shortest path in image base...
Bidirectional graph search techniques for finding shortest path in image base...Bidirectional graph search techniques for finding shortest path in image base...
Bidirectional graph search techniques for finding shortest path in image base...Navin Kumar
 
Home Page Live(Www2007)
Home Page Live(Www2007)Home Page Live(Www2007)
Home Page Live(Www2007)tomelf2007
 
Consider this code using the ArrayBag of Section 5.2 and the Locat.docx
Consider this code using the ArrayBag of Section 5.2 and the Locat.docxConsider this code using the ArrayBag of Section 5.2 and the Locat.docx
Consider this code using the ArrayBag of Section 5.2 and the Locat.docxmaxinesmith73660
 
Using Topological Data Analysis on your BigData
Using Topological Data Analysis on your BigDataUsing Topological Data Analysis on your BigData
Using Topological Data Analysis on your BigDataAnalyticsWeek
 
for sbi so Ds c c++ unix rdbms sql cn os
for sbi so   Ds c c++ unix rdbms sql cn osfor sbi so   Ds c c++ unix rdbms sql cn os
for sbi so Ds c c++ unix rdbms sql cn osalisha230390
 
Reasoning about memory-critical algorithms by Theo D'Hondt
Reasoning about memory-critical algorithms by Theo D'HondtReasoning about memory-critical algorithms by Theo D'Hondt
Reasoning about memory-critical algorithms by Theo D'HondtFAST
 
Graph Traversal Algorithms - Breadth First Search
Graph Traversal Algorithms - Breadth First SearchGraph Traversal Algorithms - Breadth First Search
Graph Traversal Algorithms - Breadth First SearchAmrinder Arora
 
OUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdf
OUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdfOUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdf
OUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdfEmadfHABIB2
 
(Radhika) presentation on chapter 2 ai
(Radhika) presentation on chapter 2 ai(Radhika) presentation on chapter 2 ai
(Radhika) presentation on chapter 2 aiRadhika Srinivasan
 
Music recommendations @ MLConf 2014
Music recommendations @ MLConf 2014Music recommendations @ MLConf 2014
Music recommendations @ MLConf 2014Erik Bernhardsson
 
trees-and-graphs_computer_science_for_student.pptx
trees-and-graphs_computer_science_for_student.pptxtrees-and-graphs_computer_science_for_student.pptx
trees-and-graphs_computer_science_for_student.pptxTanvirAhmed166122
 
17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversalIntro C# Book
 
Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.
Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris. Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.
Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris. OW2
 

Similar to graph2tab, a library to convert experimental workflow graphs into tabular formats (20)

Q
QQ
Q
 
Technical aptitude questions_e_book1
Technical aptitude questions_e_book1Technical aptitude questions_e_book1
Technical aptitude questions_e_book1
 
User biglm
User biglmUser biglm
User biglm
 
Bidirectional graph search techniques for finding shortest path in image base...
Bidirectional graph search techniques for finding shortest path in image base...Bidirectional graph search techniques for finding shortest path in image base...
Bidirectional graph search techniques for finding shortest path in image base...
 
Home Page Live(Www2007)
Home Page Live(Www2007)Home Page Live(Www2007)
Home Page Live(Www2007)
 
Bh36352357
Bh36352357Bh36352357
Bh36352357
 
Data Structure
Data StructureData Structure
Data Structure
 
611+tutorial
611+tutorial611+tutorial
611+tutorial
 
Consider this code using the ArrayBag of Section 5.2 and the Locat.docx
Consider this code using the ArrayBag of Section 5.2 and the Locat.docxConsider this code using the ArrayBag of Section 5.2 and the Locat.docx
Consider this code using the ArrayBag of Section 5.2 and the Locat.docx
 
Using Topological Data Analysis on your BigData
Using Topological Data Analysis on your BigDataUsing Topological Data Analysis on your BigData
Using Topological Data Analysis on your BigData
 
for sbi so Ds c c++ unix rdbms sql cn os
for sbi so   Ds c c++ unix rdbms sql cn osfor sbi so   Ds c c++ unix rdbms sql cn os
for sbi so Ds c c++ unix rdbms sql cn os
 
Reasoning about memory-critical algorithms by Theo D'Hondt
Reasoning about memory-critical algorithms by Theo D'HondtReasoning about memory-critical algorithms by Theo D'Hondt
Reasoning about memory-critical algorithms by Theo D'Hondt
 
Graph Traversal Algorithms - Breadth First Search
Graph Traversal Algorithms - Breadth First SearchGraph Traversal Algorithms - Breadth First Search
Graph Traversal Algorithms - Breadth First Search
 
OUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdf
OUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdfOUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdf
OUTDATED Very-Important Very-Draft SLIDES - Ver 0.1.pdf
 
(Radhika) presentation on chapter 2 ai
(Radhika) presentation on chapter 2 ai(Radhika) presentation on chapter 2 ai
(Radhika) presentation on chapter 2 ai
 
Music recommendations @ MLConf 2014
Music recommendations @ MLConf 2014Music recommendations @ MLConf 2014
Music recommendations @ MLConf 2014
 
trees-and-graphs_computer_science_for_student.pptx
trees-and-graphs_computer_science_for_student.pptxtrees-and-graphs_computer_science_for_student.pptx
trees-and-graphs_computer_science_for_student.pptx
 
17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal17. Java data structures trees representation and traversal
17. Java data structures trees representation and traversal
 
Ai1.pdf
Ai1.pdfAi1.pdf
Ai1.pdf
 
Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.
Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris. Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.
Sat4j: from the lab to desktop computers. OW2con'15, November 17, Paris.
 

More from Rothamsted Research, UK

FAIR Agronomy, where are we? The KnetMiner Use Case
FAIR Agronomy, where are we? The KnetMiner Use CaseFAIR Agronomy, where are we? The KnetMiner Use Case
FAIR Agronomy, where are we? The KnetMiner Use CaseRothamsted Research, UK
 
Interoperable Data for KnetMiner and DFW Use Cases
Interoperable Data for KnetMiner and DFW Use CasesInteroperable Data for KnetMiner and DFW Use Cases
Interoperable Data for KnetMiner and DFW Use CasesRothamsted Research, UK
 
AgriSchemas: Sharing Agrifood data with Bioschemas
AgriSchemas: Sharing Agrifood data with BioschemasAgriSchemas: Sharing Agrifood data with Bioschemas
AgriSchemas: Sharing Agrifood data with BioschemasRothamsted Research, UK
 
Publishing and Consuming FAIR Data A Case in the Agri-Food Domain
Publishing and Consuming FAIR DataA Case in the Agri-Food DomainPublishing and Consuming FAIR DataA Case in the Agri-Food Domain
Publishing and Consuming FAIR Data A Case in the Agri-Food DomainRothamsted Research, UK
 
AgriFood Data, Models, Standards, Tools, Use Cases
AgriFood Data, Models, Standards, Tools, Use CasesAgriFood Data, Models, Standards, Tools, Use Cases
AgriFood Data, Models, Standards, Tools, Use CasesRothamsted Research, UK
 
Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...
Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...
Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...Rothamsted Research, UK
 
A Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMinerA Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMinerRothamsted Research, UK
 
Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...
Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...
Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...Rothamsted Research, UK
 
Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...
Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...
Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...Rothamsted Research, UK
 
myEquivalents, aka a new cross-reference service
myEquivalents, aka a new cross-reference servicemyEquivalents, aka a new cross-reference service
myEquivalents, aka a new cross-reference serviceRothamsted Research, UK
 

More from Rothamsted Research, UK (20)

FAIR Agronomy, where are we? The KnetMiner Use Case
FAIR Agronomy, where are we? The KnetMiner Use CaseFAIR Agronomy, where are we? The KnetMiner Use Case
FAIR Agronomy, where are we? The KnetMiner Use Case
 
Interoperable Data for KnetMiner and DFW Use Cases
Interoperable Data for KnetMiner and DFW Use CasesInteroperable Data for KnetMiner and DFW Use Cases
Interoperable Data for KnetMiner and DFW Use Cases
 
AgriSchemas: Sharing Agrifood data with Bioschemas
AgriSchemas: Sharing Agrifood data with BioschemasAgriSchemas: Sharing Agrifood data with Bioschemas
AgriSchemas: Sharing Agrifood data with Bioschemas
 
Publishing and Consuming FAIR Data A Case in the Agri-Food Domain
Publishing and Consuming FAIR DataA Case in the Agri-Food DomainPublishing and Consuming FAIR DataA Case in the Agri-Food Domain
Publishing and Consuming FAIR Data A Case in the Agri-Food Domain
 
Continuos Integration @Knetminer
Continuos Integration @KnetminerContinuos Integration @Knetminer
Continuos Integration @Knetminer
 
Better Data for a Better World
Better Data for a Better WorldBetter Data for a Better World
Better Data for a Better World
 
AgriSchemas Progress Report
AgriSchemas Progress ReportAgriSchemas Progress Report
AgriSchemas Progress Report
 
AgriFood Data, Models, Standards, Tools, Use Cases
AgriFood Data, Models, Standards, Tools, Use CasesAgriFood Data, Models, Standards, Tools, Use Cases
AgriFood Data, Models, Standards, Tools, Use Cases
 
Notes about SWAT4LS 2018
Notes about SWAT4LS 2018Notes about SWAT4LS 2018
Notes about SWAT4LS 2018
 
Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...
Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...
Getting the best of Linked Data and Property Graphs: rdf2neo and the KnetMine...
 
Knetminer Backend Training, Nov 2018
Knetminer Backend Training, Nov 2018Knetminer Backend Training, Nov 2018
Knetminer Backend Training, Nov 2018
 
A Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMinerA Preliminary survey of RDF/Neo4j as backends for KnetMiner
A Preliminary survey of RDF/Neo4j as backends for KnetMiner
 
Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...
Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...
Towards FAIRer Biological Knowledge Networks 
Using a Hybrid Linked Data 
and...
 
Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...
Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...
Behind the Scenes of KnetMiner: Towards Standardised and Interoperable Knowle...
 
Interoperable Open Data: Which Recipes?
Interoperable Open Data: Which Recipes?Interoperable Open Data: Which Recipes?
Interoperable Open Data: Which Recipes?
 
Linked Data with the EBI RDF Platform
Linked Data with the EBI RDF PlatformLinked Data with the EBI RDF Platform
Linked Data with the EBI RDF Platform
 
BioSD Linked Data: Lessons Learned
BioSD Linked Data: Lessons LearnedBioSD Linked Data: Lessons Learned
BioSD Linked Data: Lessons Learned
 
BioSD Tutorial 2014 Editition
BioSD Tutorial 2014 EdititionBioSD Tutorial 2014 Editition
BioSD Tutorial 2014 Editition
 
myEquivalents, aka a new cross-reference service
myEquivalents, aka a new cross-reference servicemyEquivalents, aka a new cross-reference service
myEquivalents, aka a new cross-reference service
 
Dev 2014 LOD tutorial
Dev 2014 LOD tutorialDev 2014 LOD tutorial
Dev 2014 LOD tutorial
 

Recently uploaded

Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Cathrine Wilhelmsen
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)jennyeacort
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFAAndrei Kaleshka
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our WorldEduminds Learning
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024thyngster
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Boston Institute of Analytics
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxellehsormae
 
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...Boston Institute of Analytics
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesTimothy Spann
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max PrincetonTimothy Spann
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhijennyeacort
 
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...limedy534
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...GQ Research
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理e4aez8ss
 
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...ssuserf63bd7
 
Semantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxSemantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxMike Bennett
 
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
Multiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfMultiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfchwongval
 
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfPredicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfBoston Institute of Analytics
 

Recently uploaded (20)

Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)Data Factory in Microsoft Fabric (MsBIP #82)
Data Factory in Microsoft Fabric (MsBIP #82)
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFA
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our World
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
 
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
Decoding the Heart: Student Presentation on Heart Attack Prediction with Data...
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptx
 
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming PipelinesConf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
Conf42-LLM_Adding Generative AI to Real-Time Streaming Pipelines
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max Princeton
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
 
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
 
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
Biometric Authentication: The Evolution, Applications, Benefits and Challenge...
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
 
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
Statistics, Data Analysis, and Decision Modeling, 5th edition by James R. Eva...
 
Semantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptxSemantic Shed - Squashing and Squeezing.pptx
Semantic Shed - Squashing and Squeezing.pptx
 
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
 
Multiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfMultiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdf
 
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdfPredicting Salary Using Data Science: A Comprehensive Analysis.pdf
Predicting Salary Using Data Science: A Comprehensive Analysis.pdf
 

graph2tab, a library to convert experimental workflow graphs into tabular formats

  • 1. 1 Doing Graph->Table conversionsDoing Graph->Table conversions With graph2tabWith graph2tab Marco Brandizi, EBI, 17 Feb 2012Marco Brandizi, EBI, 17 Feb 2012
  • 3. 3 Mainly interesting to developers dealing with databases like AE and formats like MAGETAB Others may be interested things around you And affected by the software presented here Mainly interesting to developers dealing with databases like AE and formats like MAGETAB Others may be interested things around you And affected by the software presented here Details are rather technical (graph theory and operative research) But obviously I'll keep them at a minimum here I'm finalising a document for those keen on Maths Details are rather technical (graph theory and operative research) But obviously I'll keep them at a minimum here I'm finalising a document for those keen on Maths Come on! We do science here!Come on! We do science here! STOP PLEASE! I was joking!
  • 4. 4 What graph2tab is for e.g., MAGETAB, ISA-Tab,e.g., MAGETAB, ISA-Tab, SampleTABSampleTAB e.g., MAGETAB, ISA-Tab,e.g., MAGETAB, ISA-Tab, SampleTABSampleTAB(*) as long as it's Java-encoded(*) as long as it's Java-encoded e.g., ArrayExpress, GXAe.g., ArrayExpress, GXA BII, BiosamplesDBBII, BiosamplesDB e.g., ArrayExpress, GXAe.g., ArrayExpress, GXA BII, BiosamplesDBBII, BiosamplesDB Generic, you can adapt it to anyGeneric, you can adapt it to any model(*)/format combinationmodel(*)/format combination Generic, you can adapt it to anyGeneric, you can adapt it to any model(*)/format combinationmodel(*)/format combination
  • 5. 5 Three sub-problems To find a suitable/optimal set of paths and rows To layer the graph, so that homogeneous node will go under the same set of columns when possible To arrange node attributes in a way that allows one to build the table from them To find a suitable/optimal set of paths and rows To layer the graph, so that homogeneous node will go under the same set of columns when possible To arrange node attributes in a way that allows one to build the table from them
  • 6. 6 Pb 1, Basic rule: Paths = Rows
  • 7. 7 Requirement #1: A covering path set OKOKOKOK Wrong!Wrong!Wrong!Wrong!
  • 8. 8 Requirement #2: A minimum covering path set OKOKOKOK OK, but bigger!OK, but bigger!OK, but bigger!OK, but bigger!
  • 9. 9 Optimisation is not so simple 7 rows are enough.7 rows are enough. But try to prove it andBut try to prove it and to find them!to find them! 7 rows are enough.7 rows are enough. But try to prove it andBut try to prove it and to find them!to find them!
  • 10. 10 Flow Networks f (N ,i)− f (i , N )= { −v i=s 0 i≠s ,t v i=t FlowFlow
  • 11. 11 Flow Networks f (N ,i)− f (i , N )= { −v i=s 0 i≠s ,t v i=t Constrained flow and admissible flow Constrained flow and admissible flow l(i, j) ≤ f(i, j) ≤ c(i, j), (i,j) A∀ ∈
  • 12. 12 Flow Networks f (N ,i)− f (i , N )= { −v i=s 0 i≠s ,t v i=t Minimum flowMinimum flowl(i, j) ≤ f(i, j) ≤ c(i, j), (i,j) A∀ ∈ f is minimal
  • 13. 13 From Minimum Flow to Minimum Covering Path Set A fictitious source and sink l(virtual arcs) = 0 l(real arcs) = 1 No upper bound A fictitious source and sink l(virtual arcs) = 0 l(real arcs) = 1 No upper bound
  • 14. 14 From Minimum Flow to Minimum Covering Path Set i.e., the f(i,j) = no of times we pass through (i,j) Or no of repetitions for (i,j) i.e., the f(i,j) = no of times we pass through (i,j) Or no of repetitions for (i,j)
  • 16. 16 Three sub-problems To find a suitable/optimal set of paths and rows To layer the graph, so that homogeneous node will go under the same set of columns when possible To arrange node attributes in a way that allows one to build the table from them To find a suitable/optimal set of paths and rows To layer the graph, so that homogeneous node will go under the same set of columns when possible To arrange node attributes in a way that allows one to build the table from them
  • 18. 18 Conceptually simple You start by marking every node with its topological distance from the farthest connected left node Then for layer = 0..max For each pair of nodes in the layer Shift one of the two if they haven't the same type You start by marking every node with its topological distance from the farthest connected left node Then for layer = 0..max For each pair of nodes in the layer Shift one of the two if they haven't the same type
  • 19. 19 Conceptually simple, but... Computers understand biology even less than me!Computers understand biology even less than me! 'Source', 'Sample', 'Labeled Extract' are just symbols'Source', 'Sample', 'Labeled Extract' are just symbols Either solution is acceptable without further informationEither solution is acceptable without further information Computers understand biology even less than me!Computers understand biology even less than me! 'Source', 'Sample', 'Labeled Extract' are just symbols'Source', 'Sample', 'Labeled Extract' are just symbols Either solution is acceptable without further informationEither solution is acceptable without further information
  • 20. 20 Conceptually simple, but... Map<String, Integer> TYPE_ORDER = new HashMap<String, Integer> () {{ put ( "Source Name", 0 ); put ( "Sample Name", 1 ); put ( "Extract Name", 2 ); put ( "Labeled Extract Name", 3 ); put ( "Assay Name", 4 ); put ( "Data File Name", 5 ); }}; Ah-Ah! Now I know what toAh-Ah! Now I know what to choose!choose! Ah-Ah! Now I know what toAh-Ah! Now I know what to choose!choose! +interface Node extends Comparable<Node> { getInputs (): SortedSet<Node> getOutputs (): SortedSet<Node> getTabValues (): TabValueGroup[] getType (): String getOrder (): int }
  • 22. 22 Three sub-problems To find a suitable/optimal set of paths and rows To layer the graph, so that homogeneous node will go under the same set of columns when possible To arrange node attributes in a way that allows one to build the table from them To find a suitable/optimal set of paths and rows To layer the graph, so that homogeneous node will go under the same set of columns when possible To arrange node attributes in a way that allows one to build the table from them
  • 23. 23 Basic Algorithm For every path in the minimum covering path set: For every node in the path: Cover with empty cells any layer between previous node and layer(node) Merge attributes(node) into the columns/rows built so far for layer(node) For every path in the minimum covering path set: For every node in the path: Cover with empty cells any layer between previous node and layer(node) Merge attributes(node) into the columns/rows built so far for layer(node)
  • 24. 24 Representing Node Attributes TabValueGroup ( header = "Organism" value = "Mus-mus" tail = ( TabValueGroup ( header = "Term Source REF" value = "NCBI-Tax" tail = ( TabValueGroup ( header = "Term Accession" value = "123" )) )) ) StructuredTable ( header = "Organism" rows = "R. Norvegicus" tail = [] ) StructuredTable ( header = "Organism" rows = "R. Norvegicus", "Mus-mus" tail = ( StructuredTable ( header = "Term Source REF" rows = "", "", "NCBI-Tax" tail = ( StructuredTable ( header = "Term Accession" rows = "", "", "123" )) )) ) + =
  • 26. 26 graph2tab on the Road public interface TabValueGroup { public String getHeader(); public String getValue(); public List<TabValueGroup> getTail (); } public abstract class DefaultAbstractNode implements Node
  • 27. 27 Two ways to extend from basic interfaces Simpler approach: just let the classes of your model to implement the Node interface Or, much simpler, to extend the DefaultAbstractNode Simpler, but unrealistic In fact, sorry, but I realised I don't have any significant example about... More realistic approach: wrappers, ie, a 1-1 mapping from your nodes to graph2tab nodes Simpler approach: just let the classes of your model to implement the Node interface Or, much simpler, to extend the DefaultAbstractNode Simpler, but unrealistic In fact, sorry, but I realised I don't have any significant example about... More realistic approach: wrappers, ie, a 1-1 mapping from your nodes to graph2tab nodes
  • 28. 28 Extending through wrappers public abstract class ExpNodeWrapper extends DefaultAbstractNode { ExpNodeWrapper ( ExperimentNode base, NodeFactory nodeFactory ) { this.base = base; this.nodeFactory = nodeFactory; } public List<TabValueGroup> getTabValues () { List<TabValueGroup> result = new ArrayList<TabValueGroup> (); result.add ( new DefaultTabValueGroup ( nameHeader, base.getName () ) ); for ( Annotation annotation: base.getAnnotations () ) { DefaultTabValueGroup tbg = new DefaultTabValueGroup ( annotation.getType (), annotation.getValue () ); OntoTerm ot = annotation.getOntoTerm (); if ( ot != null ) tbg.append ( new DefaultTabValueGroup ( "Term Accession Number", ot.getAcc (), new DefaultTabValueGroup ( "Term Source REF", ot.getSource () ) )); result.add ( tbg ); } return result; } public int getOrder () { String header = getType(); Integer order = TYPE_ORDER.get ( header ); return order == null ? -1 : order; } ... }
  • 29. 29 Extending through wrappers public abstract class ExpNodeWrapper extends DefaultAbstractNode { ... public SortedSet<Node> getInputs () { if ( inputs != null ) return super.getInputs (); inputs = new TreeSet<Node> (); for ( ExperimentNode in: base.getInputs () ) inputs.add ( nodeFactory.getNode ( in ) ); return super.getInputs (); } } public class NodeFactory extends org.isatools.tablib.export.graph2tab.simple_biomodel_tests.node_wrappers.NodeFactory { private NodeFactory () {} private static final NodeFactory instance = new NodeFactory (); public static NodeFactory getInstance () { return instance; } protected ExpNodeWrapper createNewNode ( ExperimentNode base ) { if ( base instanceof BioSource ) return new BioSourceWrapper ( (BioSource) base, this ); if ( base instanceof BioSample ) return new BioSampleWrapper ( (BioSample) base, this ); if ( base instanceof BioExtract ) return new BioExtractWrapper ( (BioExtract) base, this ); if ( base instanceof BioLabeledExtract ) ... } }
  • 30. 30 Real Use Cases so Far Was born while I was working on the BII project, it's now part of the ISA tools (exports studies from BII database to ISA-Tab format, works out the sample and assay file) ArrayExpress2 to MAGETAB exporter Being integrated in the production environment, will allow to re-generate SDRF files from (possibly re-annotated) database records (ie, uses the AE2 object model) MAGE-ML to MAGETAB converter Thanks to Natalja Kurbatova Re-Exporter in the Limpopo Library Thanks to Natalja, Tony Burdett Adam Faulconbridge, working with graph2tab for the SampleDB project (???) Was born while I was working on the BII project, it's now part of the ISA tools (exports studies from BII database to ISA-Tab format, works out the sample and assay file) ArrayExpress2 to MAGETAB exporter Being integrated in the production environment, will allow to re-generate SDRF files from (possibly re-annotated) database records (ie, uses the AE2 object model) MAGE-ML to MAGETAB converter Thanks to Natalja Kurbatova Re-Exporter in the Limpopo Library Thanks to Natalja, Tony Burdett Adam Faulconbridge, working with graph2tab for the SampleDB project (???)
  • 31. 31 Possibly in Future Maybe a better extension mechanism Java Annotations or XML mapping files Translation to other languages If someone is interested... More biomedical use cases Eg, several efforts in progress to represent experimental meta- data in RDF/OWL (such as OBI) One may need to convert such models back to tabular formats Or to visualise them as tables Non biomedical applications? Maybe, workflows occur in many fields Not so sure about tabular formats Maybe a better extension mechanism Java Annotations or XML mapping files Translation to other languages If someone is interested... More biomedical use cases Eg, several efforts in progress to represent experimental meta- data in RDF/OWL (such as OBI) One may need to convert such models back to tabular formats Or to visualise them as tables Non biomedical applications? Maybe, workflows occur in many fields Not so sure about tabular formats
  • 32. 32 Acknowledgements Philippe Rocca-Serra, Susanna Sansone (Team leaders for BII), Eamonn Maguire For their support and their patience while I had struggled to come up to an acceptable solution Ugis Sarkans (team leader for AE) and AE team Support and help for the AE exporter Tony Burdett Support for the Limpopo use case Natalja Kurbatova Worked out the MAGE-ML converter and on the Limpopo too Adam Falcounbridge Help in spotting and fixing a few bugs Alvis Brazma, Natalja Discussions on the ambiguities with the layering Funders (CarcinoGENOMICS and EMBL) Philippe Rocca-Serra, Susanna Sansone (Team leaders for BII), Eamonn Maguire For their support and their patience while I had struggled to come up to an acceptable solution Ugis Sarkans (team leader for AE) and AE team Support and help for the AE exporter Tony Burdett Support for the Limpopo use case Natalja Kurbatova Worked out the MAGE-ML converter and on the Limpopo too Adam Falcounbridge Help in spotting and fixing a few bugs Alvis Brazma, Natalja Discussions on the ambiguities with the layering Funders (CarcinoGENOMICS and EMBL) And you all!And you all!And you all!And you all!