130 likes | 206 Views
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
E N D
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 Gensat Allen Brain Atlas CCDB, others Spatial registry MBAT Drexel’s NT UCLA’s Shiva Smart Atlas
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 NT Shiva MBAT WOMBAT Init() Servlet Or Web Service Smart Atlas Open SmartAtlas using returned URL New service id & URL Submit() Retrieve() Confirmation Result wrapped in XML Retrieve() Submit() Result wrapped in XML Confirmation Service ended automatically when application is closed End_service() Confirmation
The current implementation
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_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> 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_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> + 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?wsdl (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