Difference between revisions of "Informatics"

From phenoscape
(Source code)
(Synchronization Tool)
 
(19 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
This page provides a broad overview of our informatics activities.  Phenoscape supports open development processes and collaboration.  All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible.  Development plans can be found at our [[software roadmap]].
 
This page provides a broad overview of our informatics activities.  Phenoscape supports open development processes and collaboration.  All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible.  Development plans can be found at our [[software roadmap]].
  
One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by ichthyologists. These annotations can be queried from a user interface and used to answer [[Driving Research Questions]] and for advanced [[Phenoscape use cases]]. The following tools which are under various stages of development, will serve to realize this objective.
+
One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by curators. These annotations can be queried from a user interface and used to answer [[Driving Research Questions]] and for advanced [[Phenoscape use cases]]. The following tools which are under various stages of development, will serve to realize this objective.
  
 
==Phenoscape software components==
 
==Phenoscape software components==
Line 9: Line 9:
  
 
===Phenoscape data repository===
 
===Phenoscape data repository===
We are adopting [http://www.bioontology.org/wiki/index.php/OBD:Main_Page OBD] as the ontology-driven datastore for our phenotype annotations.  We are collaborating with the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the [[Phenoscape data repository]]. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from [http://zfin.org ZFIN] and [http://phenoscape.svn.sourceforge.net Phenoscape], post composed and stored in the database. An outline of these two stages is described in the [[Phenoscape data loader]] section. Then, the [[OBD Reasoner]] is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.
+
We are adopting [http://berkeleybop.org/obd/ OBD] as the ontology-driven datastore for our phenotype annotations.  We are collaborating with the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the [[Phenoscape data repository]]. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from [http://zfin.org ZFIN] and [http://phenoscape.svn.sourceforge.net Phenoscape], post composed and stored in the database. An outline of these two stages is described in the [[Phenoscape data loader]] section. Then, the [[OBD Reasoner]] is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.
  
 
===Data services built on OBD===
 
===Data services built on OBD===
We are also developing a suite of web services on top of OBD to serve as a [http://apidocs.phenoscape.org data access API] and foundation for our user-oriented Phenoscape web application.  These web services make use of mostly standard SQL [[Queries]] and present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using [http://www.restlet.org/ Restlet]. The specifications of these services are detailed in [[Data Services]].
+
We are also developing a suite of web services on top of OBD to serve as a data access API and foundation for our user-oriented Phenoscape web application.  These web services make use of mostly standard SQL queries and present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using [http://www.restlet.org/ Restlet]. The specifications of these services are detailed in [[Data Services]].
  
 
===Phenoscape web UI===
 
===Phenoscape web UI===
Line 18: Line 18:
  
 
===Synchronization Tool===
 
===Synchronization Tool===
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aids in keeping the Teleost Anatomy Ontology and the Zebrafish Anatomy Ontology consistent with each other.
+
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aided in keeping the Teleost Anatomy Ontology (no longer in development) and the Zebrafish Anatomy Ontology consistent with each other.
  
 
== Source code ==
 
== Source code ==
 
+
Phenoscape-created source code is primarily hosted at Github within the [http://github.com/phenoscape Phenoscape organization]. Some legacy projects and data are still hosted in [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape our Sourceforge repository].
The software source code is in part being contributed back directly to a variety of existing projects we build upon, and deposited in the [http://obo.svn.sourceforge.net/viewvc/obo/ OBO] and [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape Phenoscape] Subversion repositories on SourceForge.
+
Some code is being contributed back directly to a variety of existing projects we build upon, such as the [http://obo.svn.sourceforge.net/viewvc/obo/ OBO Subversion repository] on SourceForge.
 
* Phenex:
 
* Phenex:
** [http://obo.svn.sourceforge.net/viewvc/obo/phenex/trunk/ Browse source]
+
** [http://github.com/phenoscape/Phenex Github home]
** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/phenex/trunk</code>
 
 
* Database and database loading:
 
* Database and database loading:
** [https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk/scripts Browse source]
+
** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk/scripts Browse source]
** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk/scripts</code>
+
** Code check out: <code>svn co http://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code>
** Some unit tests are in the process of being migrated from the old location:
 
*** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/PhenoscapeDataLoader/test</code>
 
*** [https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/PhenoscapeDataLoader/test/org/phenoscape/db/test Browse source]
 
 
* Data services and middleware:
 
* Data services and middleware:
 
** Data model and database access API (OBD-API):
 
** Data model and database access API (OBD-API):
*** [https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk Browse source]
+
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBDAPI/trunk Browse source]
*** Code check out: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code>
+
*** Code check out: <code>svn co http://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk</code>
 
** Web-services (OBD-WS):
 
** Web-services (OBD-WS):
*** [http://obo.svn.sourceforge.net/viewvc/obo/OBD-WS/trunk/ Browse source]
+
*** [http://github.com/phenoscape/PhenoscapeOBD-WS Github home]
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/obo/OBD-WS/trunk</code>
 
 
* Web-based user interface ([http://kb.phenoscape.org Knowledge Base]):
 
* Web-based user interface ([http://kb.phenoscape.org Knowledge Base]):
** [http://phenoscape.svn.sourceforge.net/viewvc/phenoscape/trunk/src/PhenoscapeWeb/ Browse source]
+
** [http://github.com/phenoscape/PhenoscapeWeb Github home]
** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/PhenoscapeWeb</code>
 
 
* Ontology conversion and management:
 
* Ontology conversion and management:
 
** TTOUpdate
 
** TTOUpdate
 
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/tools/TTOUpdate Browse source]
 
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/tools/TTOUpdate Browse source]
*** Code checkout: <code>svn co https://obo.svn.sourceforge.net/svnroot/phenoscape/trunk/tools/TTOUpdate</code>
+
*** Code checkout: <code>svn co http://obo.svn.sourceforge.net/svnroot/phenoscape/trunk/tools/TTOUpdate</code>
 
** Synchronization Tool
 
** Synchronization Tool
*** [http://obo.svn.sourceforge.net/viewvc/phenoscape/trunk/src/SynchronizationTool/ Browse source]
+
*** [http://github.com/phenoscape/synctool-oboedit Github home]
*** Code checkout: <code>svn co https://phenoscape.svn.sourceforge.net/svnroot/phenoscape/trunk/src/SynchronizationTool</code>
 
 
* Other scripts and small tools:
 
* Other scripts and small tools:
  
 
==Affiliated projects==
 
==Affiliated projects==
 
===OBO-Edit===
 
We are using the [http://oboedit.org/ OBO-Edit] ontology editor to develop and maintain our [[ontologies]] such as the Teleost Anatomy Ontology and the Teleost Taxonomy Ontology.
 
  
 
===NeXML===
 
===NeXML===
Phenex saves character matrix data using the new evolutionary data standard [http://www.nexml.org/ NeXML].  NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.
+
Phenex saves character matrix data using the evolutionary data standard [http://www.nexml.org/ NeXML].  NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.
  
 
[[Category:Informatics]]
 
[[Category:Informatics]]

Latest revision as of 22:14, 10 November 2012

This page provides a broad overview of our informatics activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as Sourceforge, and we work with existing open-source projects whenever possible. Development plans can be found at our software roadmap.

One of the chief objectives of the Phenoscape project is to present a centralized repository to store annotations entered by curators. These annotations can be queried from a user interface and used to answer Driving Research Questions and for advanced Phenoscape use cases. The following tools which are under various stages of development, will serve to realize this objective.

Phenoscape software components

Phenex curation tool

Phenex is a platform-independent desktop application for annotating character-by-taxon matrices with ontology terms. Phenex allows a user to describe phenotypic variation among taxa (or specimens) using Entity-Quality syntax and write the data to a NeXML file. Phenex is written in Java, based on code from the OBO-Edit and Phenote project, and is being released under an open-source license. It can be configured to load user-selected ontologies, and in this way can be adapted to data curation in different taxonomic groups.

Phenoscape data repository

We are adopting OBD as the ontology-driven datastore for our phenotype annotations. We are collaborating with the Berkeley Bioinformatics Open-source Projects group in driving future development of OBD. The ontological definitions of all the terms used in the annotation stage (on Phenex) and the annotations themselves are stored in the Phenoscape data repository. In sequential order, the term definitions in all the ontologies are first downloaded and stored in the database. Next, the annotations of phenotypes are downloaded from ZFIN and Phenoscape, post composed and stored in the database. An outline of these two stages is described in the Phenoscape data loader section. Then, the OBD Reasoner is used to extract inferences from the annotations and definitions in the OBD Phenoscape database. These inferences are added to the database as well.

Data services built on OBD

We are also developing a suite of web services on top of OBD to serve as a data access API and foundation for our user-oriented Phenoscape web application. These web services make use of mostly standard SQL queries and present a RESTful service interface using Restlet. The specifications of these services are detailed in Data Services.

Phenoscape web UI

The Phenoscape web application will allow scientists to browse and query the phenotype annotations as well as the supporting ontologies. Initially, the query capabilities will concentrate on implementing a select set of "use-cases", research questions that show the utility of the approach. Ultimately, we will build interfaces that allow researchers to ask open-ended questions of the data. The web application is being developed using Ruby on Rails and accesses phenotype data and ontology information via our OBD web services.

Synchronization Tool

The Synchronization Tool is a plug-in for OBO-Edit which aided in keeping the Teleost Anatomy Ontology (no longer in development) and the Zebrafish Anatomy Ontology consistent with each other.

Source code

Phenoscape-created source code is primarily hosted at Github within the Phenoscape organization. Some legacy projects and data are still hosted in our Sourceforge repository. Some code is being contributed back directly to a variety of existing projects we build upon, such as the OBO Subversion repository on SourceForge.

Affiliated projects

NeXML

Phenex saves character matrix data using the evolutionary data standard NeXML. NeXML is an XML Schema and has robust facilities for embedding additional data, such as our phenotype annotations, within a traditional character-by-taxon matrix.