Atlas Interoperability Session Ilya Zaslavsky, Willy Wong + Bill Bug + Heng Yuan
Why atlas integration• Multiple atlases exist, to present different kinds of
data, and offer different analysis and visualization functions
• Atlas authors are best to decide what presentation and functionality are most appropriate for their data
• Atlas authors tend to like their atlases more than other atlases – which creates a set of contradictory requirements…
• Needs:– Ability to search, query, retrieve different images, volumes,
and segmentations, from any atlas of choice– Ability to easily switch between atlases
Interoperability desiderata
Read data from other atlases/databases
API for data retrieval and transformation
Find relevant data in other atlases/ databases
API for atlas catalogs
View the region of interest in another atlas
API for atlas state exchange
MBAT Drexel’s NTUCLA’s ShivaSmart Atlas
GensatAllen Brain AtlasCCDB, others
Spatial registry
Mechanisms of integration• Directly:
– By space, using Stereotaxic coordinates• Formal coordinate system definitions• Coordinate system translation services (incl. between image and
stareotaxic)• Spatial registration of images and segmentations
– By anatomic feature names, via UMLS + Bonfire + Neuronames + BIRNLex…
• Ontological registration• Semantic translation services
• Indirectly– By verbal description of spatial locations relative to well-
defined features (rules)– In relative coordinates; by matching derived indices:
histograms, shape indexes, etc.
Mechanisms of integration: 2
Integration across atlas clients• Specification of state of atlas client• API for initializing exchange service and submitting and
retrieving states
ServletOr
Web Service
NTShivaMBAT
WOMBAT
SmartAtlas
Init()
New service id & URLOpen SmartAtlas using
returned URL
Submit()
Confirmation
Retrieve()
Result wrapped in XML
End_service()
Confirmation
Retrieve()
Result wrapped in XML
Submit()
Confirmation
Service ended automatically when application is closed
text
text
Atlas 1SmartAtlas
Atlas 2MBAT
PortalAuthentication
API
Interoperability API: Initialization
Spatial Exchange
Ontology-Based Information Exchange
Coordinate Transformation
User/PWD + Optio
ns
Session ID
Interoperability API:Information Exhange
Session ID
User/PWD +Options
Session ID +
Informatio
n
Mouse BIRN Interoperability API
Session ID +
Information
The currentimplementation
The message exchange WS
• http://132.239.132.181:8080/axis/InterAtlasServer.jws?wsdl– InitState– Submit_Ontology_Terms– Submit_stereotaxic_2D_pointlist– Submit_stereotaxic_3D_pointlist– Retrieve_Ontology_Terms– Retrieve_Stereotaxic_2D_Pointlist– Retrieve_Stereotaxic_3D_Pointlist– Clear_Ontology_Terms– Clear_Stereotaxic_All_Pointlist– Logout
Agreed-upon ROI description and state exchange protocol
STATE_INIT::
<atlas_state> <request name= "initialize_session"> <user>user</user> <pwd>pwd</pwd>
</request></atlas_state>
<atlas_state>
<response name= "initialize_session"> <sessionID>10009 </sessionID>
</response></atlas_state>
STATE_SUBMIT
<atlas_state> <request name="submit"> <sessionID>10009</sessionID> <submitting_atlas>smart</submitting_atlas>
<action name="highlight|..."> <locations> <location coordsys="Stereotaxic"> <format type="pointlist3D"> <ROI> <bbox>m1,n1,p1 m2,n2,p2</bbox> <data>x1,y1,z1 x2,y2,z2 ...</data> </ROI> <ROI> <bbox>m1,n1,p1 m2,n2,p2</bbox> <data>x1,y1,z1 x2,y2,z2 ...</data> </ROI> </format> </location> </locations> </action> </request></atlas_state>
<atlas_state> <response name="submit"> <status>success</status> </response></atlas_state>
STATE_RETRIEVE
<atlas_state> <request name="retrieve"> <sessionID>10009</sessionID> <targetatlas>shiva</targetatlas> <targetterm ontology="UMLS|..."/> <targetlocation coordsys="Stereotaxic" format="pointlist3D"/> </request></atlas_state>
<atlas_state > <response name="retrieve"> <submitting_atlas>smart</submitting_atlas> <action name="highlight"> <locations> <location coordsys="Stereotaxic"> <format type="pointlist3D"> <ROI> <bbox>m1,n1,p1 m2,n2,p2</bbox> <data>x1,y1,z1 x2,y2,z2 ...</data> </ROI> </ROI> <ROI> <bbox>m1,n1,p1 m2,n2,p2</bbox> <data>x1,y1,z1 x2,y2,z2 ...</data> </ROI> </format> </location> </locations> </action> </response></atlas_state>
+ Java API
State Exchange between NT & SA
• We have a set of JAVA APIs for the external programmers to specify a Paxinos Plate (via Stereotaxic coordinates).• We are still in the process of integrating NT/SA with the existing Interoperability Webservice APIs (2D exchange, tuning NT knife to available Paxinos for NT ->SA; the SA ->NT direction is straightforward)
State Exchange between SA-MBAT
Atlas alignment problems… Transformation matrix wrapped in Coordinate Transformation Service
Exchanging atlas state in a format-independent manner
• Several formats for state: – pointlist3D, plane_pointlist2D, canonical_sagittal;
plane_filling_pixels, plane_quadrtree, plane_bounding_pixels; filling_voxels, octtree, surface_bounding_voxels
– Ontology-based + verbal state descriptions (?)
• Coordinate transformation services– http://132.239.132.181:8080/axis/MouseCoordinate.jws?w
sdl(Shiva to SmartAtals)
Universal description of location??
• Should work across scales and coordinate systems, (eventually across species, development stages?)
• Location description:– By geometries (in common coordinates: there are
three of them at least) – By feature names (in shared ontology) – Neuronames
most likely– By relationships (in common mereotopology terms):
need engines for “packing” and “unpacking” collections of mereotopological rules describing relative location of ROI w.r.t. common features
– NEED TRANSLATIONS BETWEEN THE THREE
Atlas Interop API: thoughts
• MGI (they don’t do atlasing) and other collaborators• Semantic web community interested in integration with spatial semantics• UCSC site with more image data (VISIGENE)• 6-month application timeframe
– MRI +Protein localization +microarray, within a project; 2 other projects– Parkinsonian dataset as a use case - linkages to human
• Connectivity - USC, Hong Wei, COCOMAC• Visualization integration – 2D into 3D• Building (not) a Prius rather than two cars• Making canonical anatomical presentations accessible• 2D exchange definitely a short-term focus, but keep wider spectrum in mind• Formal specifications of coordinate systems and describing existing
datasets in these terms• Develop more transformation routines, for the defined coord systems• Pull more Gensat data into the atlasing environment? (start with data that
we already have)• Use cases for when you switch from one integration mdoe (bring data into
your current interface) to inter-atlas API