For problems which are not screening-specific please consult the openBIS FAQ as well.
openBIS has a simple interface which allows to access it from Java or Matlab.
The API allows e.g. to:
- list all screening experiments
- list names of all features computed for an experiment
- list all plates in the system or all plates of an experiment
- fetch all (or selected) features for every well where a particular gene has been suppressed.
The search can take all screening experiments into account or can be constrained to one selected experiment.
- save in temporary ﬁles all the images for the given well location and all (or selected) channels
How to download the API library
To get the API library for "openBIS for Screening" you have to:
- go to the download page.
If you do not have access to this page, write an email to our helpdesk at
- download the zip file using 'API' link in 'openBIS for High Content Screening' chapter. Choose the version matching your server version.
Consult the openBIS FAQ to find out what is your openBIS version.
- unzip the archive. Besides the
openbis_screening_api-batteries_included.jarfile you will find there javadoc documentation and the source code of the API.
How to use the API from Java
A good strarting point for using the screening API is to read javadoc.
One has to unpack openbis_screening_api_javadoc.zip with the javadoc, the most interesting classes are:
To use the API in java you need only openbis_screening_api-batteries_included.jar in your classpath.
How to use the API from MatLab
Check this tutorial.
How to download and upload datasets from the command line
You can find the command line tool which allows to download and upload datasets here ("openBIS Generic Framework", "DSS Client" link, the latest version).
The tool has some built-in help, it uses the generic API underneath which could be used as well from your java program.
Which specific dataset can be interpreted and visualized by openBIS?
There are few types of datasets which are treated in a special way by openBIS for HCS.
They are marked by having a dataset type code which starts with the text listed below:
- HCS_IMAGE - these datasets contain acquired images, usually in 16 bit grayscale TIFF format, although almost any format is accepted.
It is suggested to use a predefined HCS_IMAGE_RAW type to store raw images. If only overview images are stored, then HCS_IMAGE_OVERVIEW type is more appropriate.
- HCS_IMAGE_SEGMENTATION - these datasets store objects detected on the original raw image. For each raw image and a type of detected objects (e.g. nucleus or membrane) a dataset should contain one segmentation image with overlays of all objects.
- HCS_ANALYSIS_WELL - these datasets contain image analysis results aggregated on the well level. For each well the dataset stores a
feature vector- a list of numerical values, one value for each measured feature.
One can use predefined type HCS_ANALYSIS_WELL_FEATURES or create more specific types like HCS_ANALYSIS_WELL_QUALITY, HCS_ANALYSIS_WELL_SUMMARY, HCS_ANALYSIS_WELL_CLASSIFICATION to distinguish different types of image analysis.
In all cases one dataset contains data for exactly one plate. A plate can have several datasets of one type.
To upload types of data described above one should use dropboxes configured specially for these types, details can be found in this documentation.
Using wrongly configured dropboxes and storing inappropriate types of data can result in errors when data is being browsed.
Is there an easy way to delete plates and their wells in a batch mode?
openBIS supports deleting plates together with wells in one go since September 2011.
In older versions you can delete all plates and wells of one experiment quickly in the following way:
- create "TRASH" space
- edit the experiment and move it to the "TRASH" space
- go to "Sample -> Advanced Search"
- select "Match all criteria"
- search for "Sample Type" containing OLIGO and "Space" containing "TRASH"
- ensure that only the wells which you wanted to delete are displayed (check the total number of wells, use sorting and filters)
- press "Delete All"
- press "Change Search Criteria"
- search for "Sample Type" containing PLATE and "Space" containing "TRASH"
- press "Delete All"
Automatic retry of facade methods in case of any communication errors
Facade methods marked with @Retry annotation are automatically retried whenever a communication problem appears. If a retry fails, the call is retried again. The maximum number of such retries is set to 5 by default. You can change the default by calling DefaultRetryConfiguration.setMaximumNumberOfRetries() method from your code. Time between attempts increases with every attempt. By default a delay between the original call and the first retry is set to 1 second and the increasing factor is set to 2. It means that the time between the 1st and the 2nd retry is 2 seconds, between 2nd and 3rd is 4 seconds, 3rd and 4th is 8 seconds and so on. You can change the length of the initial delay with DefaultRetryConfiguration.setWaitingTimeBetweenRetries() method and the increasing factor by with DefaultRetryConfiguration.setWaitingTimeBetweenRetriesIncreasingFactor() method.