EDNA Plugin: EDPluginBioSaxsSmartMergev1_2

Name:EDPluginBioSaxsSmartMergev1_2
Project:bioSaxsv1
Path:bioSaxsv1/plugins/EDPluginBioSaxsSmartMergev1_2.py
Author:Jérôme Kieffer
Date:20110924
Copyright:2011, ESRF Grenoble
License:GPLv3+
Module doc:
Class doc:This plugin takes a set of input data files (1D SAXS) measure
their differences (versus previous and versus first) and merge those which are equivalent
v1.1 adds information from AutoRg
Controlled plugins:
- Execplugins/WaitMultifile
- EdnaSaxs/Atsas/DatCmp
- EdnaSaxs/Atsas/DatAver
- EdnaSaxs/Atsas/AutoRg

Datamodels: XSDataInputBioSaxsSmartMergev1_0
targetNamespace "http://www.edna-site.org"

import XSDataCommon.XSConfiguration
import XSDataCommon.XSData
import XSDataCommon.XSDataBoolean
import XSDataCommon.XSDataFile
import XSDataCommon.XSDataDouble
import XSDataCommon.XSDataDoubleWithUnit
import XSDataCommon.XSDataInput
import XSDataCommon.XSDataInteger
import XSDataCommon.XSDataString
import XSDataCommon.XSDataStatus
import XSDataCommon.XSDataResult
import XSDataCommon.XSDataImage
import XSDataCommon.XSDataLength
import XSDataCommon.XSDataWavelength
import XSDataCommon.XSDataTime
import XSDataEdnaSaxs.XSDataAutoRg
import XSDataEdnaSaxs.XSDataGnom
import XSDataEdnaSaxs.XSDataResultDatGnom
import XSDataEdnaSaxs.XSDataResultDatPorod

/*******************************************
  *  Common types used only in BioSaxs
  ********************************************/
complex type XSDataFileSeries extends XSData {
    files : XSDataFile []
}


complex type XSDataInputBioSaxsSample extends XSDataInput{
    "temporary class for multiple inhertitance emulation"
    concentration : XSDataDouble optional
    comments : XSDataString optional
    code : XSDataString optional
}

complex type XSDataInputBioSaxsSampleExperiment extends XSDataInputBioSaxsSample{
    "temporary class for multiple inhertitance emulation"
    detector : XSDataString optional
    detectorDistance : XSDataLength optional
    pixelSize_1 : XSDataLength optional
    pixelSize_2 : XSDataLength optional
    beamCenter_1 : XSDataDouble optional
    beamCenter_2 : XSDataDouble optional
    beamStopDiode : XSDataDouble optional
    wavelength : XSDataWavelength optional
    machineCurrent : XSDataDouble optional
    maskFile : XSDataImage optional
    normalizationFactor : XSDataDouble optional
    storageTemperature: XSDataDouble optional
    exposureTemperature: XSDataDouble optional
    exposureTime: XSDataTime optional
    frameNumber: XSDataInteger optional
    frameMax: XSDataInteger optional
    timeOfFrame: XSDataTime  optional
    }

complex type XSDataResultBioSaxsSample extends XSDataResult{
    "temporary class for multiple inhertitance emulation"
    concentration : XSDataDouble optional
    comments : XSDataString optional
    code : XSDataString optional
    }

complex type XSDataResultBioSaxsSampleExperiment extends XSDataResultBioSaxsSample{
    "temporary class for multiple inhertitance emulation"
    detector : XSDataString optional
    detectorDistance : XSDataLength optional
    pixelSize_1 : XSDataLength optional
    pixelSize_2 : XSDataLength optional
    beamCenter_1 : XSDataDouble optional
    beamCenter_2 : XSDataDouble optional
    beamStopDiode : XSDataDouble optional
    wavelength : XSDataWavelength optional
    machineCurrent : XSDataDouble optional
    maskFile : XSDataImage optional
    normalizationFactor : XSDataDouble optional
    storageTemperature: XSDataDouble optional
    exposureTemperature: XSDataDouble optional
    exposureTime: XSDataTime optional
    frameNumber: XSDataInteger optional
    frameMax: XSDataInteger optional
    timeOfFrame: XSDataTime  optional
    }


complex type XSDataBioSaxsExperimentSetup extends XSData{
    detector : XSDataString optional
    detectorDistance : XSDataLength optional
    pixelSize_1 : XSDataLength optional
    pixelSize_2 : XSDataLength optional
    beamCenter_1 : XSDataDouble optional
    beamCenter_2 : XSDataDouble optional
    beamStopDiode : XSDataDouble optional
    wavelength : XSDataWavelength optional
    machineCurrent : XSDataDouble optional
    maskFile : XSDataImage optional
    normalizationFactor : XSDataDouble optional
    storageTemperature: XSDataDouble optional
    exposureTemperature: XSDataDouble optional
    exposureTime: XSDataTime optional
    frameNumber: XSDataInteger optional
    frameMax: XSDataInteger optional
    timeOfFrame: XSDataTime  optional
}

complex type XSDataBioSaxsSample extends XSData {
    concentration : XSDataDouble optional
    comments : XSDataString optional
    code : XSDataString optional
}


/**********************************************************
 *  Start of classes XSDataInput/XSDataResult used outside
 ***********************************************************/

complex type XSDataInputBioSaxsAsciiExportv1_0 extends XSDataInput {
    integratedImage : XSDataImage
    integratedCurve : XSDataFile
    sample: XSDataBioSaxsSample optional
    experimentSetup: XSDataBioSaxsExperimentSetup optional
}

complex type XSDataResultBioSaxsAsciiExportv1_0 extends XSDataResult {
    integratedCurve : XSDataFile
    processLog : XSDataString
}

complex type XSDataInputBioSaxsAveragev1_0 extends XSDataInputBioSaxsSampleExperiment{
    integratedImage : XSDataImage []
    integratedImageSize : XSDataInteger
    averagedImage : XSDataImage
    averagedCurve : XSDataFile
    logFile : XSDataFile
}
complex type XSDataResultBioSaxsAveragev1_0 extends XSDataResult {
    averagedImage : XSDataImage
    averagedCurve : XSDataFile
    processLog : XSDataString
    logFile : XSDataFile
}


complex type XSDataInputBioSaxsAzimutIntv1_0 extends XSDataInput{
    normalizedImage : XSDataImage
    normalizedImageSize : XSDataInteger optional
    integratedImage : XSDataImage optional
    integratedCurve : XSDataFile
    correctedImage : XSDataImage optional
    sample: XSDataBioSaxsSample
    experimentSetup: XSDataBioSaxsExperimentSetup
    
}

complex type XSDataResultBioSaxsAzimutIntv1_0 extends XSDataResult {
    correctedImage : XSDataImage
    integratedImage : XSDataImage
    integratedCurve : XSDataFile
//    processLog : XSDataString
    sample: XSDataBioSaxsSample    optional
    experimentSetup: XSDataBioSaxsExperimentSetup optional
    
}

complex type XSDataInputBioSaxsMetadatav1_0 extends XSDataInputBioSaxsSampleExperiment{
    inputImage : XSDataImage
    outputImage : XSDataImage optional
}

complex type XSDataResultBioSaxsMetadatav1_0 extends XSDataResultBioSaxsSampleExperiment{
    sample : XSDataBioSaxsSample optional
    experimentSetup: XSDataBioSaxsExperimentSetup  optional
    outputImage : XSDataImage optional
}

complex type XSDataInputBioSaxsNormalizev1_0 extends  XSDataInput{
    rawImage : XSDataImage
    logFile : XSDataFile optional
    normalizedImage : XSDataImage
    rawImageSize : XSDataInteger
    sample: XSDataBioSaxsSample
    experimentSetup: XSDataBioSaxsExperimentSetup
    
}

complex type XSDataResultBioSaxsNormalizev1_0 extends XSDataResult {
    normalizedImage : XSDataImage
    logFile : XSDataFile
    processLog : XSDataString
}

complex type XSDataInputBioSaxsProcessOneFilev1_0 extends XSDataInput{
    "Plugin that runs subsequently Normalize and Azimuthal integration"
    rawImage : XSDataImage
    sample: XSDataBioSaxsSample
    experimentSetup: XSDataBioSaxsExperimentSetup
    rawImageSize : XSDataInteger optional
    logFile : XSDataFile optional
    normalizedImage : XSDataImage optional
    integratedImage : XSDataImage optional
    integratedCurve : XSDataFile optional
    runId: XSDataString optional
    frameId: XSDataInteger optional
}

complex type XSDataResultBioSaxsProcessOneFilev1_0 extends XSDataResult {
    normalizedImage: XSDataImage
    integratedImage: XSDataImage optional
    integratedCurve: XSDataFile
    //logFile : XSDataFile
//    processLog : XSDataString => use executive summary
    sample: XSDataBioSaxsSample    optional
    experimentSetup: XSDataBioSaxsExperimentSetup optional
}


complex type XSDataInputBioSaxsSmartMergev1_0 extends XSDataInput  {
    inputCurves: XSDataFile []
    absoluteFidelity: XSDataDouble optional 
    relativeFidelity: XSDataDouble optional
    sample: XSDataBioSaxsSample optional
    mergedCurve: XSDataFile
    subtractedCurve: XSDataFile optional
    runId: XSDataString optional
    bufferCurves: XSDataFile [] optional
}

complex type XSDataResultBioSaxsSmartMergev1_0 extends XSDataResult {
    mergedCurve : XSDataFile
    autoRg: XSDataAutoRg optional
    gnom: XSDataGnom optional 
    volume: XSDataDoubleWithUnit optional
    subtractedCurve: XSDataFile optional
}


complex type XSDataInputBioSaxsSubtractv1_0 extends XSDataInput  {
    "Runs sequentially subtraction of buffer and SaxsAnalysis"
    sampleCurve: XSDataFile
    bufferCurves: XSDataFile []   optional
    sample: XSDataBioSaxsSample optional
    subtractedCurve: XSDataFile optional
    gnomFile: XSDataFile optional
}

complex type XSDataResultBioSaxsSubtractv1_0 extends XSDataResult {
    subtractedCurve : XSDataFile
    autorg: XSDataAutoRg optional
    gnom: XSDataGnom optional
    volume: XSDataDoubleWithUnit optional
    }


complex type XSDataInputBioSaxsHPLCv1_0 extends XSDataInputBioSaxsProcessOneFilev1_0{
    "Plugin that runs subsequently ProcessOneFile, subtraction of buffer and SaxsAnalysis"
//    rawImage : XSDataImage
//    sample: XSDataBioSaxsSample
//    experimentSetup: XSDataBioSaxsExperimentSetup
//    rawImageSize : XSDataInteger optional
//    logFile : XSDataFile optional
//    normalizedImage : XSDataImage optional
//    integratedCurve : XSDataFile optional
//    runId: XSDataString optional
//    frameId: XSDataInteger optional
    bufferCurve : XSDataFile optional
    subtractedCurve: XSDataFile optional
    gnomFile: XSDataFile optional
    hplcFile: XSDataFile optional
}

complex type XSDataResultBioSaxsHPLCv1_0 extends XSDataResultBioSaxsProcessOneFilev1_0{
    "Plugin that runs subsequently ProcessOneFile, subtraction of buffer and SaxsAnalysis"
    bufferCurve: XSDataFile optional
    subtractedCurve : XSDataFile optional
    autoRg: XSDataAutoRg optional
    gnom: XSDataGnom optional
    volume: XSDataDoubleWithUnit optional
    hplcFile: XSDataFile optional
    mergedCurves: XSDataFile [] optional
    hplcImage:XSDataFile optional
}


complex type XSDataInputBioSaxsToSASv1_0 extends XSDataInput  {
    "This is just a wrapper for the SAS downstream pipeline"
    subtractedCurve: XSDataFile
    firstPoint: XSDataInteger optional
    lastPoint: XSDataInteger optional
    qMax: XSDataDouble optional
    destinationDirectory: XSDataFile optional
}

complex type XSDataResultBioSaxsToSASv1_0 extends XSDataResult {
    htmlPage: XSDataFile
}

complex type XSDataInputBioSaxsReduceFileSeriev1_0 extends XSDataInput{
    "Run ProcessOneFile on each file of a time time serie "    
    fileSerie: XSDataFileSeries
    sample: XSDataBioSaxsSample
    experimentSetup: XSDataBioSaxsExperimentSetup
    directory1D: XSDataFile
    directory2D: XSDataFile
    directoryMisc : XSDataFile
    forceReprocess: XSDataBoolean optional "if not present or False, just return the existing file, else force reprocessing in different folders"
    absoluteFidelity: XSDataDouble optional 
    relativeFidelity: XSDataDouble optional
    rawImageSize: XSDataInteger optional
}

complex type XSDataResultBioSaxsReduceFileSeriev1_0 extends XSDataResult {
    mergedCurve : XSDataFile
    directory1D : XSDataFile
    directory2D : XSDataFile
    directoryMisc : XSDataFile
}


complex type XSDataInputBioSaxsSingleSamplev1_0 extends XSDataInputBioSaxsSampleExperiment{
    "Class for precessing a single sample (at 1 single concentration)"
//    specVersion : XSDataString optional
//    specVariableStatus : XSDataString optional
//    specVariableAbort : XSDataString optional
//    runNumber : XSDataInteger
//    frames : XSDataInteger []
//    isOnline : XSDataBoolean
//    prefix : XSDataString
    directory1D : XSDataFile
    directory2D : XSDataFile
    directoryMisc : XSDataFile
    bufferSeries: XSDataFileSeries []
    sampleSeries: XSDataFileSeries []
    forceReprocess: XSDataBoolean optional
}

complex type XSDataResultBioSaxsSingleSamplev1_0 extends XSDataResult{
    "Class for precessing a single sample (at 1 single concentration)"
    outputCurve: XSDataFile
    directory1D : XSDataFile
    directory2D : XSDataFile
}




/**************************************
 *Start of a deprecated classes zone  * 
 **************************************/
/*
complex type XSDataInputBioSaxsReprocessv1_0 extends XSDataInputBioSaxsSampleExperiment{
    specVersion : XSDataString optional
    specVariableStatus : XSDataString optional
    specVariableAbort : XSDataString optional
    directory : XSDataFile
    frameFirst : XSDataInteger optional
    frameLast : XSDataInteger optional
    isOnline : XSDataBoolean optional
    keepOriginal : XSDataBoolean optional
    normalisation : XSDataString
    operation : XSDataString
    prefix : XSDataString
    runNumber : XSDataInteger [] optional
}
complex type XSDataResultBioSaxsReprocessv1_0 extends XSDataResult {
}

complex type XSDataSpecCommunication {
    specVersion : XSDataString optional
    specVariableStatus : XSDataString optional
    specVariableAbort : XSDataString    optional
}
 */