Current Data Types to be Displayed in MBAT
-
Image2DSeries
An ordered list of references to one or more 2-D image files. The following image file formats are supported: [INSERT LIST]
-
Image3D (Image3DSeries?)
An image volume such as Analyze or NIFTI.
-
Numeric 3D/2D
A 3D volume or 2D plane of numeric data (ie: ABA expression intensities).
-
ExpressionLevel
A microarray expression level for a particular anatomical structure or region. The structure or region may be expressed by name (i.e. "cerebellum") or the geometric coordinates in an atlas.
The expression value may be numerical or it may be an English word indicating a relative expression level (i.e. GENSAT "low", "mid", "high").
-
MicroarrayProbe
Talk with Rob Williams about GN results. See if we can converge results types from other individual researchers and GN database.
ExpressionLevelGroup (might not need this)
Not yet sure what to call this or whether a separate type is even needed. But this type would provide some way to represent multiple microarray levels across the whole brain. This is analagous to the current probe result, but not limited to microarray probes. Once a more complete list of potential sources is identified, this should become clear.
Current Data Sources
| Source Name | Data Type | Type Format |
| Gene Network | Expression Level | numeric values based on anatomical structure |
| BIRN Microarray Server | Expression Level | numeric values based on anatomical structure |
| CCDB | Image2D Series | microscopic cell images based on anatomical structure |
| Image3D | reconstructed image volumes from 2D images series |
| ABA | Image 2D Series | In situ images representing gene expression |
| Expression Level | English terms for relative expression level based on structure |
| Numeric 3D | Gene expression intensities |
| GENSAT Rockefeller | Image2D Series | ? |
Planned Data Sources
| Source Name | Data Type | Type Format |
| Voxelation Data from Desmond Smith Lab | Expression Level | numeric values based on atlas location |
| BIRN CC Mediator | Expression Level | misc microarray data sets containing numeric values based on anatomical structure |
| AIDB | Image3D | 3D MRI volumes |
Annotation Display
- Annotations/metadata displayed in results table after a query
- Options:
- "Standard" 5 columns per datatype (need consensus from PIs)
- Customizable columns (end-user interactively chooses columns to display )
- Note: Microarray probe annotations are trickiest since they have nested annotations (ie: each probe has structure tags and each structure tag has annotations)
Required Data Source Information per Plugin
- Display name (ie: Allen Brain Atlas)
- Data types supported (ie: 2D image, microarray, etc)
- connString (ie: URL)
- parameters
- user credentials (preferences file)
- Mapping of data source column names to MBAT column names
- Mapping of MBAT query parameter terms to data source parameters terms
- Internally, query plugin maps user parameter value to data source value
- gene and structure may get very complicated to lookup using BonFire? services
mbDataSourceBase
Base class for all datasource plugins:
public interface mbDataSourceBase
{
boolean hasQueryTermSearch();
boolean hasKeywordSearch();
boolean hasSemanticSearch();
/**
* Returns a vector of mbQueryResults. Vector can be of mixed datatypes
* (ie: IMAGE2D, GENEEXPRESSION, etc)
*/
Vector< mbQueryResult> searchByQueryTerms( Vector< SearchParam > vQueryTerms );
Vector< mbQueryResult> searchByKeyword( String sKeywords );
Vector< mbQueryResult> searchBySemantic( String sRDF );
void QueryTermToSourceTerm( Vector< SearchParam > vTerms);
// NOTE: since !BonFire services aren't stable and not sure if they can
// support our needs, this will have to be re-evaluated
}
Sample datasource plugin:
public class ABASource implements DataSource
{
Vector< mbQueryResult> searchByQueryTerms( Vector< SearchParam > vQueryTerms );
boolean hasQueryTermSearch() { return true; }
boolean hasKeywordSearch() { return false; }
boolean hasSemanticSearch() { return false; }
}
MBAT3.0 Core Object Classes
The core objects can be accessed by any workspace in mbat3.0. Class hierarchy of core objects:
mbObject (base object for all accessible objects in mbat3.0)
^
|
mbAnnotatedObject (represents an object with annotations in mbat3.0)
^
|
Probe Image2DSeries Image3D NumericData ExpressionLevel
mbQueryResult
The mbQueryResult class represents a single result from a query
and can contain multiple annotated objects of different datatypes:
public class mbQueryResult {
public enum DATATYPE {
UNKNOWN,
IMAGE2D,
IMAGE3D,
PROBE,
GENE,
GENE_ALIAS,
GENE_EXPRESSION,
STRUCTURE,
DATATYPE_COUNT
}
// datasource
private mbDataSourceBase m_mbDataSource;
// annotated objects for this result, indexed by datatype
private HashMap< DATATYPE, mbAnnotatedObject > m_hashmapResultSet;
}
Class hierarchy of query results:
mbQueryResult
^
|
ABAResult CCDBResult BMDBResult
Changes to Query.java
Query.java needs to create 2 hashmaps:
-
HashMap< mbDataSourceBase, Vector< mbQueryResult > > m_hashmapResultsByDataSource
-
HashMap< mbQueryResult.DATATYPE, Vector< mbQueryResult > > m_hashmapResultByDataType
The first hashmap are the results indexed by data source. The second hashmap are the results by data type.
Implementation details:
- Separate GUI elements and objects if possible, for example:
- SearchParam : object to hold search parameter
- JSearchParam extends SearchParam : GUI object for SearchParam
- Eliminate Adapter type of classes (ie: AnnotContainerAbstract)
GUI Interfaces
- DataSource centric:
----------------------------------------------
| DataSource: CCDB |
----------------------------------------------
------------------------------------------
| Image2D |
------------------------------------------
------------------------------------------
| Probe |
------------------------------------------
- DataType centric:
----------------------------------------------
| DataType: Image2D |
----------------------------------------------
------------------------------------------
| CCDB |
------------------------------------------
------------------------------------------
| ABA |
------------------------------------------
----------------------------------------------
| DataType: Probe |
----------------------------------------------
------------------------------------------
| BMDB |
------------------------------------------
------------------------------------------
| GENSAT |
------------------------------------------
- Hierarchy/Ontology centric:
------------- ------------------------------
| TreeView | | Node Details |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
------------- ------------------------------