diff --git a/integration-tests/templates/data-ibrain2/scripts/commonDropbox.py b/integration-tests/templates/data-ibrain2/scripts/commonDropbox.py index 75ae339ff3c67c35f8d3ab60246940c0ce692aa6..c6ddb2ffa478b74b2738ffadbd24f921c92fb68c 100755 --- a/integration-tests/templates/data-ibrain2/scripts/commonDropbox.py +++ b/integration-tests/templates/data-ibrain2/scripts/commonDropbox.py @@ -184,7 +184,7 @@ class RegistrationConfirmationUtils: # -------------- -def setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory): +def setImageDatasetPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory): imageRegistrationDetails = factory.createImageRegistrationDetails(imageDataset, incoming) for propertyCode, value in metadataParser.getDatasetPropertiesIter(): imageRegistrationDetails.setPropertyValue(propertyCode, value) @@ -193,11 +193,31 @@ def setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, inc dataset = tr.createNewDataSet(imageRegistrationDetails) dataset.setParentDatasets([metadataParser.getParentDatasetPermId()]) imageDataSetFolder = tr.moveFile(incoming.getPath(), dataset) - ok = tr.commit() - if ok: - print "success", iBrain2DatasetId + if tr.commit(): createSuccessStatus(iBrain2DatasetId, dataset, incoming.getPath()) + +def registerDerivedBlackBoxDataset(state, service, factory, incoming, metadataParser, datasetType, fileFormatType): + iBrain2DatasetId = metadataParser.getIBrain2DatasetId() + openbisDatasetParent = metadataParser.getParentDatasetPermId() + + (space, plate) = tryGetConnectedPlate(state, openbisDatasetParent, iBrain2DatasetId, incoming.getPath()) + if plate == None: + return + transaction = service.transaction(incoming, factory) + dataset = transaction.createNewDataSet() + dataset.setDataSetType(datasetType) + dataset.setFileFormatType(fileFormatType) + dataset.setSample(transaction.getSample('/'+space+'/'+plate)) + dataset.setMeasuredData(False) + for propertyCode, value in metadataParser.getDatasetPropertiesIter(): + dataset.setPropertyValue(propertyCode, value) + dataset.setParentDatasets([metadataParser.getParentDatasetPermId()]) + + transaction.moveFile(incoming.getPath(), dataset) + if transaction.commit(): + createSuccessStatus(iBrain2DatasetId, dataset, incoming.getPath()) + """ Returns: (plateSpace, plateCode) tuple for the plate connected with the specified dataset @@ -214,6 +234,7 @@ def tryGetConnectedPlate(state, openbisDatasetId, iBrain2DatasetId, incomingPath errorMsg = "No plate is connected to the dataset: "+openbisDatasetId+"." else: errorMsg = "Dataset does not exist or is not accessible: "+openbisDatasetId+". Maybe the dataset has not been registered yet. Try again later." + print errorMsg RegistrationConfirmationUtils().createFailureStatus(iBrain2DatasetId, errorMsg, incomingPath) return (None, None) diff --git a/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_csv.py b/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_csv.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a3276bb96e4c3c9f038c501d56d9eb33110e95f4 100755 --- a/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_csv.py +++ b/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_csv.py @@ -0,0 +1,19 @@ +#! /usr/bin/env python + +import commonImageDropbox +import commonDropbox + +reload(commonImageDropbox) +reload(commonDropbox) + +# Global variable where we set the iBrain2 id of the dataset at the beginning, +# so that the rollback can use it as well. +iBrain2DatasetId = None + +def rollback_transaction(service, transaction, algorithmRunner, throwable): + commonDropbox.createFailureStatus(iBrain2DatasetId, throwable, incoming) + +if incoming.isDirectory(): + metadataParser = commonDropbox.DerivedDatasetMetadataParser(incoming.getPath()) + iBrain2DatasetId = metadataParser.getIBrain2DatasetId() + commonDropbox.registerDerivedBlackBoxDataset(state, service, factory, incoming, metadataParser, 'HCS_ANALYSIS_CELL_FEATURES_CSV', 'CSV') \ No newline at end of file diff --git a/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_mat.py b/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_mat.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..aafd2dce1758da6e868e4c6d2076667a9f2238fa 100755 --- a/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_mat.py +++ b/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_cell_features_mat.py @@ -0,0 +1,19 @@ +#! /usr/bin/env python + +import commonImageDropbox +import commonDropbox + +reload(commonImageDropbox) +reload(commonDropbox) + +# Global variable where we set the iBrain2 id of the dataset at the beginning, +# so that the rollback can use it as well. +iBrain2DatasetId = None + +def rollback_transaction(service, transaction, algorithmRunner, throwable): + commonDropbox.createFailureStatus(iBrain2DatasetId, throwable, incoming) + +if incoming.isDirectory(): + metadataParser = commonDropbox.DerivedDatasetMetadataParser(incoming.getPath()) + iBrain2DatasetId = metadataParser.getIBrain2DatasetId() + commonDropbox.registerDerivedBlackBoxDataset(state, service, factory, incoming, metadataParser, 'HCS_ANALYSIS_CELL_FEATURES_MAT', 'MAT') diff --git a/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_well_quality.py b/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_well_quality.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f78ec67e6c3506a3a3ba7ea1a06c7998fe8c805d 100755 --- a/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_well_quality.py +++ b/integration-tests/templates/data-ibrain2/scripts/hcs_analysis_well_quality.py @@ -0,0 +1,37 @@ +#! /usr/bin/env python + +import commonImageDropbox +import commonDropbox + +reload(commonImageDropbox) +reload(commonDropbox) + +# Global variable where we set the iBrain2 id of the dataset at the beginning, +# so that the rollback can use it as well. +iBrain2DatasetId = None + +def register(incomingPath): + metadataParser = commonDropbox.DerivedDatasetMetadataParser(incomingPath) + iBrain2DatasetId = metadataParser.getIBrain2DatasetId() + openbisDatasetParent = metadataParser.getParentDatasetPermId() + + (space, plate) = commonDropbox.tryGetConnectedPlate(state, openbisDatasetParent, iBrain2DatasetId, incomingPath) + if plate == None: + return + + imageDataset = commonImageDropbox.IBrain2ImageDataSetConfig() + imageDataset.setOverviewImageDatasetType() + imageDataset.setPlate(space, plate) + imageDataset.setFileFormatType("JPG") + imageDataset.setRecognizedImageExtensions(["jpg", "jpeg", "png", "gif"]) + imageDataset.setStoreChannelsOnExperimentLevel(False) + imageDataset.setGenerateThumbnails(True) + imageDataset.setMaxThumbnailWidthAndHeight(imageDataset.THUMBANAIL_SIZE) + + commonDropbox.setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory) + +def rollback_transaction(service, transaction, algorithmRunner, throwable): + commonDropbox.createFailureStatus(iBrain2DatasetId, throwable, incoming) + +if incoming.isDirectory(): + register(incoming.getPath()) \ No newline at end of file diff --git a/integration-tests/templates/data-ibrain2/scripts/hcs_image_overview.py b/integration-tests/templates/data-ibrain2/scripts/hcs_image_overview.py index 40ea989248d019d60f59a70bdbf90a379a2d8d61..500dc57059e20890a77f0965563cc074064a2cf2 100755 --- a/integration-tests/templates/data-ibrain2/scripts/hcs_image_overview.py +++ b/integration-tests/templates/data-ibrain2/scripts/hcs_image_overview.py @@ -12,6 +12,7 @@ iBrain2DatasetId = None def register(incomingPath): metadataParser = commonDropbox.DerivedDatasetMetadataParser(incomingPath) + global iBrain2DatasetId iBrain2DatasetId = metadataParser.getIBrain2DatasetId() openbisDatasetParent = metadataParser.getParentDatasetPermId() @@ -28,7 +29,7 @@ def register(incomingPath): imageDataset.setGenerateThumbnails(True) imageDataset.setMaxThumbnailWidthAndHeight(imageDataset.THUMBANAIL_SIZE) - commonDropbox.setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory) + commonDropbox.setImageDatasetPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory) def rollback_transaction(service, transaction, algorithmRunner, throwable): commonDropbox.createFailureStatus(iBrain2DatasetId, throwable, incoming) diff --git a/integration-tests/templates/data-ibrain2/scripts/hcs_image_segmentation.py b/integration-tests/templates/data-ibrain2/scripts/hcs_image_segmentation.py index 3f728a455a90e997444ff0cd7f0ca50fb75a2b50..b514027f8a30d12935478509b093be9d96b50feb 100755 --- a/integration-tests/templates/data-ibrain2/scripts/hcs_image_segmentation.py +++ b/integration-tests/templates/data-ibrain2/scripts/hcs_image_segmentation.py @@ -33,10 +33,9 @@ def register(incomingPath): imageDataset.setStoreChannelsOnExperimentLevel(False) imageDataset.setOriginalDataStorageFormat(OriginalDataStorageFormat.HDF5) - commonDropbox.setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory) + commonDropbox.setImageDatasetPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, service, factory) def rollback_transaction(service, transaction, algorithmRunner, throwable): - print 'failure', iBrain2DatasetId commonDropbox.createFailureStatus(iBrain2DatasetId, throwable, incoming) if incoming.isDirectory():