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);
}
}
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);
}
}
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);
}
}
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;
}
Aggregations