diff --git a/screening/dist/etc/service.properties b/screening/dist/etc/service.properties
index 2291fe5b4572b3fc7379e50d9559a81a9f839631..f894bf173935353d80510f8b401504a57493d87d 100644
--- a/screening/dist/etc/service.properties
+++ b/screening/dist/etc/service.properties
@@ -1,39 +1,46 @@
 # Unique code of this Data Store Server. Not more than 40 characters.
-data-store-server-code = my-dss
+data-store-server-code = dss-screening
+
+# host name of the machine on which the datastore server is running
+host-address = https://localhost
+
+# parent directory of the store directory and all the dropboxes
+root-dir = data
 
 # The root directory of the data store
-storeroot-dir = targets/store
+storeroot-dir = ${root-dir}/store
 
 # The directory where the command queue file is located; defaults to storeroot-dir 
 commandqueue-dir =
 
 # Port
 port = 8889
+use-ssl = true
 
 # Session timeout in minutes
-session-timeout = 30
+session-timeout = 720
 
 # Path to the keystore
-keystore.path = dist/etc/openBIS.keystore
-
+keystore.path = etc/openBIS.keystore
 # Password of the keystore
 keystore.password = changeit
-
 # Key password of the keystore
 keystore.key-password = changeit
 
 # The check interval (in seconds)
-check-interval = 5
+check-interval = 60
 
 # The time-out for clean up work in the shutdown sequence (in seconds).
 # Note that that the maximal time for the shutdown sequence to complete can be as large 
 # as twice this time.
-shutdown-timeout = 2
+# Remark: On a network file system, it is not recommended to turn this value to something 
+# lower than 180.
+shutdown-timeout = 180
 
 # If free disk space goes below value defined here, a notification email will be sent.
 # Value must be specified in kilobytes (1048576 = 1024 * 1024 = 1GB). If no high water mark is
 # specified or if value is negative, the system will not be watching.
-highwater-mark = 1048576
+highwater-mark = -1
 
 # If a data set is successfully registered it sends out an email to the registrator. 
 # If this property is not specified, no email is sent to the registrator. This property
@@ -41,37 +48,41 @@ highwater-mark = 1048576
 notify-successful-registration = false
 
 # The URL of the openBIS server
-server-url = http://localhost:8888/openbis
+server-url = ${host-address}:8443
 
 # The username to use when contacting the openBIS server
-username = etlserver_imsb
+username = etlserver
 
-# The password to use when contacting the openBIS server
-password = doesnotmatter
+# The password for the etlserver user who contacts the openBIS server
+password = etlserver_password
 
-# The base URL for Web client access.
-download-url = http://localhost:8889
+# The base URL for Web client access to the data store server.
+download-url = ${host-address}:8444
 
 # SMTP properties (must start with 'mail' to be considered).
-mail.smtp.host = file://targets
-# mail.from = datastore_server@localhost
+# The current configuration saves the emails in the file system in the root directory 
+mail.smtp.host = file://${root-dir}
+# mail.smtp.host = localhost
+# mail.from = datastore_server@ethz.ch
 # mail.smtp.user = 
 # mail.smtp.password = 
 
-# Maximum number of retries if renaming failed.
-# renaming.failure.max-retries = 12
+# ---------------------------------------------------------------------------
+# (optional) archiver configuration
+# ---------------------------------------------------------------------------
 
-# The number of milliseconds to wait before retrying to execute the renaming process.
-# renaming.failure.millis-to-sleep = 5000
+# Configuration of an archiver task. All properties are prefixed with 'archiver.'.
 
-# Globally used separator character which separates entities in a data set file name 
-data-set-file-name-entity-separator = _
+# Archiver class specification (together with the list of packages this class belongs to).
+#archiver.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver
 
-# The period of no write access that needs to pass before an incoming data item is considered 
-# complete and ready to be processed (in seconds) [default: 300]. 
-# Valid only when auto-detection method is used to determine if an incoming data are ready to be processed.
-quiet-period = 3
+# ---------------------------------------------------------------------------
+#                      INTERNAL CONFIGURATION, 
+# Do not change this part unless you are developing openBIS extensions.
+# ---------------------------------------------------------------------------
 
+# ---------------------------------------------------------------------------
+# screening database specification
 # ---------------------------------------------------------------------------
 
 data-sources = imaging-db
@@ -86,108 +97,181 @@ imaging-db.scriptFolder = sql
 # ---------------------------------------------------------------------------
 
 # Comma separated names of reporting plugins. Each plugin should have configuration properties prefixed with its name.
-reporting-plugins = plate-image-reporter, plate-image-params-reporter, demo-reporter
+reporting-plugins =  default-plate-image-analysis, plate-image-analysis-graph, plate-image-params-reporter
 
-# Label of the plugin which will be shown for the users.
-demo-reporter.label = Show Dataset Size
-# Comma separated list of dataset type codes which can be handled by this plugin.
-demo-reporter.dataset-types = UNKNOWN
-# Plugin class specification (together with the list of packages this class belongs to).
-demo-reporter.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoReportingPlugin
-# The property file. Its content will be passed as a parameter to the plugin.
-demo-reporter.properties-file = 
+default-plate-image-analysis.label = Image Analysis Results
+default-plate-image-analysis.dataset-types = HCS_IMAGE_ANALYSIS_DATA, HCS_ANALYSIS_PER_GENE
+default-plate-image-analysis.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ImageAnalysisMergedRowsReportingPlugin
+default-plate-image-analysis.properties-file =
 
-# Label of the plugin which will be shown for the users.
-plate-image-reporter.label = Show Plate Images
-# Comma separated list of dataset type codes which can be handled by this plugin.
-plate-image-reporter.dataset-types = HCS_IMAGE
-# Plugin class specification (together with the list of packages this class belongs to).
-plate-image-reporter.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.ScreeningImageReportingPlugin
-# The property file. Its content will be passed as a parameter to the plugin.
-plate-image-reporter.properties-file = 
+plate-image-analysis-graph.label = Image Analysis Graphs
+plate-image-analysis-graph.dataset-types = HCS_IMAGE_ANALYSIS_DATA, HCS_ANALYSIS_PER_GENE
+plate-image-analysis-graph.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ImageAnalysisGraphReportingPlugin
+plate-image-analysis-graph.servlet-path = datastore_server_graph/
+plate-image-analysis-graph.properties-file = etc/tabular-data-graph.properties
 
 # Label of the plugin which will be shown for the users.
-plate-image-params-reporter.label = Show Plate Image Parameters
+plate-image-params-reporter.label = Plate Image Parameters
 # Comma separated list of dataset type codes which can be handled by this plugin.
 plate-image-params-reporter.dataset-types = HCS_IMAGE
 # Plugin class specification (together with the list of packages this class belongs to).
-plate-image-params-reporter.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.ScreeningPlateImageParamsReportingPlugin
+plate-image-params-reporter.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ScreeningPlateImageParamsReportingPlugin
 # The property file. Its content will be passed as a parameter to the plugin.
 plate-image-params-reporter.properties-file = 
 
 # ---------------------------------------------------------------------------
+# screening specific extension servlets 
+# ---------------------------------------------------------------------------
+
+# list of additional web servlets which will be exposed
+plugin-services = screening-image-download-servlet, tabular-data-graph-servlet, screening-dss-api-exporter-servlet
+
+# class of the web servlet
+screening-image-download-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.MergingImagesDownloadServlet
+# URL which will be mapped to this servlet
+screening-image-download-servlet.path = /datastore_server_screening/*
 
-# Comma separated names of processing plugins. Each plugin should have configuration properties prefixed with its name.
-processing-plugins = demo-processor
+tabular-data-graph-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.TabularDataGraphServlet
+tabular-data-graph-servlet.path = /datastore_server_graph/*
+tabular-data-graph-servlet.properties-file = etc/tabular-data-graph.properties
 
-# The configuration of the processing plugin is the same as the reporting plugins configuration. 
-demo-processor.label = Demo Processing
-demo-processor.dataset-types = UNKNOWN
-demo-processor.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoProcessingPlugin
-demo-processor.properties-file = 
+# expose an DSS API interface with RPC
+screening-dss-api-exporter-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.DssScreeningApiServlet
+screening-dss-api-exporter-servlet.path = /rmi-datastore-server-screening-api-v1/*
 
 # ---------------------------------------------------------------------------
 
-maintenance-plugins=hierarchical-storage-updater, data-set-clean-up
+maintenance-plugins=hierarchical-storage-updater, data-set-clean-up, migrator
 
 # the plugin which is run periodically to create a mirror structure of the store with the same files
 # but with user-readable structure of directories  
 hierarchical-storage-updater.class = ch.systemsx.cisd.etlserver.plugins.HierarchicalStorageUpdater
-hierarchical-storage-updater.interval = 120
-hierarchical-storage-updater.hierarchy-root-dir = targets/hierarchical-store
+# specified in seconds. Here : every day
+hierarchical-storage-updater.interval = 86400
+hierarchical-storage-updater.hierarchy-root-dir = ${root-dir}/hierarchical-store
 
 # Removes data sets deleted from openBIS also from imaging database
 data-set-clean-up.class = ch.systemsx.cisd.etlserver.plugins.DataSetDeletionMaintenanceTask
-data-set-clean-up.interval = 30
+# specified in seconds. Here : every day
+data-set-clean-up.interval = 86400
 data-set-clean-up.data-source = imaging-db
 
+migrator.class = ch.systemsx.cisd.etlserver.plugins.ChainedDataSetMigrationTask
+migrator.execute-only-once = true
+migrator.storeRoot = ${storeroot-dir}
+migrator.migrators = bds-image-db, bds-original-relocator, bds-remover
+migrator.bds-image-db.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSImagingDatabaseMigrator
+migrator.bds-image-db.data-source = imaging-db
+migrator.bds-image-db.channel-names = dapi, gfp
+#migrator.bds-image-db.extract-single-image-channels = BLUE, GREEN
+migrator.bds-original-relocator.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSOriginalDataRelocatorMigrator
+migrator.bds-remover.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSDataRemoverMigrator
+
+# ---------------------------------------------------------------------------
+#                      DROPBOXES CONFIGURATION 
 # ---------------------------------------------------------------------------
 
-# list of additional web servlets which will be exposed
-plugin-services = screening-image-download-servlet
-# class of the web servlet
-screening-image-download-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.ImagesDownloadServlet
-# URL which will be mapped to this servlet
-screening-image-download-servlet.path = /datastore_server_screening/*
+incoming-root-dir = ${root-dir}
 
-# ---------------------------------------------------------------------------
+# Globally used separator character which separates entities in a data set file name 
+data-set-file-name-entity-separator = _
+
+# The period of no write access that needs to pass before an incoming data item is considered 
+# complete and ready to be processed (in seconds) [default: 300]. 
+# Valid only when auto-detection method is used to determine if an incoming data are ready to be processed.
+quiet-period = 300
 
 # Comma separated names of processing threads. Each thread should have configuration properties prefixed with its name.
 # E.g. 'code-extractor' property for the thread 'my-etl' should be specified as 'my-etl.code-extractor'
-inputs=raw-data
+inputs=split-channels-images, merged-channels-images, image-analysis-results, genedata-merged-channels-images, genedata-image-analysis-results
 
 # ---------------------------------------------------------------------------
-# 'raw-data' thread configuration
+
+# The directory to watch for incoming data.
+split-channels-images.incoming-dir = ${incoming-root-dir}/incoming-images-split-channels
+split-channels-images.incoming-data-completeness-condition = auto-detection
+
+# The extractor class to use for code extraction
+split-channels-images.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+split-channels-images.data-set-info-extractor.entity-separator = ${data-set-file-name-entity-separator}
+split-channels-images.data-set-info-extractor.index-of-sample-code = -1
+split-channels-images.data-set-info-extractor.index-of-data-producer-code = 1
+split-channels-images.data-set-info-extractor.index-of-data-production-date = 0
+split-channels-images.data-set-info-extractor.space-code = DEMO
+
+# The extractor class to use for type extraction
+split-channels-images.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+split-channels-images.type-extractor.file-format-type = JPG
+split-channels-images.type-extractor.locator-type = RELATIVE_LOCATION
+split-channels-images.type-extractor.data-set-type = HCS_IMAGE
+split-channels-images.type-extractor.is-measured = true
+
+split-channels-images.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
+split-channels-images.storage-processor.generate-thumbnails = true
+split-channels-images.storage-processor.channel-names = blue, green
+split-channels-images.storage-processor.well_geometry = 3x3
+split-channels-images.storage-processor.deprecated-file-extractor = ch.systemsx.cisd.etlserver.imsb.HCSImageFileExtractor
+split-channels-images.storage-processor.data-source = imaging-db
+
+# ---------------------------------------------------------------------------
+
+# The directory to watch for incoming data.
+merged-channels-images.incoming-dir = ${incoming-root-dir}/incoming-images-merged-channels
+merged-channels-images.incoming-data-completeness-condition = auto-detection
+
+# The extractor class to use for code extraction
+merged-channels-images.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+merged-channels-images.data-set-info-extractor.entity-separator = .
+merged-channels-images.data-set-info-extractor.index-of-sample-code = 0
+merged-channels-images.data-set-info-extractor.index-of-data-producer-code = 
+merged-channels-images.data-set-info-extractor.space-code = DEMO
+
+# The extractor class to use for type extraction
+merged-channels-images.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+merged-channels-images.type-extractor.file-format-type = JPG
+merged-channels-images.type-extractor.locator-type = RELATIVE_LOCATION
+merged-channels-images.type-extractor.data-set-type = HCS_IMAGE
+merged-channels-images.type-extractor.is-measured = true
+
+merged-channels-images.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
+merged-channels-images.storage-processor.generate-thumbnails = true
+#merged-channels-images.storage-processor.thumbnail-max-width = 300
+#merged-channels-images.storage-processor.thumbnail-max-height = 200
+merged-channels-images.storage-processor.channel-names = green, blue
+merged-channels-images.storage-processor.well_geometry = 3x3
+merged-channels-images.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.lmc.HCSImageFileExtractor
+merged-channels-images.storage-processor.data-source = imaging-db
+# Available values: RED, BLUE or GREEN
+merged-channels-images.storage-processor.extract-single-image-channels = GREEN, BLUE
+
 # ---------------------------------------------------------------------------
 
 # The directory to watch for incoming data.
-raw-data.incoming-dir = targets/incoming-screening-raw
-raw-data.incoming-data-completeness-condition = auto-detection
+image-analysis-results.incoming-dir = ${incoming-root-dir}/incoming-analysis
+image-analysis-results.incoming-data-completeness-condition = auto-detection
 
 # The extractor class to use for code extraction
-raw-data.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+image-analysis-results.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
 # Separator used to extract the barcode in the data set file name
-raw-data.data-set-info-extractor.entity-separator = ${data-set-file-name-entity-separator}
-raw-data.data-set-info-extractor.index-of-sample-code = -1
-raw-data.data-set-info-extractor.index-of-data-producer-code = 1
-raw-data.data-set-info-extractor.index-of-data-production-date = 0
-raw-data.data-set-info-extractor.group-code = IMSB
+image-analysis-results.data-set-info-extractor.entity-separator = .
+image-analysis-results.data-set-info-extractor.index-of-sample-code = 0
+image-analysis-results.data-set-info-extractor.space-code = DEMO
 
 # The extractor class to use for type extraction
-raw-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-raw-data.type-extractor.file-format-type = PNG
-raw-data.type-extractor.locator-type = RELATIVE_LOCATION
-raw-data.type-extractor.data-set-type = HCS_IMAGE
+image-analysis-results.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+image-analysis-results.type-extractor.file-format-type = CSV
+image-analysis-results.type-extractor.locator-type = RELATIVE_LOCATION
+image-analysis-results.type-extractor.data-set-type = HCS_IMAGE_ANALYSIS_DATA
+image-analysis-results.type-extractor.is-measured = false
 
 # The storage processor (IStorageProcessor implementation)
-# raw-data.storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-raw-data.storage-processor = ch.systemsx.cisd.etlserver.BDSStorageProcessor
-raw-data.storage-processor.version = 1.1
-raw-data.storage-processor.sampleTypeCode = PLATE
-raw-data.storage-processor.sampleTypeDescription = Screening Plate
-raw-data.storage-processor.format = HCS_IMAGE V1.0
-raw-data.storage-processor.number_of_channels = 2
-raw-data.storage-processor.contains_original_data = true
-raw-data.storage-processor.well_geometry = 3x3
-raw-data.storage-processor.plate_geometry = 16x24
-raw-data.storage-processor.file-extractor = ch.systemsx.cisd.etlserver.imsb.HCSImageFileExtractor
+image-analysis-results.storage-processor = ch.systemsx.cisd.openbis.dss.etl.featurevector.FeatureVectorStorageProcessor
+image-analysis-results.storage-processor.processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
+image-analysis-results.storage-processor.data-source = imaging-db
+# semi-colon (;) by default 
+image-analysis-results.storage-processor.separator = ,
+image-analysis-results.storage-processor.ignore-comments = true
+image-analysis-results.storage-processor.well-name-row = row
+image-analysis-results.storage-processor.well-name-col = col
+image-analysis-results.storage-processor.well-name-col-is-alphanum = true
+
diff --git a/screening/dist/etc/tabular-data-graph.properties b/screening/dist/etc/tabular-data-graph.properties
new file mode 100644
index 0000000000000000000000000000000000000000..043cc07a6d71fa59871bc0dbd20f872705ed2e0e
--- /dev/null
+++ b/screening/dist/etc/tabular-data-graph.properties
@@ -0,0 +1,37 @@
+# ------------------------------------------------------------------
+# Properties File For Generating Graphs From Tabular Data
+# ------------------------------------------------------------------
+
+# The width of the full image
+full-width = 800
+
+# The height of the full image
+full-height = 600
+
+# The width of the table column
+column-width = 300
+
+# The height of the table row
+column-height = 200
+
+# The graphs shown per row
+graphs = graph1, graph2, graph3
+
+# The properties for the first scatter plot
+graph1.graph-type = scatterplot
+graph1.x-axis = <x axis feature name, e.g. TotalCells>
+graph1.y-axis = <y axis feature name, e.g. InfectedCells>
+graph1.title = <title, e.g. Total vs. Infected>
+
+# The properties for the histogram
+graph2.graph-type = histogram
+graph2.column = <feature name, e.g. TotalCells>
+graph2.number-of-bins = 20
+graph2.title = <title, e.g. Total Cells Histogram>
+
+# The properties for the heatmap
+graph3.graph-type = heatmap
+graph3.x-axis = <name of the column which contains plate row number, e.g. row or WellName>
+graph3.y-axis = <name of the column which contains plate column number, e.g. col or WellName>
+graph3.column = <feature name, e.g. InfectionIndex>
+graph3.title = <title, e.g. Infection Index>
diff --git a/screening/etc/service.properties b/screening/etc/service.properties
index eceddf9804bf28ebf602d3c737b0cb4e649a7f3c..544e979528d8bd9d45b997dc920abe448335e314 100644
--- a/screening/etc/service.properties
+++ b/screening/etc/service.properties
@@ -1,26 +1,29 @@
 # Unique code of this Data Store Server. Not more than 40 characters.
-data-store-server-code = my-dss
+data-store-server-code = dss-screening
+
+# host name of the machine on which the datastore server is running
+host-address = http://localhost
+
+# parent directory of the store directory and all the dropboxes
+root-dir = targets
 
 # The root directory of the data store
-storeroot-dir = targets/store
+storeroot-dir = ${root-dir}/store
 
 # The directory where the command queue file is located; defaults to storeroot-dir 
 commandqueue-dir =
 
 # Port
 port = 8889
+use-ssl = false
 
 # Session timeout in minutes
 session-timeout = 30
 
 # Path to the keystore
 keystore.path = dist/etc/openBIS.keystore
-
-use-ssl = false
-
 # Password of the keystore
 keystore.password = changeit
-
 # Key password of the keystore
 keystore.key-password = changeit
 
@@ -30,6 +33,8 @@ check-interval = 5
 # The time-out for clean up work in the shutdown sequence (in seconds).
 # Note that that the maximal time for the shutdown sequence to complete can be as large 
 # as twice this time.
+# Remark: On a network file system, it is not recommended to turn this value to something 
+# lower than 180.
 shutdown-timeout = 2
 
 # If free disk space goes below value defined here, a notification email will be sent.
@@ -43,75 +48,41 @@ highwater-mark = 1000
 notify-successful-registration = false
 
 # The URL of the openBIS server
-server-url = http://localhost:8888/openbis
+server-url = ${host-address}:8888
 
 # The username to use when contacting the openBIS server
 username = etlserver
 
-# The password to use when contacting the openBIS server
-password = doesnotmatter
+# The password for the etlserver user who contacts the openBIS server
+password = etlserver_password
 
-# The base URL for Web client access.
-download-url = http://localhost:8889
+# The base URL for Web client access to the data store server.
+download-url = ${host-address}:8889
 
 # SMTP properties (must start with 'mail' to be considered).
-mail.smtp.host = file://targets
-# mail.from = datastore_server@localhost
+# The current configuration saves the emails in the file system in the root directory 
+mail.smtp.host = file://${root-dir}
+# mail.smtp.host = localhost
+# mail.from = datastore_server@ethz.ch
 # mail.smtp.user = 
 # mail.smtp.password = 
 
-# Maximum number of retries if renaming failed.
-# renaming.failure.max-retries = 12
-
-# The number of milliseconds to wait before retrying to execute the renaming process.
-# renaming.failure.millis-to-sleep = 5000
-
-# Globally used separator character which separates entities in a data set file name 
-data-set-file-name-entity-separator = _
-
-# The period of no write access that needs to pass before an incoming data item is considered 
-# complete and ready to be processed (in seconds) [default: 300]. 
-# Valid only when auto-detection method is used to determine if an incoming data are ready to be processed.
-quiet-period = 3
-
 # ---------------------------------------------------------------------------
-# reporting and processing plugins configuration
+# (optional) archiver configuration
 # ---------------------------------------------------------------------------
 
-# Comma separated names of reporting plugins. Each plugin should have configuration properties prefixed with its name.
-reporting-plugins = plate-image-params-reporter, default-plate-image-analysis-merger, plate-image-analysis-graph
-
-# Label of the plugin which will be shown for the users.
-plate-image-params-reporter.label = Show Plate Image Parameters
-# Comma separated list of dataset type codes which can be handled by this plugin.
-plate-image-params-reporter.dataset-types = HCS_IMAGE
-# Plugin class specification (together with the list of packages this class belongs to).
-plate-image-params-reporter.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ScreeningPlateImageParamsReportingPlugin
-# The property file. Its content will be passed as a parameter to the plugin.
-plate-image-params-reporter.properties-file = 
-
-default-plate-image-analysis-merger.label = Show Image Analysis Results
-default-plate-image-analysis-merger.dataset-types = HCS_IMAGE_ANALYSIS_DATA
-default-plate-image-analysis-merger.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ImageAnalysisMergedRowsReportingPlugin
-default-plate-image-analysis-merger.properties-file =
+# Configuration of an archiver task. All properties are prefixed with 'archiver.'.
 
-plate-image-analysis-graph.label = Show Image Analysis Graphs
-plate-image-analysis-graph.dataset-types = HCS_IMAGE_ANALYSIS_DATA
-plate-image-analysis-graph.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ImageAnalysisGraphReportingPlugin
-plate-image-analysis-graph.servlet-path = datastore_server_graph/
-plate-image-analysis-graph.properties-file = etc/tabular-data-graph.properties
+# Archiver class specification (together with the list of packages this class belongs to).
+#archiver.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver
 
 # ---------------------------------------------------------------------------
-
-# Comma separated names of processing plugins. Each plugin should have configuration properties prefixed with its name.
-processing-plugins = demo-processor
-
-# The configuration of the processing plugin is the same as the reporting plugins configuration. 
-demo-processor.label = Demo Processing
-demo-processor.dataset-types = UNKNOWN
-demo-processor.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoProcessingPlugin
-demo-processor.properties-file = 
+#                      INTERNAL CONFIGURATION, 
+# Do not change this part unless you are developing openBIS extensions.
+# ---------------------------------------------------------------------------
 
+# ---------------------------------------------------------------------------
+# screening database specification
 # ---------------------------------------------------------------------------
 
 data-sources = imaging-db
@@ -121,42 +92,46 @@ imaging-db.basicDatabaseName = imaging
 imaging-db.databaseKind = dev
 imaging-db.scriptFolder = source/sql
 
+# ---------------------------------------------------------------------------
+# reporting and processing plugins configuration
 # ---------------------------------------------------------------------------
 
-#maintenance-plugins=hierarchical-storage-updater, bds-migrator
-maintenance-plugins = migrator
+# Comma separated names of reporting plugins. Each plugin should have configuration properties prefixed with its name.
+reporting-plugins =  default-plate-image-analysis, plate-image-analysis-graph, plate-image-params-reporter
 
-data-set-clean-up.class = ch.systemsx.cisd.etlserver.plugins.DataSetDeletionMaintenanceTask
-data-set-clean-up.interval = 30
-data-set-clean-up.data-source = imaging-db
+default-plate-image-analysis.label = Image Analysis Results
+default-plate-image-analysis.dataset-types = HCS_IMAGE_ANALYSIS_DATA, HCS_ANALYSIS_PER_GENE
+default-plate-image-analysis.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ImageAnalysisMergedRowsReportingPlugin
+default-plate-image-analysis.properties-file =
 
-hierarchical-storage-updater.class = ch.systemsx.cisd.etlserver.plugins.HierarchicalStorageUpdater
-hierarchical-storage-updater.interval = 300
-hierarchical-storage-updater.hierarchy-root-dir = targets/hierarchical-store
+plate-image-analysis-graph.label = Image Analysis Graphs
+plate-image-analysis-graph.dataset-types = HCS_IMAGE_ANALYSIS_DATA, HCS_ANALYSIS_PER_GENE
+plate-image-analysis-graph.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ImageAnalysisGraphReportingPlugin
+plate-image-analysis-graph.servlet-path = datastore_server_graph/
+plate-image-analysis-graph.properties-file = etc/tabular-data-graph.properties
 
-migrator.class = ch.systemsx.cisd.etlserver.plugins.ChainedDataSetMigrationTask
-migrator.execute-only-once = true
-migrator.storeRoot = ${storeroot-dir}
-migrator.migrators = bds-image-db, bds-original-relocator, bds-remover
-migrator.bds-image-db.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSImagingDatabaseMigrator
-migrator.bds-image-db.data-source = imaging-db
-migrator.bds-image-db.channel-names = dapi, gfp
-#migrator.bds-image-db.extract-single-image-channels = BLUE, GREEN
-migrator.bds-original-relocator.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSOriginalDataRelocatorMigrator
-migrator.bds-remover.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSDataRemoverMigrator
+# Label of the plugin which will be shown for the users.
+plate-image-params-reporter.label = Plate Image Parameters
+# Comma separated list of dataset type codes which can be handled by this plugin.
+plate-image-params-reporter.dataset-types = HCS_IMAGE
+# Plugin class specification (together with the list of packages this class belongs to).
+plate-image-params-reporter.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.ScreeningPlateImageParamsReportingPlugin
+# The property file. Its content will be passed as a parameter to the plugin.
+plate-image-params-reporter.properties-file = 
 
+# ---------------------------------------------------------------------------
+# screening specific extension servlets 
 # ---------------------------------------------------------------------------
 
 # list of additional web servlets which will be exposed
 plugin-services = screening-image-download-servlet, tabular-data-graph-servlet, screening-dss-api-exporter-servlet
+
 # class of the web servlet
 screening-image-download-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.MergingImagesDownloadServlet
-#screening-image-download-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.SplittingImagesDownloadServlet
 # URL which will be mapped to this servlet
 screening-image-download-servlet.path = /datastore_server_screening/*
 
 tabular-data-graph-servlet.class = ch.systemsx.cisd.openbis.dss.generic.server.TabularDataGraphServlet
-# URL which will be mapped to this servlet
 tabular-data-graph-servlet.path = /datastore_server_graph/*
 tabular-data-graph-servlet.properties-file = etc/tabular-data-graph.properties
 
@@ -166,248 +141,175 @@ screening-dss-api-exporter-servlet.path = /rmi-datastore-server-screening-api-v1
 
 # ---------------------------------------------------------------------------
 
-# Comma separated names of processing threads. Each thread should have configuration properties prefixed with its name.
-# E.g. 'code-extractor' property for the thread 'my-etl' should be specified as 'my-etl.code-extractor'
-inputs=raw-data, plate-analysis-data, lmc-raw-data, lmc-jpg-data, lmc-segmented-jpg-data, genedata-raw-img-db, pelk-raw-img-db, lmc-raw-img-db, genedata-image-analysis-results
-
-# ---------------------------------------------------------------------------
-# 'raw-data' thread configuration
-# ---------------------------------------------------------------------------
-
-# The directory to watch for incoming data.
-raw-data.incoming-dir = targets/incoming-screening-raw
-raw-data.incoming-data-completeness-condition = auto-detection
+maintenance-plugins=hierarchical-storage-updater, data-set-clean-up, migrator
 
-# The extractor class to use for code extraction
-raw-data.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
-# Separator used to extract the barcode in the data set file name
-raw-data.data-set-info-extractor.entity-separator = ${data-set-file-name-entity-separator}
-raw-data.data-set-info-extractor.index-of-sample-code = -1
-raw-data.data-set-info-extractor.index-of-data-producer-code = 1
-raw-data.data-set-info-extractor.index-of-data-production-date = 0
-raw-data.data-set-info-extractor.space-code = DEMO
-
-# The extractor class to use for type extraction
-raw-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-raw-data.type-extractor.file-format-type = PNG
-raw-data.type-extractor.locator-type = RELATIVE_LOCATION
-raw-data.type-extractor.data-set-type = HCS_IMAGE
+# the plugin which is run periodically to create a mirror structure of the store with the same files
+# but with user-readable structure of directories  
+hierarchical-storage-updater.class = ch.systemsx.cisd.etlserver.plugins.HierarchicalStorageUpdater
+# specified in seconds. Here : every day
+hierarchical-storage-updater.interval = 86400
+hierarchical-storage-updater.hierarchy-root-dir = ${root-dir}/hierarchical-store
 
-# The storage processor (IStorageProcessor implementation)
-# raw-data.storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-raw-data.storage-processor = ch.systemsx.cisd.etlserver.BDSStorageProcessor
-raw-data.storage-processor.version = 1.1
-raw-data.storage-processor.sampleTypeCode = PLATE
-raw-data.storage-processor.sampleTypeDescription = Screening Plate
-raw-data.storage-processor.format = HCS_IMAGE V1.0
-raw-data.storage-processor.number_of_channels = 2
-raw-data.storage-processor.contains_original_data = true
-raw-data.storage-processor.well_geometry = 3x3
-raw-data.storage-processor.plate_geometry = 16x24
-raw-data.storage-processor.file-extractor = ch.systemsx.cisd.etlserver.imsb.HCSImageFileExtractor
+# Removes data sets deleted from openBIS also from imaging database
+data-set-clean-up.class = ch.systemsx.cisd.etlserver.plugins.DataSetDeletionMaintenanceTask
+# specified in seconds. Here : every day
+data-set-clean-up.interval = 86400
+data-set-clean-up.data-source = imaging-db
 
+migrator.class = ch.systemsx.cisd.etlserver.plugins.ChainedDataSetMigrationTask
+migrator.execute-only-once = true
+migrator.storeRoot = ${storeroot-dir}
+migrator.migrators = bds-image-db, bds-original-relocator, bds-remover
+migrator.bds-image-db.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSImagingDatabaseMigrator
+migrator.bds-image-db.data-source = imaging-db
+migrator.bds-image-db.channel-names = dapi, gfp
+#migrator.bds-image-db.extract-single-image-channels = BLUE, GREEN
+migrator.bds-original-relocator.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSOriginalDataRelocatorMigrator
+migrator.bds-remover.class = ch.systemsx.cisd.openbis.dss.etl.bdsmigration.BDSDataRemoverMigrator
 
 # ---------------------------------------------------------------------------
-# 'plate-analysis-data' thread configuration
+#                      DROPBOXES CONFIGURATION 
 # ---------------------------------------------------------------------------
 
-# The directory to watch for incoming data.
-plate-analysis-data.incoming-dir = targets/incoming-screening-image-analysis
-plate-analysis-data.incoming-data-completeness-condition = auto-detection
+incoming-root-dir = ${root-dir}
 
-# The extractor class to use for code extraction
-plate-analysis-data.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
-# Separator used to extract the barcode in the data set file name
-plate-analysis-data.data-set-info-extractor.entity-separator = .
-plate-analysis-data.data-set-info-extractor.index-of-sample-code = 0
-plate-analysis-data.data-set-info-extractor.space-code = DEMO
-
-# The extractor class to use for type extraction
-plate-analysis-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-plate-analysis-data.type-extractor.file-format-type = TSV
-plate-analysis-data.type-extractor.locator-type = RELATIVE_LOCATION
-plate-analysis-data.type-extractor.data-set-type = HCS_IMAGE_ANALYSIS_DATA
-plate-analysis-data.type-extractor.is-measured = false
+# Globally used separator character which separates entities in a data set file name 
+data-set-file-name-entity-separator = _
 
-# The storage processor (IStorageProcessor implementation)
-#plate-analysis-data.storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-plate-analysis-data.storage-processor = ch.systemsx.cisd.openbis.dss.etl.featurevector.FeatureVectorStorageProcessor
-plate-analysis-data.storage-processor.processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
-plate-analysis-data.storage-processor.data-source = imaging-db
-# The separator in the CSV feature-vector files
-plate-analysis-data.storage-processor.separator = ;
-# Should lines starting with the '#' be ignored?
-plate-analysis-data.storage-processor.ignore-comments = true
-# The name of the column that specifies the well row
-plate-analysis-data.storage-processor.well-name-row = WellName
-# The name of the column that specifies the well column
-plate-analysis-data.storage-processor.well-name-col = WellName
-# True if column names specified in spreadsheet form (A, B, etc.), false if they are pure numbers
-plate-analysis-data.storage-processor.well-name-col-is-alphanum = true
+# The period of no write access that needs to pass before an incoming data item is considered 
+# complete and ready to be processed (in seconds) [default: 300]. 
+# Valid only when auto-detection method is used to determine if an incoming data are ready to be processed.
+quiet-period = 3
 
+# Comma separated names of processing threads. Each thread should have configuration properties prefixed with its name.
+# E.g. 'code-extractor' property for the thread 'my-etl' should be specified as 'my-etl.code-extractor'
+inputs=split-channels-images, merged-channels-images, image-analysis-results, genedata-merged-channels-images, genedata-image-analysis-results
 
-# ---------------------------------------------------------------------------
-# 'LMC RAW data' thread configuration
 # ---------------------------------------------------------------------------
 
 # The directory to watch for incoming data.
-lmc-raw-data.incoming-dir = targets/incoming-lmc-raw
-lmc-raw-data.incoming-data-completeness-condition = auto-detection
+split-channels-images.incoming-dir = ${incoming-root-dir}/incoming-images-split-channels
+split-channels-images.incoming-data-completeness-condition = auto-detection
 
 # The extractor class to use for code extraction
-lmc-raw-data.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
-# Separator used to extract the barcode in the data set file name
-lmc-raw-data.data-set-info-extractor.entity-separator = .
-lmc-raw-data.data-set-info-extractor.index-of-sample-code = 0
-lmc-raw-data.data-set-info-extractor.index-of-data-producer-code = 
-lmc-raw-data.data-set-info-extractor.space-code = DEMO
+split-channels-images.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+split-channels-images.data-set-info-extractor.entity-separator = ${data-set-file-name-entity-separator}
+split-channels-images.data-set-info-extractor.index-of-sample-code = -1
+split-channels-images.data-set-info-extractor.index-of-data-producer-code = 1
+split-channels-images.data-set-info-extractor.index-of-data-production-date = 0
+split-channels-images.data-set-info-extractor.space-code = DEMO
 
 # The extractor class to use for type extraction
-lmc-raw-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-lmc-raw-data.type-extractor.file-format-type = TIFF
-lmc-raw-data.type-extractor.locator-type = RELATIVE_LOCATION
-lmc-raw-data.type-extractor.data-set-type = HCS_IMAGE
-lmc-raw-data.type-extractor.is-measured = true
-
-# The storage processor (IStorageProcessor implementation)
-lmc-raw-data.storage-processor = ch.systemsx.cisd.etlserver.BDSStorageProcessor
-lmc-raw-data.storage-processor.version = 1.1
-lmc-raw-data.storage-processor.sampleTypeCode = PLATE
-lmc-raw-data.storage-processor.sampleTypeDescription = Screening Plate
-lmc-raw-data.storage-processor.format = HCS_IMAGE V1.0
-lmc-raw-data.storage-processor.number_of_channels = 2
-lmc-raw-data.storage-processor.contains_original_data = TRUE
-lmc-raw-data.storage-processor.well_geometry = 3x3
-lmc-raw-data.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.lmc.BDSHCSImageFileExtractor
-lmc-raw-data.storage-processor.incoming_items_are_symbolic_link = true
-lmc-raw-data.storage-processor.file_extension = tif
+split-channels-images.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+split-channels-images.type-extractor.file-format-type = JPG
+split-channels-images.type-extractor.locator-type = RELATIVE_LOCATION
+split-channels-images.type-extractor.data-set-type = HCS_IMAGE
+split-channels-images.type-extractor.is-measured = true
+
+split-channels-images.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
+split-channels-images.storage-processor.generate-thumbnails = true
+split-channels-images.storage-processor.channel-names = blue, green
+split-channels-images.storage-processor.well_geometry = 3x3
+split-channels-images.storage-processor.deprecated-file-extractor = ch.systemsx.cisd.etlserver.imsb.HCSImageFileExtractor
+split-channels-images.storage-processor.data-source = imaging-db
 
-# ---------------------------------------------------------------------------
-# 'LMC JPG data' thread configuration
 # ---------------------------------------------------------------------------
 
 # The directory to watch for incoming data.
-lmc-jpg-data.incoming-dir = targets/incoming-lmc-jpg
-lmc-jpg-data.incoming-data-completeness-condition = auto-detection
+merged-channels-images.incoming-dir = ${incoming-root-dir}/incoming-images-merged-channels
+merged-channels-images.incoming-data-completeness-condition = auto-detection
 
 # The extractor class to use for code extraction
-lmc-jpg-data.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
-# Separator used to extract the barcode in the data set file name
-lmc-jpg-data.data-set-info-extractor.entity-separator = .
-lmc-jpg-data.data-set-info-extractor.index-of-sample-code = 0
-lmc-jpg-data.data-set-info-extractor.index-of-data-producer-code = 
-lmc-jpg-data.data-set-info-extractor.space-code = DEMO
+merged-channels-images.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+merged-channels-images.data-set-info-extractor.entity-separator = .
+merged-channels-images.data-set-info-extractor.index-of-sample-code = 0
+merged-channels-images.data-set-info-extractor.index-of-data-producer-code = 
+merged-channels-images.data-set-info-extractor.space-code = LIBRARY_TEST
 
 # The extractor class to use for type extraction
-lmc-jpg-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-lmc-jpg-data.type-extractor.file-format-type = JPG
-lmc-jpg-data.type-extractor.locator-type = RELATIVE_LOCATION
-lmc-jpg-data.type-extractor.data-set-type = HCS_IMAGE
-lmc-jpg-data.type-extractor.is-measured = false
-
-# The storage processor (IStorageProcessor implementation)
-lmc-jpg-data.storage-processor = ch.systemsx.cisd.etlserver.BDSStorageProcessor
-lmc-jpg-data.storage-processor.version = 1.1
-lmc-jpg-data.storage-processor.sampleTypeCode = PLATE
-lmc-jpg-data.storage-processor.sampleTypeDescription = Screening Plate
-lmc-jpg-data.storage-processor.format = HCS_IMAGE V1.0
-# There is only 1 file for all channels having 2 channels merged into one image.
-# We have to ignore the warning about missing channels during the upload.
-lmc-jpg-data.storage-processor.number_of_channels = 2
-lmc-jpg-data.storage-processor.contains_original_data = TRUE
-lmc-jpg-data.storage-processor.well_geometry = 3x3
-lmc-jpg-data.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.lmc.BDSHCSImageFileExtractor
-lmc-jpg-data.storage-processor.incoming_items_are_symbolic_link = true
-lmc-jpg-data.storage-processor.compute_file_checksums = false
-lmc-jpg-data.storage-processor.file_extension = jpg
+merged-channels-images.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+merged-channels-images.type-extractor.file-format-type = JPG
+merged-channels-images.type-extractor.locator-type = RELATIVE_LOCATION
+merged-channels-images.type-extractor.data-set-type = HCS_IMAGE
+merged-channels-images.type-extractor.is-measured = true
+
+merged-channels-images.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
+merged-channels-images.storage-processor.generate-thumbnails = true
+#merged-channels-images.storage-processor.thumbnail-max-width = 300
+#merged-channels-images.storage-processor.thumbnail-max-height = 200
+merged-channels-images.storage-processor.channel-names = green, blue
+merged-channels-images.storage-processor.well_geometry = 3x3
+merged-channels-images.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.lmc.HCSImageFileExtractor
+merged-channels-images.storage-processor.data-source = imaging-db
+# Available values: RED, BLUE or GREEN
+merged-channels-images.storage-processor.extract-single-image-channels = GREEN, BLUE
 
-# ---------------------------------------------------------------------------
-# 'LMC segmented JPG data' thread configuration
 # ---------------------------------------------------------------------------
 
 # The directory to watch for incoming data.
-lmc-segmented-jpg-data.incoming-dir = targets/incoming-lmc-segmented-jpg
-lmc-segmented-jpg-data.incoming-data-completeness-condition = auto-detection
+image-analysis-results.incoming-dir = ${incoming-root-dir}/incoming-analysis
+image-analysis-results.incoming-data-completeness-condition = auto-detection
 
 # The extractor class to use for code extraction
-lmc-segmented-jpg-data.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+image-analysis-results.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
 # Separator used to extract the barcode in the data set file name
-lmc-segmented-jpg-data.data-set-info-extractor.entity-separator = .
-lmc-segmented-jpg-data.data-set-info-extractor.index-of-sample-code = 0
-lmc-segmented-jpg-data.data-set-info-extractor.index-of-data-producer-code = 
-lmc-segmented-jpg-data.data-set-info-extractor.space-code = DEMO
+image-analysis-results.data-set-info-extractor.entity-separator = .
+image-analysis-results.data-set-info-extractor.index-of-sample-code = 0
+image-analysis-results.data-set-info-extractor.space-code = DEMO
 
 # The extractor class to use for type extraction
-lmc-segmented-jpg-data.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-lmc-segmented-jpg-data.type-extractor.file-format-type = JPG
-lmc-segmented-jpg-data.type-extractor.locator-type = RELATIVE_LOCATION
-#lmc-segmented-jpg-data.type-extractor.data-set-type = HCS_SEGMENTED_JPG_IMAGE
-lmc-segmented-jpg-data.type-extractor.data-set-type = HCS_IMAGE
-lmc-segmented-jpg-data.type-extractor.is-measured = false
+image-analysis-results.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+image-analysis-results.type-extractor.file-format-type = CSV
+image-analysis-results.type-extractor.locator-type = RELATIVE_LOCATION
+image-analysis-results.type-extractor.data-set-type = HCS_IMAGE_ANALYSIS_DATA
+image-analysis-results.type-extractor.is-measured = false
 
 # The storage processor (IStorageProcessor implementation)
-lmc-segmented-jpg-data.storage-processor = ch.systemsx.cisd.etlserver.BDSStorageProcessor
-lmc-segmented-jpg-data.storage-processor.version = 1.1
-lmc-segmented-jpg-data.storage-processor.sampleTypeCode = PLATE
-lmc-segmented-jpg-data.storage-processor.sampleTypeDescription = Screening Plate
-lmc-segmented-jpg-data.storage-processor.format = HCS_IMAGE V1.0
-# There is only 1 file for all channels having 2 channels merged into one image.
-# We have to ignore the warning about missing channels during the upload.
-lmc-segmented-jpg-data.storage-processor.number_of_channels = 2
-lmc-segmented-jpg-data.storage-processor.contains_original_data = TRUE
-lmc-segmented-jpg-data.storage-processor.well_geometry = 3x3
-lmc-segmented-jpg-data.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.lmc.BDSHCSImageFileExtractor
-lmc-segmented-jpg-data.storage-processor.incoming_items_are_symbolic_link = true
-lmc-segmented-jpg-data.storage-processor.file_extension = jpg
-
+image-analysis-results.storage-processor = ch.systemsx.cisd.openbis.dss.etl.featurevector.FeatureVectorStorageProcessor
+image-analysis-results.storage-processor.processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor
+image-analysis-results.storage-processor.data-source = imaging-db
+# semi-colon (;) by default 
+image-analysis-results.storage-processor.separator = ,
+image-analysis-results.storage-processor.ignore-comments = true
+image-analysis-results.storage-processor.well-name-row = row
+image-analysis-results.storage-processor.well-name-col = col
+image-analysis-results.storage-processor.well-name-col-is-alphanum = true
 
+# ---------------------------------------------------------------------------
+# GENEDATA formats
 # ---------------------------------------------------------------------------
 
 # The directory to watch for incoming data.
-genedata-raw-img-db.incoming-dir = targets/raw-images-db
-genedata-raw-img-db.incoming-data-completeness-condition = auto-detection
+genedata-merged-channels-images.incoming-dir = ${incoming-root-dir}/incoming-images-genedata
+genedata-merged-channels-images.incoming-data-completeness-condition = auto-detection
 
 # The extractor class to use for code extraction
-genedata-raw-img-db.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
+genedata-merged-channels-images.data-set-info-extractor = ch.systemsx.cisd.openbis.dss.etl.genedata.DataSetInfoExtractorForDataAcquisition
 # Separator used to extract the barcode in the data set file name
-genedata-raw-img-db.data-set-info-extractor.entity-separator = .
-genedata-raw-img-db.data-set-info-extractor.index-of-sample-code = 0
-genedata-raw-img-db.data-set-info-extractor.index-of-data-producer-code = 
-genedata-raw-img-db.data-set-info-extractor.space-code = DEMO
+genedata-merged-channels-images.data-set-info-extractor.entity-separator = .
+genedata-merged-channels-images.data-set-info-extractor.index-of-sample-code = 0
+genedata-merged-channels-images.data-set-info-extractor.index-of-data-producer-code = 
+genedata-merged-channels-images.data-set-info-extractor.space-code = DEMO
 
 # The extractor class to use for type extraction
-genedata-raw-img-db.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-genedata-raw-img-db.type-extractor.file-format-type = JPG
-genedata-raw-img-db.type-extractor.locator-type = RELATIVE_LOCATION
-genedata-raw-img-db.type-extractor.data-set-type = HCS_IMAGE
-genedata-raw-img-db.type-extractor.is-measured = true
-
-genedata-raw-img-db.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
-genedata-raw-img-db.storage-processor.well_geometry = 1x1
-genedata-raw-img-db.storage-processor.channel-names = dapi, gfp
-genedata-raw-img-db.storage-processor.deprecated-file-extractor = ch.systemsx.cisd.openbis.dss.etl.genedata.HCSImageFileExtractor
-genedata-raw-img-db.storage-processor.data-source = imaging-db
-# The storage processor (IStorageProcessor implementation)
-#genedata-raw-img-db.storage-processor = ch.systemsx.cisd.etlserver.BDSStorageProcessor
-#genedata-raw-img-db.storage-processor.sampleTypeCode = PLATE
-#genedata-raw-img-db.storage-processor.version = 1.1
-#genedata-raw-img-db.storage-processor.sampleTypeDescription = Screening Plate
-# There is only 1 file for all channels having 2 channels merged into one image.
-#genedata-raw-img-db.storage-processor.format = HCS_IMAGE V1.0
-# We have to ignore the warning about missing channels during the upload.
-#genedata-raw-img-db.storage-processor.number_of_channels = 2
-#genedata-raw-img-db.storage-processor.contains_original_data = TRUE
-#genedata-raw-img-db.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.genedata.HCSImageFileExtractor
-#genedata-raw-img-db.storage-processor.well_geometry = 1x1
-#genedata-raw-img-db.storage-processor.incoming_items_are_symbolic_link = true
-#genedata-raw-img-db.storage-processor.file_extension = jpeg
-
-# ---------------------------------------------------------------------------
-# GENEDATA images analysis results
-# ---------------------------------------------------------------------------
+genedata-merged-channels-images.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
+genedata-merged-channels-images.type-extractor.file-format-type = CSV
+genedata-merged-channels-images.type-extractor.locator-type = RELATIVE_LOCATION
+genedata-merged-channels-images.type-extractor.data-set-type = HCS_IMAGE_ANALYSIS_DATA
+genedata-merged-channels-images.type-extractor.is-measured = false
+
+genedata-merged-channels-images.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
+genedata-merged-channels-images.storage-processor.well_geometry = 1x1
+genedata-merged-channels-images.storage-processor.channel-names = dapi, gfp
+# Available values: RED, BLUE or GREEN
+genedata-merged-channels-images.storage-processor.extract-single-image-channels = BLUE, GREEN
+genedata-merged-channels-images.storage-processor.deprecated-file-extractor = ch.systemsx.cisd.openbis.dss.etl.genedata.HCSImageFileExtractor
+genedata-merged-channels-images.storage-processor.data-source = imaging-db
+
+#  --------------------------------------------------------------
 
 # The directory to watch for incoming data.
-genedata-image-analysis-results.incoming-dir = targets/incoming-genedata-feature-vectors
+genedata-image-analysis-results.incoming-dir = ${incoming-root-dir}/incoming-analysis-genedata
 genedata-image-analysis-results.incoming-data-completeness-condition = auto-detection
 
 # The extractor class to use for code extraction
@@ -426,68 +328,3 @@ genedata-image-analysis-results.type-extractor.is-measured = false
 
 # The storage processor (IStorageProcessor implementation)
 genedata-image-analysis-results.storage-processor = ch.systemsx.cisd.openbis.dss.etl.genedata.FeatureStorageProcessor
-
-# ---------------------------------------------------------------------------
-
-# The directory to watch for incoming data.
-pelk-raw-img-db.incoming-dir = targets/raw-images-pelk-db
-pelk-raw-img-db.incoming-data-completeness-condition = auto-detection
-
-# The extractor class to use for code extraction
-pelk-raw-img-db.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
-pelk-raw-img-db.data-set-info-extractor.entity-separator = ${data-set-file-name-entity-separator}
-pelk-raw-img-db.data-set-info-extractor.index-of-sample-code = -1
-pelk-raw-img-db.data-set-info-extractor.index-of-data-producer-code = 1
-pelk-raw-img-db.data-set-info-extractor.index-of-data-production-date = 0
-pelk-raw-img-db.data-set-info-extractor.space-code = DEMO
-
-# The extractor class to use for type extraction
-pelk-raw-img-db.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-pelk-raw-img-db.type-extractor.file-format-type = PNG
-pelk-raw-img-db.type-extractor.locator-type = RELATIVE_LOCATION
-pelk-raw-img-db.type-extractor.data-set-type = HCS_IMAGE
-pelk-raw-img-db.type-extractor.is-measured = true
-
-pelk-raw-img-db.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
-pelk-raw-img-db.storage-processor.channel-names = blue, green
-pelk-raw-img-db.storage-processor.well_geometry = 3x3
-pelk-raw-img-db.storage-processor.deprecated-file-extractor = ch.systemsx.cisd.etlserver.imsb.HCSImageFileExtractor
-pelk-raw-img-db.storage-processor.data-source = imaging-db
-
-
-# ---------------------------------------------------------------------------
-
-# The directory to watch for incoming data.
-lmc-raw-img-db.incoming-dir = targets/raw-images-lmc-db
-lmc-raw-img-db.incoming-data-completeness-condition = auto-detection
-
-# The extractor class to use for code extraction
-lmc-raw-img-db.data-set-info-extractor = ch.systemsx.cisd.etlserver.DefaultDataSetInfoExtractor
-lmc-raw-img-db.data-set-info-extractor.entity-separator = .
-lmc-raw-img-db.data-set-info-extractor.index-of-sample-code = 0
-lmc-raw-img-db.data-set-info-extractor.index-of-data-producer-code = 
-lmc-raw-img-db.data-set-info-extractor.space-code = DEMO
-
-# The extractor class to use for type extraction
-lmc-raw-img-db.type-extractor = ch.systemsx.cisd.etlserver.SimpleTypeExtractor
-lmc-raw-img-db.type-extractor.file-format-type = JPG
-lmc-raw-img-db.type-extractor.locator-type = RELATIVE_LOCATION
-lmc-raw-img-db.type-extractor.data-set-type = HCS_IMAGE
-lmc-raw-img-db.type-extractor.is-measured = true
-
-lmc-raw-img-db.storage-processor = ch.systemsx.cisd.openbis.dss.etl.PlateStorageProcessor
-lmc-raw-img-db.storage-processor.channel-names = green, blue
-lmc-raw-img-db.storage-processor.well_geometry = 3x3
-lmc-raw-img-db.storage-processor.file-extractor = ch.systemsx.cisd.openbis.dss.etl.lmc.HCSImageFileExtractor
-lmc-raw-img-db.storage-processor.data-source = imaging-db
-lmc-raw-img-db.storage-processor.extract-single-image-channels = BLUE, GREEN
-#lmc-raw-img-db.storage-processor.compute_file_checksums = false
-
-# ---------------------------------------------------------------------------
-# (optional) archiver configuration
-# ---------------------------------------------------------------------------
-
-# Configuration of an archiver task. All properties are prefixed with 'archiver.'.
-
-# Archiver class specification (together with the list of packages this class belongs to).
-#archiver.class = ch.systemsx.cisd.openbis.dss.generic.server.plugins.demo.DemoArchiver