Sample Inventory Program

SIP is a Laboratory Inventory Management Systems (LIMS) for the Zope 3 application platform that uses a relational database. **NEW VERSION available in Q1 2011**
SIP was built for the Southwest Foundation for Biomedical Research (SFBR) under grant numbers, NHLBI grant P01 HL45522 and NCRR grant P51 RR013986.

The SIP application requires the Zope 3.0.x release of the Zope application server, PostgreSQL or Sybase Relational Database Servers and the Python 2.3.5 language runtime.  Many integration tests exist for various aspects of the SIP application ranging from command line importing of samples and project configuration to CSV web based importing of sample modifications.
SIP also features the SQLOS component which enables the SQLObject object relational module to be used with Zope 3.  MySQL should be easy to get working with the latest version.

Online Flash Demo's:

  1. Demonstrates project creation, adding Sample Type attributes and data entry of Sample and Aliquot.  Macromedia Flash Demo #1
  2. Demonstrates adding users and making them a project administrator.  Also shows logging in as the new user,  using advanced search functionality, and then exporting search results as a Comma Separated Value file (CSV).  The file is then modified and submitted to update the Samples and Aliquots.  You then see confirmation that the changes submitted have taken affect in the web interface.  Macromedia Flash Demo #2
  3. Shows the user creating a shipment and completing the shipment fields.  Also shows querying across multiple Projects and deriving an aliquot into the shipment that was just created.  You then see querying the shipment to show the newly derived sample.  Macromedia Flash Demo #3

Project Homepage

Open Source LICENSE:


Bugs, Features and Suggestions:

Please submit to tracker at


  •   Cross platform using the Zope 3 appliation server and Python language.    Contains over 200 unit and integrations tests.
  • Command line import functionality (import application configuration, projects, samples, aliquots and container heirarchies)
  • Cross project searches based on Subject Id's, Other Id's, Additional Sample Data, and Sample Types.  Uses REPORT Permission.
    Search Form Screenshot
  • Project level permissions.  Users can be enabled/disabled by removing User Permission in the Applicaiton root.  Lab Technician Permission allows users to put contents into a shipment and add/modify Samples.  Project Manager permission allows project configuration as well as administering Users for specified projects.
    User and Permission Screenshot
  • 100% Web based interface (IE, Mozilla, Safari tested).  QT based client in development.
    Projects Overview Screenshot
  • Ability to Split Aliquots into smaller units and put them into separate physical containers.
  • Ability to Derive Aliquots into other Sample Type's.  Derived Samples/Aliquots links to their origin sample.
  • Locations/Containers are heirarchical and can be restricted to a Project
  • Shipments act as virtual containers where Lab Technicans can split aliquots into.  AlsocShipments contain Contact Info, Shipping Info and Funding Info.  While the Shipment Status will control the status of the Shipment moving from: Incomplete, In-Transit, and finally Received  based on date fields being filled out.
    Shipment Screenshot
  • Understandable relational model that enables simple reporting to be easily constructed by third party tools such as Jasper Reports
  • Batch editing available using CSV files.  All changes are transactional.  You can easily import hundreds of samples into multiple projects by using CSV files and importing them through the web interface.  You can change locations of aliquots by using the CSV import functionality.  Any functionality that can be done in the web interface is complimented by CSV functionality.
    Project Search Results Screenshot
  • Ability to administer Sample Type, Container Type, Locations and Unit of Measure at the application level to enforce standards across all Projects.  Requires Application Manager permission.
  • Ability to assign Sample Type, Locations, Technicans in a Project by Project basis.
    Project Administration Screenshot
  • Advance Attribute Capture forms enable Project Administrators to specify what attributes for their Sample Types need to be captured for their project.  Now non-technical users can ensure that Lab Technicans capture any attribute for any Sample Type. Attributes are limited to: DateTime, Boolean, Float, Integer, String and Text fields.  Default Values can be assigned.
    Sample Type Attributes Screenshot
  • Finally Sample Type Attributes can have validation scripted on a field by field basis.  By using the TALES Validation functionality for Sample Type Attribute Fields.  Examples of TALES validation:    
    • python: value < 100 # value of the field is less than 100
    • python: value <, 10, 31)
      # value of the field is less than 10/31/2006      
  • Edit Comments will require a comment to be added to any field that is edited.  These are used in conjunction with RDBMS triggers to keep a audit log to ensure that all changes to all inventory can be tracked.