Cancer.gov
National Cancer Institute   NCI Center for Bioinformatics    
 
home organization initiatives core support download_center

  NCICB  >  Infrastructure  >  caBIO :

News

  • NCICB User Applications Manual

  • caCORE 2.1.1 released

  • caBIOperl released

  • caBIG Events

  • 2003 Jamboree Presentations

  • NCICB Seminars

  • Publications

    Quick Links

  • NCICB Support

  • cancer Biomedical Informatics Grid (caBIG)

  • Cancer Genome Anatomy Project

  • Cancer Molecular Analysis Project

  • Cancer Models Database

  • Cancer Array Informatics (caArray)

  • BIOgopher

  • caBIO Quick Start

  • caCORE FTP site

  • NCI Home



  • The cancer Bioinformatics Infrastructure Objects (caBIO) model and architecture is the primary programmatic interface to caCORE. The heart of caBIO is its domain objects, each of which represents an entity found in biomedical research. These domain objects are related to each other, and examining these relationships can bring to the surface biomedical knowledge that was previously buried in the various primary data sources.

    caBIO 2.1 New Features
    Quick Start to using caBIO
    Development Tools and Methodology
    Architecture / Design
    Data Sources
    Application Programming Interfaces
    Download
    Applications
    Support
    Documentation
    Prototypes and New Technologies


    Development Tools and Methodology
    [top]

    The caBIO software development process is an iterative software development approach that leverages a combination of elements from the Rational Unified Process (RUP) and eXtreme Programming (XP). Use case models are created by utilizing the domain expertise available at the Center for Bioinformatics to evaluate existing projects and investigate industry standards.

    Once the use case analysis is completed, an iterative functional design and development process is applied, which allows for rapid and segmented development of the application. During an iteration, all of the software development activities are executed. The artifacts associated with each functional iteration include: detailed use cases describing the function; class and sequence diagrams; a system architecture diagram; the actual software code; a published API; a project plan describing subsequent iterations; and a test plan for software validation.

    UML modeling and use case development is performed using a UML modeling tool (Rational Rose). An automatic code generation process is used to generate Java source code from the UML. The caBIO UML model is exported from the Rational Rose mdl file to an XML Metadata Interchange (xmi) file. For this release an in-house code generation package was developed utilizing the NetBeans MDR to read the XMI generated from Rose and reconstruct the UML model for follow-on template processing. We used the FreeMarker template language to generate the source code. Modifications to the object model are always made at the UML level, and not directly to the source code. A printer-friendly version is available as a PDF file.

    Architecture / Design
    [top]

    caBIO conforms to an n-tier architectural design that includes several layers. A presentation layer includes a web application server that transforms caBIO objects into serialized XML and provides programmatic access to caBIO from applications and the Internet. Java applications can also communicate with back-end objects via the domain objects provided by the caBIO.jar file. Non-Java-based applications can communicate with back-end objects via the SOAP web services. Server components communicate with back-end objects via Java RMI.

    All network and persistence details are abstracted away from the developer. The caBIO objects include the behavior (operations) and relationships of the actual biomedical objects. Hence, a gene can get its ESTs, SNPs, or clones.

    The caBIO Data Access Objects allow for platform-independent persistence of the caBIO objects. The objects provide object relational mapping that is optimized for the data warehouse queries presented by the domain objects. The implementation of the data access layer allows the domain objects to act independently of the actual storage of the data. This allows the data layer to migrate as necessary -- to increase performance or to access new data stores -- without impact to the programs that use the domain objects.

    The entire system is implemented using UML, Java 2 Enterprise Edition, a relational data warehouse, and federated data sources.

    Application Programming Interfaces
    [top]

    Java API. caBIO offers direct access to the domain objects through the Java API. Developers can download the caBIO.jar file and directly use its packages in their programs. Each domain object class in the gov.nci.nih.caBIO.bean package has a companion SearchCriteria class that provides methods for the retrieval of attributes and of related domain objects.

    SOAP Web Services. The SOAP Web Services standard is an XML-based protocol that enables remote procedure calling and data exchange between applications written in any programming language that has a SOAP client module. Using the SOAP client packages, developers can format caBIO requests as an XML document that is posted to the caBIO SOAP server. The server receives the request and forwards the request to the appropriate object in the gov.nih.nci.caBIO.webservices package. The caBIO server processes the requests and returns the results of the query as an XML document embedded in the SOAP envelope.

    HTTP-XML Interface. Using the HTTP-XML interface, a user can submit a query to caBIO as a URL from a browser and retrieve the results of the query in XML. The HTTP interface leverages the GetXML service, which allows researchers to perform an operation and pass in the associated search criteria as parameters embedded in the URL. An XML document that contains the results of the query is returned. For example, a researcher can obtain an XML document containing information on the PTEN gene via the URL http://cabio.nci.nih.gov/servlet/GetXML?query=Gene&crit;_name=BRCA1 (where 'query' indicates which domain object is requested, 'crit_name' is the search criterion, and 'BRCA1' is the search criterion parameter value.) One or more search criterion-value pairs can be included.

    Perl API. caBIOperl is a Perl application programming interface to a caBIO server. It implements the caBIO object model with object-oriented methodology, and encapsulates SOAP::Lite and XML parsing so that programmers deal with caBIO objects directly. caBIOperl works with Windows, Solaris and other Perl supported operating systems.

    Download

    [top]

    NCICB provides access to the caBIO interfaces on its public servers. The underlying software code, object model, use cases, and user documentation are available for use under an open-source license.

    • Primary caBIO distribution - contains the caBIO.jar file, code examples written in Java and Perl, a PDF of the UML model, and the caCORE Technical Guide.
    • caBIO Source Code/Server distribution - contains the full source code of caBIO, SVG pathway diagrams, web services description language (WSDL) files (which describe the SOAP service listings), and instructions for installing the caBIO server.
    • caBIO Database Distribution - contains the caBIO schema, data, and instructions for installing the caBIO database.
    • BIOgopher distribution - contains BIOgopher source code, binaries, and instructions for installing a local version of BIOgopher.
    • MAGE-OM API distribution - contains the source code of the NCICB-developed Java API that is based upon OMG's Gene Expression v1.0 (2003-02-03).

    Applications
    [top]

    BIOgopher

    BIOgopher is an ad hoc querying and reporting tool that enables researchers to annotate spreadsheets with caBIO data. In particular, BIOgopher presents a web-based, graphical user interface that lets you build complex queries that incorporate data from any number of Excel spreadsheets. The results of these queries are then delivered as an Excel spreadsheet in which the original spreadsheet data and the caBIO data are merged.
    For best results, use Internet Explorer 5+.

    Bio Browser

    Bio Browser is an excellent example of a desktop application built entirely on the caBIO HTTP interface. This Java Swing-based desktop application allows searching and browsing of the various objects served by the caBIO GetXML service. It produces a tree image of the underlying XML document, and also clickable pathway diagrams from the caBIO SVG data. Bio Browser is developed by Dr. Jonny Wray, a caBIO user who is developing a Bioinformatics course at UC Berkeley Extension. Dr. Wray can be contacted at java@jonnywray.com for further discussions on his application.

    Support
    [top]

    Mailing Lists. NCICB maintains the following mailing lists as discussion forums with caBIO users and developers:

    Software Support. NCICB encourages you to submit questions and bug reports via NCICB Application Support.
    Documentation
    [top]

    caBIO Java Docs contain the current caBIO API specification

    caCORE Technical Guide contains a detailed description of caBIO, including how to use the caBIO Java, SOAP, and HTTP-XML APIs.

    caCORE Release Notes contain a description of bugs fixed since the previous release, new features, and known issues in the present release.

    Examples of Java and Perl code that leverage the caBIO Java, SOAP, and HTTP APIs.

    Changes between caBIO version 2.0 and version 2.1 (generated by JDiff).

    caBIO v2.1 UML Class Diagrams
  • Rational Rose generated HTML version
  • PDF version
  • caBIO Rational Rose MDL File
  • caBIO XML Metadata Interchange (XMI) File
  • The caBIO project and software is maintained by the caBIO Infrastructure Team, which consists of NCI Center for Bioinformatics and its contracting partner, SAIC.

    Prototypes
    and New Technologies

    [top]

    caPathway. A prototype version of NCICB's caPathway Interaction Database is now accessible through a Java API, similar in design to the caBIO Java API. The prototype version of the database contains more than 7,000 interactions extracted from human biological pathways published by KEGG (http://www.genome.ad.jp/kegg/) and BioCarta (http://www.biocarta.com).

    Download caPathway

    The download contains a compiled client jar file that is pointing to the NCICB caPathway server, the source code distribution, and example programs. See readme.txt for detailed description of contents of distribution.

    Please send comments and suggestions to ncicb@pop.nci.nih.gov | Privacy Notice | Accessibility Information

    cancer.gov nih.gov H H S logo - link to U. S. Department of Health and Human Services firstgov.gov