RAD to MAGE via ObjectMap - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

RAD to MAGE via ObjectMap

Description:

Part of the Genomics Unified Database (GUS) relational database system ... GUS Supports Multiple Projects. AllGenes. PlasmoDB. EPConDB. Core. SRES. TESS. RAD ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 18
Provided by: AngelP8
Category:
Tags: mage | objectmap | rad | gus | via

less

Transcript and Presenter's Notes

Title: RAD to MAGE via ObjectMap


1
RAD to MAGEvia ObjectMap
Angel Pizarro
  • Platform independent rules for object
    transformation.
  • Well, more like semi-dependent, but whos gonna
    read the code?

2
Background
  • RNA Abundance Database (RAD)
  • Part of the Genomics Unified Database (GUS)
    relational database system
  • http//www.gusdb.org, http//www.cbil.upenn.edu
  • MAGE-ML 1.0 is the accepted standard for gene
    expression data exchange.
  • ArrayExpress, a public repository for gene
    expression data, will only accept MAGE-ML

3
GUS Supports Multiple Projects
AllGenes
PlasmoDB
EPConDB
Java Servlets
Other sites, Other projects, e.g. GeneDB

Oracle RDBMS
Object Layer for Data Loading
Available at http//www.gusdb.org
4
Simple mappings
  • One row One object
  • CompositeElement ? CompositeSequence
  • One Row Multiple Objects
  • Element ? Feature (location)
  • Element ? FeatureInformation (?mismatch?)
  • Element ? FeatureReporterMap (link ?)
  • Element ? Reporter (sequence info)

5
Complex mappings
  • Array, Assay ? Array, ArrayGroup,
    ArrayManufacture, ArrayDesign, PhysicalArrayDesign
    , Zone, ZoneGroup, ZoneLayout
  • Map of subclasses is not uniform.
  • Contact ? Person, Organization
  • BioAssay ? PhysicalBioAssay, MeasuredBioAssay,
    DerivedBioAssay

6
Our Approach Design decisions
  • RAD Perl object-relational layer to MAGEstk Perl
    Object layer
  • Try for platform independence for portability
  • Looking forward to a RAD java object layer
  • Use special purpose code to reduce time to
    market

7
ObjectMap Framework
  • ObjectMap collection of RuleSets
  • RuleSet collection of Rules
  • Rule transform a set of inputs to new set of
    objects
  • DataSource the inputs
  • ClassRule the outputs
  • SlotRule the attributes or associations of a
    class
  • Function interface definition for contained
    functions
  • Val generic (name, type, value) tuple used to
    set values or differing types

8
The Platform Dependent Engine
Script
RAD object
MAGE object(s)
RuleSet
Functions.pm
ObjectMapEngine
  • The rule structure is platform independent (XML)
  • The engine that uses the rule definitions is not.
    Currently in Perl, but looking at Java for GUI
    development.

9
Export Example
10
ZoneGroup Rule
  • ltDataSource name'array' /gt
  • ltClassRule name'ZoneGroup'
  • className'BioMAGEArrayDesignZo
    neGroup'gt
  • ltSlotRule name'zonesPerX' type'attr'
    method'setZonesPerX'gt
  • ltVal type'data' value'array.getNumGridRo
    ws/gt
  • lt/SlotRulegt
  • ltSlotRule name'zonesPerY' type'attr'
    method'setZonesPerY'gt
  • ltVal type'data value'array.getNumGridCo
    lumns /gt
  • lt/SlotRulegt
  • ltSlotRule name'zoneLayout' type'assoc
  • method'setZoneLayout'gt
  • ltVal type'rule' value'Export.Array.ZoneL
    ayout' gt
  • ltVal name'array' type'data
    value'array /gt
  • lt/Valgt
  • lt/SlotRulegt
  • lt/ClassRulegt

11
Export Example
12
Alternative approaches
  • Thought about a code_block Function
  • Imbed code directly into the XML
  • Makes a mapping platform dependent
  • Do it in the application
  • Easier data manipulation
  • Recursive rule calls can be avoided when too
    complex.

13
What actually happened
  • Now do the ZoneGroups and Zones
  • my arrows A-gtgetNumArrayRows()
  • my arcols A-gtgetNumArrayColumns()
  • my gridrows A-gtgetNumGridRows()
  • my gridcols A-gtgetNumGridColumns()
  • for (my ac 1 ac lt arcols ac)
  • for (my ar 1 ar lt arcols ar)
  • create a ZoneGroup ZoneLayout
  • my zg ENGINE-gtmakeObject('Export.Array.Z
    oneGroup', 'array' gt A)
  • for (my gr 1 gr lt gridrows gr)
  • for (my gc 1 gc lt gridcols
    gc)
  • create the Zones
  • my z ENGINE-gtmakeObject('Export.Arra
    y.Zone', 'array' gt A)
  • my zone_key "ac.ar.gc.gr"
  • z-gtsetIdentifier(z-gtgetIdentifier() .
    "" . zone_key)
  • z-gtsetName(z-gtgetName() . "" .
    zone_key)
  • z-gtsetRow(gr)
  • z-gtsetColumn(gc)
  • zg-gtaddZoneLocations(z)

14
Import Example
?
15
Import Example
16
Future Direction
  • Refine the rule structure
  • Create a Rule Dictionary
  • List inputs needed, outputs produced, and the
    purpose of the rule
  • Make a Java version
  • Allow GUI for the dictionary
  • Drag and drop of one object to create another,
    ala Clio project
  • http//www.almaden.ibm.com/software/km/clio/index.
    shtml
  • IBM Research Clio at google.com.

17
Thanks
http//www.cbil.upenn.edu
  • Chris Stoeckert
  • Elisabetta Manduchi
  • Greg Grant
  • Hongxian He
  • Junmin Lui
  • Trish Whetzel
  • Matt Mailman
  • Steve Fischer
  • Jonathan Schug
  • Jonathan Crabtree

http//www.cbil.upenn.edu/angel/code
Write a Comment
User Comments (0)
About PowerShow.com