Search in sources :

Example 6 with TaskContext

use of org.vcell.workflow.TaskContext in project vcell by virtualcell.

the class WorkflowTest method main.

public static void main(String[] args) {
    if (args.length != 2) {
        System.out.println("expecting 2 arguments");
        System.out.println("usage: java " + Workflow.class.getSimpleName() + " workingdir workflowInputFile");
        System.out.println("workingdir example: " + "D:\\developer\\eclipse\\workspace\\VCell_5.4_vmicro\\datadir");
        System.out.println("workflowInputFile example: " + "D:\\developer\\eclipse\\workspace\\VCell_5.4_vmicro\\workflow1.txt");
        System.exit(1);
    }
    try {
        // PropertyLoader.loadProperties();
        // workflowInputFile "C:\\developer\\eclipse\\workspace\\VCell_5.3_vmicro\\workflow1.txt"
        File workingDirectory = new File(args[0]);
        LocalWorkspace localWorkspace = new LocalWorkspace(workingDirectory);
        Repository repository = new MemoryRepository();
        String workflowLanguageText = BeanUtils.readBytesFromFile(new File(args[1]), null);
        Workflow workflow = Workflow.parse(repository, localWorkspace, workflowLanguageText);
        System.err.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> using hard-coded example instead <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
        // File vfrapFile = new File("D:\\Developer\\eclipse\\workspace_refactor\\VCell_5.4_vmicro\\3D_FRAP_2_ZProjection_Simulation1.vfrap");
        // Workflow workflow = getVFrapSimpleExample(workingDirectory, vfrapFile);
        TaskContext taskContext = new TaskContext(workflow, repository, localWorkspace);
        ArrayList<Issue> issues = new ArrayList<Issue>();
        IssueContext issueContext = new IssueContext();
        workflow.gatherIssues(issueContext, issues);
        // WorkflowJGraphProxy workflowJGraphProxy = new WorkflowJGraphProxy(workflow);
        // displayWorkflowGraphJGraphX(workflowJGraphProxy);
        WorkflowUtilities.displayWorkflowGraph(workflow);
        WorkflowUtilities.displayWorkflowTable(taskContext);
        workflow.reportIssues(issues, Issue.SEVERITY_INFO, true);
        // 
        // execute the workflow
        // 
        workflow.compute(taskContext, new WorkflowUtilities.Progress());
    } catch (Exception e) {
        e.printStackTrace(System.out);
    }
}
Also used : LocalWorkspace(org.vcell.vmicro.workflow.data.LocalWorkspace) TaskContext(org.vcell.workflow.TaskContext) Issue(org.vcell.util.Issue) ArrayList(java.util.ArrayList) Workflow(org.vcell.workflow.Workflow) MemoryRepository(org.vcell.workflow.MemoryRepository) Repository(org.vcell.workflow.Repository) MemoryRepository(org.vcell.workflow.MemoryRepository) IssueContext(org.vcell.util.IssueContext) File(java.io.File)

Example 7 with TaskContext

use of org.vcell.workflow.TaskContext in project vcell by virtualcell.

the class WorkflowModelPanel method main.

/**
 * main entrypoint - starts the part when it is run as an application
 * @param args java.lang.String[]
 */
public static void main(java.lang.String[] args) {
    try {
        JFrame frame = new javax.swing.JFrame();
        WorkflowModelPanel aWorkflowModelPanel;
        aWorkflowModelPanel = new WorkflowModelPanel();
        frame.setContentPane(aWorkflowModelPanel);
        frame.setSize(aWorkflowModelPanel.getSize());
        frame.addWindowListener(new java.awt.event.WindowAdapter() {

            @Override
            public void windowClosing(java.awt.event.WindowEvent e) {
                System.exit(0);
            }
        });
        LocalWorkspace localWorkspace = new LocalWorkspace(new File("C:\\temp"));
        Workflow workflow = new Workflow("temp");
        class Task1 extends Task {

            final DataInput<Double> in = new DataInput<Double>(Double.class, "in", this);

            final DataOutput<Double> out = new DataOutput<Double>(Double.class, "out", this);

            public Task1() {
                super("t1");
                addInput(in);
                addOutput(out);
            }

            @Override
            protected void compute0(TaskContext context, ClientTaskStatusSupport clientTaskStatusSupport) throws Exception {
                System.out.println("executing task " + getName());
            }
        }
        ;
        class Task2 extends Task {

            final DataInput<Double> in = new DataInput<Double>(Double.class, "in", this);

            final DataOutput<Double> out = new DataOutput<Double>(Double.class, "out", this);

            public Task2() {
                super("t2");
                addInput(in);
                addOutput(out);
            }

            @Override
            protected void compute0(TaskContext context, ClientTaskStatusSupport clientTaskStatusSupport) throws Exception {
                System.out.println("executing task " + getName());
            }
        }
        ;
        Task1 task1 = new Task1();
        workflow.addTask(task1);
        Task2 task2 = new Task2();
        workflow.addTask(task2);
        workflow.connect2(task1.out, task2.in);
        aWorkflowModelPanel.setWorkflow(workflow);
        frame.setVisible(true);
        java.awt.Insets insets = frame.getInsets();
        frame.setSize(frame.getWidth() + insets.left + insets.right, frame.getHeight() + insets.top + insets.bottom);
        frame.setVisible(true);
    } catch (Throwable exception) {
        System.err.println("Exception occurred in main() of javax.swing.JPanel");
        exception.printStackTrace(System.out);
    }
}
Also used : DataOutput(org.vcell.workflow.DataOutput) LocalWorkspace(org.vcell.vmicro.workflow.data.LocalWorkspace) Task(org.vcell.workflow.Task) TaskContext(org.vcell.workflow.TaskContext) Workflow(org.vcell.workflow.Workflow) DataInput(org.vcell.workflow.DataInput) JFrame(javax.swing.JFrame) ClientTaskStatusSupport(org.vcell.util.ClientTaskStatusSupport) File(java.io.File)

Example 8 with TaskContext

use of org.vcell.workflow.TaskContext in project vcell by virtualcell.

the class KenworthyTest method main.

public static void main(String[] args) {
    if (args.length != 2) {
        System.out.println("expecting 2 arguments");
        System.out.println("usage: java " + Workflow.class.getSimpleName() + " workingdir workflowInputFile");
        System.out.println("workingdir example: " + "D:\\developer\\eclipse\\workspace\\VCell_5.4_vmicro\\datadir");
        System.out.println("workflowInputFile example: " + "D:\\developer\\eclipse\\workspace\\VCell_5.4_vmicro\\workflow1.txt");
        System.exit(1);
    }
    try {
        // PropertyLoader.loadProperties();
        // workflowInputFile "C:\\developer\\eclipse\\workspace\\VCell_5.3_vmicro\\workflow1.txt"
        File workingDirectory = new File(args[0]);
        LocalWorkspace localWorkspace = new LocalWorkspace(workingDirectory);
        Repository repository = new MemoryRepository();
        // String workflowLanguageText = BeanUtils.readBytesFromFile(new File(args[1]), null);
        // Workflow workflow = Workflow.parse(localWorkspace, workflowLanguageText);
        System.err.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> using hard-coded example instead <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
        File vfrapFile = new File("D:\\Developer\\eclipse\\workspace_refactor\\VCell_5.4_vmicro\\3D_FRAP_2_ZProjection_Simulation1.vfrap");
        // Workflow workflow = getVFrapSimpleExample(workingDirectory, vfrapFile);
        // Workflow workflow = getFakeDataExample(workingDirectory);
        Workflow workflow = getInteractiveModelWorkflow(repository, workingDirectory);
        TaskContext taskContext = new TaskContext(workflow, repository, localWorkspace);
        ArrayList<Issue> issues = new ArrayList<Issue>();
        IssueContext issueContext = new IssueContext();
        workflow.gatherIssues(issueContext, issues);
        // WorkflowJGraphProxy workflowJGraphProxy = new WorkflowJGraphProxy(workflow);
        // displayWorkflowGraphJGraphX(workflowJGraphProxy);
        WorkflowUtilities.displayWorkflowGraph(workflow);
        WorkflowUtilities.displayWorkflowTable(taskContext);
        workflow.reportIssues(issues, Issue.SEVERITY_INFO, true);
        // 
        // execute the workflow
        // 
        workflow.compute(taskContext, new WorkflowUtilities.Progress());
    } catch (Exception e) {
        e.printStackTrace(System.out);
    }
}
Also used : LocalWorkspace(org.vcell.vmicro.workflow.data.LocalWorkspace) TaskContext(org.vcell.workflow.TaskContext) Issue(org.vcell.util.Issue) ArrayList(java.util.ArrayList) Workflow(org.vcell.workflow.Workflow) Repository(org.vcell.workflow.Repository) MemoryRepository(org.vcell.workflow.MemoryRepository) MemoryRepository(org.vcell.workflow.MemoryRepository) IssueContext(org.vcell.util.IssueContext) File(java.io.File)

Example 9 with TaskContext

use of org.vcell.workflow.TaskContext in project vcell by virtualcell.

the class WorkflowTest method getVFrapExample.

public static Workflow getVFrapExample(Repository repository, File workingDirectory, File vfrapFile) {
    // 
    // construct the dataflow graph
    // 
    LocalWorkspace localWorkspace = new LocalWorkspace(workingDirectory);
    Workflow workflow = new Workflow("main");
    TaskContext context = new TaskContext(workflow, repository, localWorkspace);
    // 
    // workflow parameters
    // 
    WorkflowParameter<Double> maxIntensity = workflow.addParameter(Double.class, "maxIntensity");
    context.setParameterValue(maxIntensity, 10000.0);
    WorkflowParameter<Boolean> bNoise = workflow.addParameter(Boolean.class, "bNoise");
    context.setParameterValue(bNoise, true);
    WorkflowParameter<File> vfrapFileParam = workflow.addParameter(File.class, "vfrapFile");
    context.setParameterValue(vfrapFileParam, vfrapFile);
    WorkflowParameter<Double> bleachThreshold = workflow.addParameter(Double.class, "bleachThreshold");
    context.setParameterValue(bleachThreshold, 0.80);
    WorkflowParameter<Double> cellThreshold = workflow.addParameter(Double.class, "cellThreshold");
    context.setParameterValue(cellThreshold, 0.5);
    WorkflowParameter<String> modelTypeOne = workflow.addParameter(String.class, "modelType");
    context.setParameterValue(modelTypeOne, GenerateRefSimOptModel.ModelType.DiffOne.toString());
    WorkflowParameter<String> modelTypeTwo = workflow.addParameter(String.class, "modelType2");
    context.setParameterValue(modelTypeTwo, GenerateRefSimOptModel.ModelType.DiffTwoWithPenalty.toString());
    WorkflowParameter<String> displayROITitle = workflow.addParameter(String.class, "displayROITitle");
    context.setParameterValue(displayROITitle, "rois");
    // input data from VFrap file
    ImportRawTimeSeriesFromVFrap timeSeriesFromVCell = new ImportRawTimeSeriesFromVFrap("frapImport");
    workflow.connectParameter(vfrapFileParam, timeSeriesFromVCell.vfrapFile);
    workflow.addTask(timeSeriesFromVCell);
    // // input data from HDF5 postprocessing (includes PSF)
    // ImportRawTimeSeriesFromHdf5Fluor timeSeriesFromVCell = new ImportRawTimeSeriesFromHdf5Fluor("t1");
    // timeSeriesFromVCell.bNoise.setSource(bNoise);
    // timeSeriesFromVCell.maxIntensity.setSource(maxIntensity);
    // timeSeriesFromVCell.fluorDataName.setSource(hdf5FluorName);
    // timeSeriesFromVCell.vcellHdf5File.setSource(hdf5File);
    // timeSeriesFromVCell.zSliceIndex.setSource(hdf5ZSliceIndex);
    // workflow.addTask(timeSeriesFromVCell);
    GenerateCellROIsFromRawTimeSeries generateCellROIs = new GenerateCellROIsFromRawTimeSeries("generateCellROIs");
    workflow.connectParameter(cellThreshold, generateCellROIs.cellThreshold);
    workflow.connect2(timeSeriesFromVCell.rawTimeSeriesImages, generateCellROIs.rawTimeSeriesImages);
    workflow.addTask(generateCellROIs);
    GenerateNormalizedFrapData generateNormalizedFrapData = new GenerateNormalizedFrapData("generateNormalizedFrapData");
    workflow.connect2(generateCellROIs.backgroundROI_2D, generateNormalizedFrapData.backgroundROI_2D);
    workflow.connect2(generateCellROIs.indexOfFirstPostbleach, generateNormalizedFrapData.indexOfFirstPostbleach);
    workflow.connect2(timeSeriesFromVCell.rawTimeSeriesImages, generateNormalizedFrapData.rawImageTimeSeries);
    workflow.addTask(generateNormalizedFrapData);
    GenerateBleachROI generateROIs = new GenerateBleachROI("generateROIs");
    workflow.connectParameter(bleachThreshold, generateROIs.bleachThreshold);
    workflow.connect2(generateCellROIs.cellROI_2D, generateROIs.cellROI_2D);
    workflow.connect2(generateNormalizedFrapData.normalizedFrapData, generateROIs.normalizedTimeSeries);
    workflow.addTask(generateROIs);
    GenerateDependentImageROIs generateDependentROIs = new GenerateDependentImageROIs("generateDependentROIs");
    workflow.connect2(generateCellROIs.cellROI_2D, generateDependentROIs.cellROI_2D);
    workflow.connect2(generateROIs.bleachedROI_2D, generateDependentROIs.bleachedROI_2D);
    workflow.addTask(generateDependentROIs);
    DisplayDependentROIs displayDependentROIs = new DisplayDependentROIs("displayDependentROIs");
    workflow.connect2(generateDependentROIs.imageDataROIs, displayDependentROIs.imageROIs);
    workflow.connect2(generateCellROIs.cellROI_2D, displayDependentROIs.cellROI);
    workflow.connectParameter(displayROITitle, displayDependentROIs.title);
    workflow.addTask(displayDependentROIs);
    GenerateReducedData generateReducedNormalizedData = new GenerateReducedData("generateReducedNormalizedData");
    workflow.connect2(generateNormalizedFrapData.normalizedFrapData, generateReducedNormalizedData.imageTimeSeries);
    workflow.connect2(generateDependentROIs.imageDataROIs, generateReducedNormalizedData.imageDataROIs);
    workflow.addTask(generateReducedNormalizedData);
    ComputeMeasurementError computeMeasurementError = new ComputeMeasurementError("computeMeasurementError");
    workflow.connect2(generateDependentROIs.imageDataROIs, computeMeasurementError.imageDataROIs);
    workflow.connect2(generateCellROIs.indexOfFirstPostbleach, computeMeasurementError.indexFirstPostbleach);
    workflow.connect2(generateNormalizedFrapData.prebleachAverage, computeMeasurementError.prebleachAverage);
    workflow.connect2(timeSeriesFromVCell.rawTimeSeriesImages, computeMeasurementError.rawImageTimeSeries);
    workflow.addTask(computeMeasurementError);
    // 
    // SLOW WAY
    // 
    // RunRefSimulation runRefSimulationFull = new RunRefSimulation("runRefSimulationFull");
    // runRefSimulationFull.cellROI_2D.setSource(generateCellROIs.cellROI_2D);
    // runRefSimulationFull.normalizedTimeSeries.setSource(generateNormalizedFrapData.normalizedFrapData);
    // workflow.addTask(runRefSimulationFull);
    // GenerateReducedRefData generateReducedRefSimData = new GenerateReducedRefData("generateReducedRefSimData");
    // generateReducedRefSimData.imageTimeSeries.setSource(runRefSimulationFull.refSimTimeSeries);
    // generateReducedRefSimData.imageDataROIs.setSource(generateDependentROIs.imageDataROIs);
    // workflow.addTask(generateReducedRefSimData);
    // Generate2DOptContext generate2DOptContextFull = new Generate2DOptContext("generate2DOptContextFull");
    // generate2DOptContextFull.normalizedMeasurementErrors.setSource(computeMeasurementError.normalizedMeasurementError);
    // generate2DOptContextFull.modelType.setSource(modelType);
    // generate2DOptContextFull.normExpData.setSource(generateReducedNormalizedData.reducedROIData);
    // generate2DOptContextFull.refSimData.setSource(generateReducedRefSimData.reducedROIData);
    // generate2DOptContextFull.refSimDiffusionRate.setSource(runRefSimulationFull.refSimDiffusionRate);
    // workflow.addTask(generate2DOptContextFull);
    // 
    // FAST WAY
    // 
    GenerateTrivial2DPsf psf_2D = new GenerateTrivial2DPsf("psf_2D");
    workflow.addTask(psf_2D);
    RunRefSimulationFast runRefSimulationFast = new RunRefSimulationFast("runRefSimulationFast");
    workflow.connect2(generateCellROIs.cellROI_2D, runRefSimulationFast.cellROI_2D);
    workflow.connect2(generateNormalizedFrapData.normalizedFrapData, runRefSimulationFast.normalizedTimeSeries);
    workflow.connect2(generateDependentROIs.imageDataROIs, runRefSimulationFast.imageDataROIs);
    workflow.connect2(psf_2D.psf_2D, runRefSimulationFast.psf);
    workflow.addTask(runRefSimulationFast);
    // 
    // model with One mobile fraction
    // 
    {
        GenerateRefSimOptModel generateRefSimOptModelOne = new GenerateRefSimOptModel("generateRefSimOptModel");
        workflow.connectParameter(modelTypeOne, generateRefSimOptModelOne.modelType);
        workflow.connect2(runRefSimulationFast.reducedROIData, generateRefSimOptModelOne.refSimData);
        workflow.connect2(runRefSimulationFast.refSimDiffusionRate, generateRefSimOptModelOne.refSimDiffusionRate);
        workflow.addTask(generateRefSimOptModelOne);
        Generate2DOptContext generate2DOptContextOne = new Generate2DOptContext("generate2DOptContextOne");
        workflow.connect2(computeMeasurementError.normalizedMeasurementError, generate2DOptContextOne.normalizedMeasurementErrors);
        workflow.connect2(generateReducedNormalizedData.reducedROIData, generate2DOptContextOne.normExpData);
        workflow.connect2(generateRefSimOptModelOne.optModel, generate2DOptContextOne.optModel);
        workflow.addTask(generate2DOptContextOne);
        RunProfileLikelihoodGeneral runProfileLikelihoodOne = new RunProfileLikelihoodGeneral("runProfileLikelihoodOne");
        workflow.connect2(generate2DOptContextOne.optContext, runProfileLikelihoodOne.optContext);
        workflow.addTask(runProfileLikelihoodOne);
    }
    // 
    // model with One mobile fraction
    // 
    GenerateRefSimOptModel generateRefSimOptModelTwo = new GenerateRefSimOptModel("generateRefSimOptModelTwo");
    workflow.connectParameter(modelTypeTwo, generateRefSimOptModelTwo.modelType);
    workflow.connect2(runRefSimulationFast.reducedROIData, generateRefSimOptModelTwo.refSimData);
    workflow.connect2(runRefSimulationFast.refSimDiffusionRate, generateRefSimOptModelTwo.refSimDiffusionRate);
    workflow.addTask(generateRefSimOptModelTwo);
    Generate2DOptContext generate2DOptContextTwo = new Generate2DOptContext("generate2DOptContextTwo");
    workflow.connect2(computeMeasurementError.normalizedMeasurementError, generate2DOptContextTwo.normalizedMeasurementErrors);
    workflow.connect2(generateRefSimOptModelTwo.optModel, generate2DOptContextTwo.optModel);
    workflow.connect2(generateReducedNormalizedData.reducedROIData, generate2DOptContextTwo.normExpData);
    workflow.addTask(generate2DOptContextTwo);
    RunProfileLikelihoodGeneral runProfileLikelihoodTwo = new RunProfileLikelihoodGeneral("runProfileLikelihoodTwo");
    workflow.connect2(generate2DOptContextTwo.optContext, runProfileLikelihoodTwo.optContext);
    workflow.addTask(runProfileLikelihoodTwo);
    return workflow;
}
Also used : LocalWorkspace(org.vcell.vmicro.workflow.data.LocalWorkspace) TaskContext(org.vcell.workflow.TaskContext) GenerateReducedData(org.vcell.vmicro.workflow.task.GenerateReducedData) RunRefSimulationFast(org.vcell.vmicro.workflow.task.RunRefSimulationFast) GenerateDependentImageROIs(org.vcell.vmicro.workflow.task.GenerateDependentImageROIs) GenerateCellROIsFromRawTimeSeries(org.vcell.vmicro.workflow.task.GenerateCellROIsFromRawTimeSeries) Workflow(org.vcell.workflow.Workflow) RunProfileLikelihoodGeneral(org.vcell.vmicro.workflow.task.RunProfileLikelihoodGeneral) DisplayDependentROIs(org.vcell.vmicro.workflow.task.DisplayDependentROIs) ImportRawTimeSeriesFromVFrap(org.vcell.vmicro.workflow.task.ImportRawTimeSeriesFromVFrap) GenerateNormalizedFrapData(org.vcell.vmicro.workflow.task.GenerateNormalizedFrapData) ComputeMeasurementError(org.vcell.vmicro.workflow.task.ComputeMeasurementError) GenerateTrivial2DPsf(org.vcell.vmicro.workflow.task.GenerateTrivial2DPsf) GenerateRefSimOptModel(org.vcell.vmicro.workflow.task.GenerateRefSimOptModel) GenerateBleachROI(org.vcell.vmicro.workflow.task.GenerateBleachROI) File(java.io.File) Generate2DOptContext(org.vcell.vmicro.workflow.task.Generate2DOptContext)

Aggregations

TaskContext (org.vcell.workflow.TaskContext)9 Workflow (org.vcell.workflow.Workflow)7 File (java.io.File)6 LocalWorkspace (org.vcell.vmicro.workflow.data.LocalWorkspace)6 MemoryRepository (org.vcell.workflow.MemoryRepository)5 Repository (org.vcell.workflow.Repository)5 ArrayList (java.util.ArrayList)3 Issue (org.vcell.util.Issue)3 IssueContext (org.vcell.util.IssueContext)2 Context (org.vcell.vmicro.op.Generate2DExpModelOpAbstract.Context)2 GeneratedModelResults (org.vcell.vmicro.op.Generate2DExpModelOpAbstract.GeneratedModelResults)2 DisplayDependentROIs (org.vcell.vmicro.workflow.task.DisplayDependentROIs)2 DisplayProfileLikelihoodPlots (org.vcell.vmicro.workflow.task.DisplayProfileLikelihoodPlots)2 ImportRawTimeSeriesFromVFrap (org.vcell.vmicro.workflow.task.ImportRawTimeSeriesFromVFrap)2 RunProfileLikelihoodGeneral (org.vcell.vmicro.workflow.task.RunProfileLikelihoodGeneral)2 AsynchClientTask (cbit.vcell.client.task.AsynchClientTask)1 Hashtable (java.util.Hashtable)1 JFrame (javax.swing.JFrame)1 ClientTaskStatusSupport (org.vcell.util.ClientTaskStatusSupport)1 Generate2DExpModel_GaussianBleachOp (org.vcell.vmicro.op.Generate2DExpModel_GaussianBleachOp)1