Introduction

Animal models play a critical role in biomedical research because of their experimental tractability and their genetic and physiological similarity to humans. As outlined by Russell and Burch (1959), the generally accepted principles for the ethical use of animal models in research include the three “Rs”: replace, reduce, and refine (Richmond 2000). Effective data management is key for implementing the principle of using only those animals that are necessary for achieving the goals of a particular experimental design (i.e., reduce). Despite the importance of data management, many researchers use handwritten notebooks or spreadsheet applications for managing small- and medium-sized animal colonies. Such ad hoc data management approaches are simple to adopt but do not scale well and are error prone. Both paper records and spreadsheets are difficult for multiple people to access simultaneously, and paper records need to be physically moved from one location to another and can easily be misplaced. In addition, data collected with such approaches are not amenable to searching, lack sophisticated data transaction controls, typically lack the use of controlled vocabularies or business rules, and are highly vulnerable to human error. Spreadsheets, in particular, are not well-suited for managing the complex data structures (such as breeding schemes) required for effective scientific data and colony management.

According to Silver (1995), “An ideal record-keeping system would allow one to keep track of: (1) individual animals, their ancestors, siblings and descendants; (2) matings between animals; (3) litters born from such matings, and the individuals within litters that are used in experiments or to set up the next generation of matings; and (4) experimental material (tissues and DNA samples) obtained from individual animals. Ideally, one would like to maintain records in a format that readily allows one to determine the relationship, if any, that exists between any two or more components of the colony, past or present.” A number of software solutions have been implemented that are specifically designed for the management of animal husbandry and phenotyping data. Existing software solutions for data management vary significantly in terms of cost, implementation requirements, flexibility, and level of user support. A summary of some of the currently available mouse colony management applications, both commercial and academic, is provided in Table 1.

Table 1 Examples of currently available colony management applications

We describe here the Jackson Laboratory Colony Management System (JCMS). JCMS is a relational database application that was developed specifically to meet biomedical research community demands for a well-engineered flexible database system supporting mouse animal husbandry and data management. JCMS meets the criteria for an ideal record-keeping system as outlined by Silver (1995), with additional functionality that supports the management of experimentally derived data as well as standard animal husbandry data.

JCMS runs directly on computers running a Windows operating system. The application can also be configured for access via web browsers from PC, Macintosh, or Linux computers by incorporating a middleware solution (discussed below) into the setup. The functional features of JCMS include support for controlled vocabularies, multiuser capabilities, quick and accurate data reporting, pedigree tracking, animal husbandry workflow, sample tracking, and experimental data capture. The expected benefits for users of JCMS are improved vivaria efficiency, improved quality control for experimental studies, and flexible data reporting and retrieval.

JCMS is a freely available and supported research tool. The user community for the software has grown steadily since its initial release in 2005; there are currently over 900 active subscribers to the JCMS user support list. The JCMS software application and associated tools and documentation are freely available from the project web site (http://colonymanagement.jax.org/). The JCMS web site includes an online discussion forum for users that is monitored by the JCMS development team.

Materials

JCMS employs a normalized relational data model that can be hosted on either Microsoft Access® or MySQL® databases. The complete JCMS data model is included with the application. The relational data model that underlies JCMS minimizes data redundancy, enforces data integrity, leverages controlled vocabularies, and enables accurate data retrieval against large data sets. The software architecture for JCMS allows for addition of new functionality and enhancement of existing functions without major modifications to the basic application infrastructure. The extensibility of JCMS ensures that the system can adapt readily to changing user needs. The user interfaces for JCMS have been implemented with the Microsoft Access Graphical User Interface (GUI) design tool and powered with program code written in Visual Basic for Applications® . Transaction management control in the program code ensures safe multi-user concurrent data entry and editing.

JCMS can be set up to run as a stand-alone database on a personal computer running Windows or as a server to support small- to medium-sized work groups. An overview of the three primary configurations for JCMS is shown in Fig. 1. In server configuration, JCMS can be deployed using middleware solutions such as Citrix Presentation Manger™ and deployed from a web interface and accessed from a computer running the Macintosh, Linux, or Windows operating system. Macintosh users can also use Microsoft Windows PC virtualization software program such as Parallels™ or vmWare™ to run JCMS directly on a modern Intel® Macintosh computer. Handheld devices can connect directly to the JCMS application in a server configuration. Any wireless internet-capable device with appropriate user authentication capabilities running a middleware session client (such as Citrix) can run a JCMS session. Handheld computers that have been tested with JCMS include the Symbol MC50 from Motorola and the 7535G2 from PSION Teklogix. The cost of hosting JCMS will vary depending on the system configuration deployed and which middleware solution (if any) is used; free middleware solutions such as Sun Microsystems® VirtualBox™ (http://www.virtualbox.org/) are available and may be deployed for single-user configurations on Macintosh computers. Middleware is only required for JCMS to run on handheld devices and Macintosh computers (Fig. 1).

Fig. 1
figure 1

Illustration of the three primary installation configurations for the JCMS application. (1) JCMS can be used as a stand-alone application for a single user, or (2) in a multi-user networked configuration. The most flexible configuration, (3) shows JCMS accessible via the web and accessed from multiple operating system platforms (LINUX™, Windows™ or Macintosh™). In the multi-user configuration examples, the black dots indicate that there may be any number of users, not just three users as depicted in the illustration

Methods and design

JCMS application overview

The JCMS application is composed of four integrated software modules: (1) colony management, (2) experiment management, (3) sample tracking, and (4) reports and queries. The JCMS tool suite includes several supporting applications, including a pedigree tracking tool (JPT), programs for upgrading to the latest released versions of JCMS, and an application that converts existing JCMS instances to use a MySQL™ relational database management system (RDBMS). The JCMS GUI enforces business rules and provides controlled access to the JCMS data. GUI forms are used to add data to the database, edit existing database records, or as a template for database queries and reports.

Once the software is downloaded, the user is guided through the setup process. The JCMS User Guide includes a section on “Getting Started” with JCMS that highlights key aspects of the setup process. The first step in configuring the JCMS application is to specify the roles of the individuals who will be using the software (see the JCMS Security Model subsection below for descriptions of the concept of user roles). If used as a stand-alone software application for a single user, JCMS can be easily installed without special networking skills or knowledge. If used in one of the multiclient modes (Fig. 1), the installation may require the assistance of a systems or network administrator. Once the software is configured and launched, the user is presented with a function bar that provides access to the software modules. The main function bar and two of the JCMS data entry forms, Add Mouse and Edit Mouse, are shown in Fig. 2.

Fig. 2
figure 2

Screen shots of the JCMS welcome page (a), main function bar (b) and forms for adding (c) and editing (d) information about mice. Function buttons are designed to support numerous workflows and are organized by task on the function bar

Although all of the JCMS functions are readily accessible from the function bar, a typical JCMS user will use a subset of the JCMS functions (forms) to support their daily workflow and functionality requirements. Figure 3 illustrates a typical animal breeding workflow with optional data entry and report steps. For example, the design-mating form allows users to plan matings and record them in the database in advance of implementing the actual matings in the mouse room. It is equally acceptable to skip the design step and record matings in the database after they are implemented. Data on litters may be recorded at the time of birth or when the pups are weaned.

Fig. 3
figure 3

Typical animal husbandry workflow supported by JCMS. Optional database entry tasks (Design Mating, and Record Litters) and reports (Check Mating, Wean Work) are shown with dashed outline. Wean work reports can only be generated if the JCMS user records litters when they are observed in the mouse room. Regardless of which JCMS functions used, the mouse room activities (illustrated as trapezoids) are the same in each workflow. Some database entry steps (illustrated as rectangles with solid boarders) are required in the workflow to ensure the colony data are stored in the JCMS database

JCMS allows users to design and print cage cards with information derived from the database about the mice housed in the cage (Fig. 4). Cage numbers printed on each card may be bar-coded and allow users to track information from the cage back to the database. Three classes of cage cards are defined: (1) mating cards that list litter numbers and pertinent information about the parental mice in the mating (e.g., genotype, strain, and sex), (2) detail cards that list information about each individual mouse housed in a cage, and (3) wean cards that are designed for groups of mice housed together from the same litter. JCMS is distributed with over 20 cage card designs. New designs for cage cards are submitted periodically by the JCMS user community and distributed with updates to the application.

Fig. 4
figure 4

An example cage card for a cage holding three mice. Cage cards can be custom formatted in any size or layout orientation that is supported by the printer

The JCMS Colony Management Module The central entity of the JCMS Colony Management module is the mouse. Every entity in this module (e.g., mating, litter) has a relationship with the mouse table which facilitates complete pedigree tracking over unlimited breeding generations (from matings to litters to mouse), timed matings (plug dates), genotype tracking, mouse scheduling, and tracking mouse caging. Leveraging the JCMS extensible data architecture, design efforts are underway to extend the data model such that the central entity is “organism” rather than mouse. This change in the underlying model for JCMS will enable future versions of the application to be used with other model organisms, including rat and zebrafish.

Animal husbandry workflows are supported by form-driven user interfaces with controlled data entry points. For example, a mating trio is entered into JCMS by selecting dams and sires from pulldown menus. Litter strain and breeding generation terms can be calculated to reduce the potential for data entry errors.

The JCMS Experimental Data Module JCMS includes an experiment management module that allows users to link mice to experiments, group tests into experiment plans (i.e., protocols), and associate experimental data with a specific mouse and test. Experiment plans are composed of one or more scheduled Experiment tests. For each Experiment test there is a user-configurable data descriptor record that defines the data type (integer, text), names, and limit constraints of each data element in an Experimental Data record. When a test is conducted, the data are entered manually or bulk loaded into JCMS.

To load experimental data into the database, users can use the bulk data-load operations in JCMS that support both flexible file format specification and preload data-checking scripts. Preload data checking verifies that data records are complete, associated with mouse records, and have not already been loaded and that data values are within appropriate ranges. Data files must pass the preload test before loading into JCMS. A data review report is generated by the system before data are loaded into the database. Data loads are transactional, so either all valid records load correctly, or the entire transaction is rolled back.

Future development of the JCMS application will include associating input parameters with tests (such as test setup specifications), creating the concept of a data group so that many data records can be analyzed as one measurement (e.g., time-course data), scheduling treatment, and developing the ability to associate experimental records with samples as well as mice.

The JCMS Sample Tracking Module In JCMS, a sample is a unit of biological material associated with mouse, mating, or litter records in the database. However, JCMS also supports tracking of samples as autonomous entities as well. Samples may be divided into subcollections (e.g., multiple histology slides derived from a single mouse lung). Sample attributes such as type of sample, weight, collection date, collection method, preservation method, and age of mouse at time of collection are associated with each sample record. Samples can be associated with specific storage locations.

Sample storage locations are user-defined hierarchies and can be configured to arbitrary levels of specificity. The highest level is the facility. Within the facility, JCMS supports arbitrary numbers of storage units and definition of the structure within the units to any level of detail. Figure 5 illustrates a sample hierarchy with one facility (there can be many facilities) and several rooms with aisles and freezers in the each room. The Sample Tracking module allows one to easily locate specific samples or generate inventory reports for storage facilities.

Fig. 5
figure 5

The JCMS sample storage browser. The browser allows users to quickly search a storage facility to locate samples. The left panel is the navigation tree; in the right panel is a list of all samples stored in the selected node. If the “Recurse” checkbox is selected, all samples in the selected node and all sub-nodes are displayed (as in the above diagram, where all samples in ISLE-1 are displayed

JCMS Reports and Queries JCMS provides extensive reporting capabilities for colony managers and investigators conducting experiments. Two ad-hoc report forms allow users to design their own reports from an extensive set of data filters and data output options (Fig. 6). JCMS also provides a number of precompiled work reports to help guide mouse-room activities, including weaning, timed matings, mouse line viability monitoring, and mouse testing. Most reports can be exported directly into Microsoft Excel for further analysis.

Fig. 6
figure 6

Ad-hoc mouse query form and an example output table. In this example query we have selected live mice with IDs that have EX in the name and are in the STOCK Igf1<tm1Ts>/ImJ strain. The report output fields are selected by check-box selection on the right side of the form. The remaining fields on the form are query filters which allow the user to apply highly specific criteria for the report output. This query form also allows the user to press a button and associate groups of mice with experiments

The JCMS Pedigree Tracking Tool (JPT) The JCMS tool suite includes a separate application called the JCMS Pedigree Tracking tool that connects to any JCMS database and graphically displays pedigree trees (Fig. 7). The JPT can also produce HTML or text formatted files for future reference or analysis. JPT allows you to select any mouse ID and draw an ancestor or progeny tree using the selected mouse as the focal point. For each mouse the JPT can optionally display sex, genotype, and strain information. Litter number tor progeny or mating number for ancestor can also be optionally displayed in the pedigree tree.

Fig. 7
figure 7

JPT ancestor tree for mouse BW-L160-6. From right to left, each generation is represented by columns. Thus, mouse BW_1W0001 and BW_1W0006 are parents of mouse BW-L160-6 and BR_WR002 and HH-W0004 are grandparents. BR_WR0002 has three parent mouse records (trio mating): HH-W0002, HH-W0003, and HH-W0004. Genotype, sex, and strain information are also displayed for each mouse in the tree. The bottom panel shows details for selected mouse

Management of controlled vocabularies

The implementation and use of controlled vocabularies is an essential element of good data management practice and facilitates accurate and complete data access and retrieval. JCMS is distributed with some commonly accepted vocabulary terms such as coat color, gene class, and strain. Future releases will include more vocabularies in the distribution such as terms from the mouse anatomical dictionary (http://www.informatics.jax.org/searches/anatdict_form.shtml). The designated JCMS administrator (see “JCMS security model” below) has control over the terms that are used in the JCMS database and may add or remove terms as needed. By limiting edit privileges for controlled vocabularies, JCMS provides an important tool for lab managers to ensure consistent common annotations for all mice in the database.

JCMS security model

The JCMS supports a simple security model that provides for three levels of security clearance for modifying existing data and/or adding new data records. The JCMS database administrator is a named user called mtsadmin. The mtsadmin has full access to all data and all JCMS functions. The role of mtsadmin is primarily to manage database configuration and controlled vocabulary terms. Secondary responsibilities include removing unwanted data and transferring ownership of data records as needed.

The next level of data access is called the owner level. JCMS owners are allowed to enter mice, matings, litters, experiments, samples, and any associated data. Every mouse, sample, and experimental data record in JCMS is associated with an owner. An owner can edit his/her data but cannot edit other owners’ data.

The most restricted level of access is the secretary level. The mtsadmin can configure which forms secretary users can access. Each secretary is associated with one or more owners. It is also possible for one owner to be a secretary of another owner, thereby having data edit capabilities for someone else’s data.

At the main application level, each form is configurable to have one of three security access levels: mtsadmin, owner, or secretary. Only mtsadmin can configure the security level for each GUI form.

Software availability and user support

The JCMS web site (http://colonymanagement.jax.org) provides access to several resources for JCMS users. All JCMS tools are posted on the web site for download, including the JCMS application, the upgrade utilities for MySQL and Microsoft Access, the pedigree tracker, cage card templates, tutorials, and the MySQL conversion tool (Access to MySQL). Each new release of JCMS is accompanied with two upgrade programs (one for MySQL users and one for Access users). The JCMS upgrade utility installs the new JCMS application, upgrades the database schema, and migrates data as necessary so that existing JCMS users can take advantage of the latest JCMS release features without loss of data. Known issues and test notes are published with each software release.

User support for JCMS is provided through a group email list and a monitored community electronic discussion forum (http://community.jax.org/forums/default.aspx?GroupID=7). The JCMS web site also includes an FAQ page that addresses most common issues with installation and use of the application. There are currently over 900 members subscribed to the email user group. Problems that are not quickly resolved via email are followed up with a telephone call from a member of the JCMS development team.

Discussion

The Jackson Colony Management System (JCMS) is designed to meet a wide variety of colony management and phenotype data management needs for small- to medium-sized laboratories and work groups. JCMS provides a carefully crafted data management solution that can increase both workflow efficiency and data security and thus produce significant cost savings and enhanced scientific results. The application can be downloaded, installed, administered, and run with minimal technical expertise. JCMS is unique among the current offerings for colony management software because it is both free and well supported. A training database with courses, a comprehensive user guide, and online support is readily available at the JCMS web site. The application was designed with extensive input from end users and new features and functionality are driven, in large part, by user requests.

The JCMS core design was engineered to be extensible, allowing for continued upgrades in both functionality and technology. Major areas of planned new functionality for JCMS include support for additional model organisms (e.g., zebrafish, rat), enhanced vivaria management functions (e.g., cage tracking), and support for associating samples with specific experiments. Near-term releases of the JCMS application will include new cage management functions with historical usage reporting, support for assisted reproductive technology matings (e.g., in vitro fertilization), and advanced experimental data management functionality. Longer-term plans for JCMS development include implementing support for multiple workgroups sharing a single JCMS instance and support for complete transaction logging capabilities as recommended in the Federal Drug Administration’s Good Laboratory Practices Guidelines for nonclinical laboratory studies (GLP; http://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=58). The next-generation JCMS design will leverage open-source technologies such as JBoss, MySQL, and JAVA to deliver an easy-to-deploy, platform-independent application capable of being hosted on Macintosh or PC computers with web browser user interfaces that can be deployed without concern for software licensing issues.