Search in sources :

Example 1 with ROI

use of cbit.vcell.VirtualMicroscopy.ROI in project vcell by virtualcell.

the class NormalizedSampleFunction method toROI.

public ROI toROI(double threshold) {
    short[] pixels = sampleImage.getBinaryPixels((float) threshold);
    UShortImage roiImage;
    try {
        roiImage = new UShortImage(pixels, getOrigin(), getExtent(), getISize().getX(), getISize().getY(), 1);
    } catch (ImageException e) {
        e.printStackTrace();
        throw new RuntimeException("failed to create image: " + e.getMessage(), e);
    }
    ROI roi = new ROI(roiImage, getName());
    return roi;
}
Also used : ImageException(cbit.image.ImageException) UShortImage(cbit.vcell.VirtualMicroscopy.UShortImage) ROI(cbit.vcell.VirtualMicroscopy.ROI)

Example 2 with ROI

use of cbit.vcell.VirtualMicroscopy.ROI in project vcell by virtualcell.

the class FRAPDataAnalysis method fitRecovery_diffusionOnly.

/**
 * Method fitRecovery2.
 * @param frapData, the original image info.
 * @param arg_bleachType, the gaussian spot or half cell bleaching types.
 * @return FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults
 * @throws ExpressionException
 */
public static FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults fitRecovery_diffusionOnly(FRAPData frapData, int arg_bleachType, int startIndexForRecovery) throws ExpressionException, OptimizationException, IOException, IllegalArgumentException {
    // int startIndexForRecovery = getRecoveryIndex(frapData);
    // 
    // get unnormalized average background fluorescence at each time point
    // 
    double[] temp_background = frapData.getAvgBackGroundIntensity();
    // the prebleachAvg has backgroud subtracted.
    double[] preBleachAvgXYZ = FrapDataUtils.calculatePreBleachAverageXYZ(frapData, startIndexForRecovery);
    // temp_fluor has subtracted background and divided by prebleach average.
    // get average intensity under the bleached area according to each time point
    double[] temp_fluor = getAverageROIIntensity(frapData, frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED.name()), preBleachAvgXYZ, temp_background);
    double[] temp_time = frapData.getImageDataset().getImageTimeStamps();
    // get nomalized preBleachAverage under bleached area.
    double preBleachAverage_bleachedArea = 0.0;
    for (int i = 0; i < startIndexForRecovery; i++) {
        preBleachAverage_bleachedArea += temp_fluor[i];
    }
    preBleachAverage_bleachedArea /= startIndexForRecovery;
    // get number of pixels in bleached region(non ROI region pixels are saved as 0)
    ROI bleachedROI_2D = frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED.name());
    long numPixelsInBleachedROI = bleachedROI_2D.getRoiImages()[0].getNumXYZ() - bleachedROI_2D.getRoiImages()[0].countPixelsByValue((short) 0);
    // assume ROI is a circle, A = Pi*R^2
    // so R = sqrt(A/Pi)
    double imagePixelArea = frapData.getImageDataset().getAllImages()[0].getPixelAreaXY();
    double area = imagePixelArea * numPixelsInBleachedROI;
    // Radius of ROI(assume that ROI is a circle)
    double bleachRadius = Math.sqrt(area / Math.PI);
    // assume cell is a circle, A = Pi*R^2
    // so R = sqrt(A/Pi)
    area = frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name()).getRoiImages()[0].getPixelAreaXY() * (frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name()).getRoiImages()[0].getNumXYZ() - bleachedROI_2D.getRoiImages()[0].countPixelsByValue((short) 0));
    // Radius of ROI(assume that ROI is a circle)
    double cellRadius = Math.sqrt(area / Math.PI);
    // average intensity under bleached area. The time points start from the first post bleach
    double[] fluor = new double[temp_fluor.length - startIndexForRecovery];
    // Time points stat from the first post bleach
    double[] time = new double[temp_time.length - startIndexForRecovery];
    System.arraycopy(temp_fluor, startIndexForRecovery, fluor, 0, fluor.length);
    System.arraycopy(temp_time, startIndexForRecovery, time, 0, time.length);
    FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults diffAnalysisResults = new FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults();
    // frapDataAnalysisResults.setBleachWidth(bleachRadius);
    // frapDataAnalysisResults.setStartingIndexForRecovery(startIndexForRecovery);
    // frapDataAnalysisResults.setBleachRegionData(temp_fluor);// average intensity under bleached region accroding to time points
    diffAnalysisResults.setBleachType(arg_bleachType);
    // curve fitting according to different bleach types
    double[] inputParamValues = null;
    double[] outputParamValues = null;
    // 
    // Bleach while monitoring fit
    // 
    double[] tempCellROIAverage = getAverageROIIntensity(frapData, frapData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name()), preBleachAvgXYZ, temp_background);
    double[] cellROIAverage = new double[tempCellROIAverage.length - startIndexForRecovery];
    // Cell Avg. points start from the first post bleach
    System.arraycopy(tempCellROIAverage, startIndexForRecovery, cellROIAverage, 0, cellROIAverage.length);
    outputParamValues = new double[1];
    Expression bleachWhileMonitorFitExpression = CurveFitting.fitBleachWhileMonitoring(time, cellROIAverage, outputParamValues);
    double bleachWhileMonitoringRate = outputParamValues[0];
    diffAnalysisResults.setBleachWhileMonitoringTau(bleachWhileMonitoringRate);
    diffAnalysisResults.setFitBleachWhileMonitorExpression(bleachWhileMonitorFitExpression.flatten());
    // to fit If, Io and recovery tau by fitting expressions based on bleaching types
    if (arg_bleachType == FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults.BleachType_GaussianSpot) {
        double cellAreaBleached = getCellAreaBleachedFraction(frapData);
        // the input parameter is the bleach while monitoring rate
        inputParamValues = new double[] { bleachWhileMonitoringRate };
        // the array is used to get If, Io, and tau back.
        outputParamValues = new double[3];
        Expression fittedCurve = CurveFitting.fitRecovery_diffOnly(time, fluor, FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults.BleachType_GaussianSpot, inputParamValues, outputParamValues);
        // get diffusion rate
        double fittedRecoveryTau = outputParamValues[2];
        Expression diffExp = new Expression(FRAPDataAnalysis.gaussianSpot_DiffFunc);
        diffExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_w), new Expression(bleachRadius));
        diffExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_tau), new Expression(fittedRecoveryTau));
        double fittedDiffusionRate = diffExp.evaluateConstant();
        // double fittedDiffusionRate = bleachRadius*bleachRadius/(4.0*fittedRecoveryTau);
        // get mobile fraction
        double If = outputParamValues[0];
        double Io = outputParamValues[1];
        Expression mFracExp = new Expression(FRAPDataAnalysis.gaussianSpot_mobileFracFunc);
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.para_If.getName()), new Expression(If));
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.para_Io.getName()), new Expression(Io));
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_preBlchAvg), new Expression(preBleachAverage_bleachedArea));
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_fB), new Expression(cellAreaBleached));
        double mobileFrac = mFracExp.evaluateConstant();
        // sometimes the mobile fraction goes beyond [0,1], we have to restrict the mobile fraction value.
        mobileFrac = Math.min(1, mobileFrac);
        mobileFrac = Math.max(0, mobileFrac);
        // set frap data analysis results
        diffAnalysisResults.setDiffFitExpression(fittedCurve.flatten());
        diffAnalysisResults.setRecoveryTau(fittedRecoveryTau);
        diffAnalysisResults.setRecoveryDiffusionRate(fittedDiffusionRate);
        diffAnalysisResults.setMobilefraction(mobileFrac);
    } else if (arg_bleachType == FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults.BleachType_HalfCell) {
        double cellAreaBleached = getCellAreaBleachedFraction(frapData);
        // the input parameter is the bleach while monitoring rate
        inputParamValues = new double[] { bleachWhileMonitoringRate };
        // the array is used get If, Io, and tau back.
        outputParamValues = new double[3];
        Expression fittedCurve = CurveFitting.fitRecovery_diffOnly(time, fluor, FrapDataAnalysisResults.DiffusionOnlyAnalysisRestults.BleachType_HalfCell, inputParamValues, outputParamValues);
        // get diffusion rate
        double fittedRecoveryTau = outputParamValues[2];
        Expression diffExp = new Expression(FRAPDataAnalysis.halfCell_DiffFunc);
        diffExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_r), new Expression(cellRadius));
        diffExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_tau), new Expression(fittedRecoveryTau));
        diffExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_Pi), new Expression(Math.PI));
        double fittedDiffusionRate = diffExp.evaluateConstant();
        // double fittedDiffusionRate = (cellRadius*cellRadius)/(fittedRecoveryTau*Math.PI*Math.PI);
        // get mobile fraction
        double If = outputParamValues[0];
        double Io = outputParamValues[1];
        Expression mFracExp = new Expression(FRAPDataAnalysis.gaussianSpot_mobileFracFunc);
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.para_If.getName()), new Expression(If));
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.para_Io.getName()), new Expression(Io));
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_preBlchAvg), new Expression(preBleachAverage_bleachedArea));
        mFracExp.substituteInPlace(new Expression(FRAPDataAnalysis.symbol_fB), new Expression(cellAreaBleached));
        double mobileFrac = mFracExp.evaluateConstant();
        // set diffusion only analysis results
        diffAnalysisResults.setDiffFitExpression(fittedCurve.flatten());
        diffAnalysisResults.setRecoveryTau(fittedRecoveryTau);
        diffAnalysisResults.setRecoveryDiffusionRate(fittedDiffusionRate);
        diffAnalysisResults.setMobilefraction(mobileFrac);
    } else {
        throw new IllegalArgumentException("Unknown Bleach Type " + arg_bleachType);
    }
    return diffAnalysisResults;
}
Also used : Expression(cbit.vcell.parser.Expression) ROI(cbit.vcell.VirtualMicroscopy.ROI)

Example 3 with ROI

use of cbit.vcell.VirtualMicroscopy.ROI in project vcell by virtualcell.

the class FRAPDataAnalysis method getCellAreaBleachedFraction.

// /**
// * Method main.
// * @param args String[]
// */
// public static void main(String args[]){
// try {
// //ImageDataset imageDataset = VirtualFrapTest.readImageDataset("\\\\fs3\\ccam\\Public\\VirtualMicroscopy\\FRAP data from Ann\\ran bleach in nucleus\\bleach3.lsm");
// ImageDataset imageDataset = ImageDatasetReader.readImageDataset("\\temp\\lsm\\bleach3.lsm", null);
// ImageDataset roiImageDataset = ImageDatasetReader.readImageDataset("\\temp\\lsm\\BleachingRegionMask.tif", null);
// if (roiImageDataset.getSizeC()>0 || roiImageDataset.getSizeT()>0){
// throw new RuntimeException("roi data must be single channel and single time");
// }
// ROI[] rois = new ROI[] { new ROI(roiImageDataset.getAllImages(),RoiType.ROI_BLEACHED) };
// FRAPData frapData = new FRAPData(imageDataset, rois);
// WindowListener windowListener = new WindowAdapter(){
// @Override
// public void windowClosing(java.awt.event.WindowEvent e) {
// System.exit(0);
// };
// };
// double[] roiRecovery = FRAPDataAnalysis.getAverageROIIntensity(frapData,RoiType.ROI_BLEACHED);
// double[] fakeCurveData = new double[roiRecovery.length];
// for (int i = 0; i < fakeCurveData.length; i++) {
// fakeCurveData[i] = 100*Math.sin(i/10.0);
// }
// FRAPDataPanel.showCurve(windowListener, new String[] { "f", "fakeCurve" }, frapData.getImageDataset().getImageTimeStamps(),new double[][] { roiRecovery, fakeCurveData });
// }catch (Exception e){
// e.printStackTrace(System.out);
// }
// }
/*
	 * Added to try the new function
	 */
public static double getCellAreaBleachedFraction(FRAPData fdata) {
    ROI bleachedROI = fdata.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED.name());
    ROI cellROI = fdata.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name());
    double fraction = 1;
    double bleachedLen = 0;
    double cellLen = 0;
    for (// bleachedROI and cellROI images have same number of pixels
    int i = 0; // bleachedROI and cellROI images have same number of pixels
    i < cellROI.getRoiImages()[0].getPixels().length; // bleachedROI and cellROI images have same number of pixels
    i++) {
        if (cellROI.getRoiImages()[0].getPixels()[i] != 0) {
            cellLen++;
        }
        if (bleachedROI.getRoiImages()[0].getPixels()[i] != 0) {
            bleachedLen++;
        }
    }
    if (cellLen > 0) {
        fraction = bleachedLen / cellLen;
    }
    return fraction;
}
Also used : ROI(cbit.vcell.VirtualMicroscopy.ROI)

Example 4 with ROI

use of cbit.vcell.VirtualMicroscopy.ROI in project vcell by virtualcell.

the class FRAPParamTest method checkFrapStudyValidity.

public String checkFrapStudyValidity() {
    if (frapStudy == null || frapStudy.getFrapData() == null || frapStudy.getFrapData().getRois() == null) {
        return "FrapStudy/FrapData/BasicRois is/are null.";
    }
    FRAPData fData = frapStudy.getFrapData();
    ROI cellROI = fData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name());
    ROI bleachedROI = fData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BLEACHED.name());
    ROI backgroundROI = fData.getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_BACKGROUND.name());
    if (cellROI.getNonzeroPixelsCount() < 1) {
        return "No Cell ROI.";
    }
    if (bleachedROI.getNonzeroPixelsCount() < 1) {
        return "No Bleached ROI.";
    }
    if (backgroundROI.getNonzeroPixelsCount() < 1) {
        return "No Background ROI.";
    }
    // check ROI void/discontinuous location
    Point internalVoidLocation = ROI.findInternalVoid(cellROI);
    if (internalVoidLocation != null) {
        return "CELL ROI has unfilled internal void area.";
    }
    Point[] distinctCellAreaLocations = ROI.checkContinuity(cellROI);
    if (distinctCellAreaLocations != null) {
        return "CELL ROI has at least 2 discontinuous areas.";
    }
    return "";
}
Also used : Point(java.awt.Point) ROI(cbit.vcell.VirtualMicroscopy.ROI)

Example 5 with ROI

use of cbit.vcell.VirtualMicroscopy.ROI in project vcell by virtualcell.

the class FRAPStudy method createNewRefBioModel.

public static BioModel createNewRefBioModel(FRAPStudy sourceFrapStudy, String baseDiffusionRate, TimeStep tStep, KeyValue simKey, User owner, FieldDataIdentifierSpec psfFDIS, int startingIndexForRecovery) throws Exception {
    if (owner == null) {
        throw new Exception("Owner is not defined");
    }
    ROI cellROI_2D = sourceFrapStudy.getFrapData().getRoi(FRAPData.VFRAP_ROI_ENUM.ROI_CELL.name());
    Extent extent = sourceFrapStudy.getFrapData().getImageDataset().getExtent();
    TimeBounds timeBounds = FRAPOptData.getEstimatedRefTimeBound(sourceFrapStudy);
    double timeStepVal = FRAPOptData.REFERENCE_DIFF_DELTAT;
    int numX = cellROI_2D.getRoiImages()[0].getNumX();
    int numY = cellROI_2D.getRoiImages()[0].getNumY();
    int numZ = cellROI_2D.getRoiImages().length;
    short[] shortPixels = cellROI_2D.getRoiImages()[0].getPixels();
    byte[] bytePixels = new byte[numX * numY * numZ];
    final byte EXTRACELLULAR_PIXVAL = 0;
    final byte CYTOSOL_PIXVAL = 1;
    for (int i = 0; i < bytePixels.length; i++) {
        if (shortPixels[i] != 0) {
            bytePixels[i] = CYTOSOL_PIXVAL;
        }
    }
    VCImage maskImage;
    try {
        maskImage = new VCImageUncompressed(null, bytePixels, extent, numX, numY, numZ);
    } catch (ImageException e) {
        e.printStackTrace();
        throw new RuntimeException("failed to create mask image for geometry");
    }
    Geometry geometry = new Geometry("geometry", maskImage);
    if (geometry.getGeometrySpec().getNumSubVolumes() != 2) {
        throw new Exception("Cell ROI has no ExtraCellular.");
    }
    int subVolume0PixVal = ((ImageSubVolume) geometry.getGeometrySpec().getSubVolume(0)).getPixelValue();
    geometry.getGeometrySpec().getSubVolume(0).setName((subVolume0PixVal == EXTRACELLULAR_PIXVAL ? EXTRACELLULAR_NAME : CYTOSOL_NAME));
    int subVolume1PixVal = ((ImageSubVolume) geometry.getGeometrySpec().getSubVolume(1)).getPixelValue();
    geometry.getGeometrySpec().getSubVolume(1).setName((subVolume1PixVal == CYTOSOL_PIXVAL ? CYTOSOL_NAME : EXTRACELLULAR_NAME));
    geometry.getGeometrySurfaceDescription().updateAll();
    BioModel bioModel = new BioModel(null);
    bioModel.setName("unnamed");
    Model model = new Model("model");
    bioModel.setModel(model);
    Feature extracellular = model.addFeature(EXTRACELLULAR_NAME);
    Feature cytosol = model.addFeature(CYTOSOL_NAME);
    Membrane plasmaMembrane = model.addMembrane(PLASMAMEMBRANE_NAME);
    String roiDataName = FRAPStudy.ROI_EXTDATA_NAME;
    final int ONE_DIFFUSION_SPECIES_COUNT = 1;
    final int MOBILE_SPECIES_INDEX = 0;
    Expression[] diffusionConstants = new Expression[ONE_DIFFUSION_SPECIES_COUNT];
    Species[] species = new Species[ONE_DIFFUSION_SPECIES_COUNT];
    SpeciesContext[] speciesContexts = new SpeciesContext[ONE_DIFFUSION_SPECIES_COUNT];
    Expression[] initialConditions = new Expression[ONE_DIFFUSION_SPECIES_COUNT];
    // Mobile Species
    diffusionConstants[MOBILE_SPECIES_INDEX] = new Expression(baseDiffusionRate);
    species[MOBILE_SPECIES_INDEX] = new Species(SPECIES_NAME_PREFIX_MOBILE, "Mobile bleachable species");
    speciesContexts[MOBILE_SPECIES_INDEX] = new SpeciesContext(null, species[MOBILE_SPECIES_INDEX].getCommonName(), species[MOBILE_SPECIES_INDEX], cytosol);
    FieldFunctionArguments postBleach_first = new FieldFunctionArguments(roiDataName, "postbleach_first", new Expression(0), VariableType.VOLUME);
    FieldFunctionArguments prebleach_avg = new FieldFunctionArguments(roiDataName, "prebleach_avg", new Expression(0), VariableType.VOLUME);
    Expression expPostBleach_first = new Expression(postBleach_first.infix());
    Expression expPreBleach_avg = new Expression(prebleach_avg.infix());
    initialConditions[MOBILE_SPECIES_INDEX] = Expression.div(expPostBleach_first, expPreBleach_avg);
    SimulationContext simContext = new SimulationContext(bioModel.getModel(), geometry);
    bioModel.addSimulationContext(simContext);
    FeatureMapping cytosolFeatureMapping = (FeatureMapping) simContext.getGeometryContext().getStructureMapping(cytosol);
    FeatureMapping extracellularFeatureMapping = (FeatureMapping) simContext.getGeometryContext().getStructureMapping(extracellular);
    MembraneMapping plasmaMembraneMapping = (MembraneMapping) simContext.getGeometryContext().getStructureMapping(plasmaMembrane);
    SubVolume cytSubVolume = geometry.getGeometrySpec().getSubVolume(CYTOSOL_NAME);
    SubVolume exSubVolume = geometry.getGeometrySpec().getSubVolume(EXTRACELLULAR_NAME);
    SurfaceClass pmSurfaceClass = geometry.getGeometrySurfaceDescription().getSurfaceClass(exSubVolume, cytSubVolume);
    cytosolFeatureMapping.setGeometryClass(cytSubVolume);
    extracellularFeatureMapping.setGeometryClass(exSubVolume);
    plasmaMembraneMapping.setGeometryClass(pmSurfaceClass);
    cytosolFeatureMapping.getUnitSizeParameter().setExpression(new Expression(1.0));
    extracellularFeatureMapping.getUnitSizeParameter().setExpression(new Expression(1.0));
    plasmaMembraneMapping.getUnitSizeParameter().setExpression(new Expression(1.0));
    for (int i = 0; i < initialConditions.length; i++) {
        model.addSpecies(species[i]);
        model.addSpeciesContext(speciesContexts[i]);
    }
    for (int i = 0; i < speciesContexts.length; i++) {
        SpeciesContextSpec scs = simContext.getReactionContext().getSpeciesContextSpec(speciesContexts[i]);
        scs.getInitialConditionParameter().setExpression(initialConditions[i]);
        scs.getDiffusionParameter().setExpression(diffusionConstants[i]);
    }
    MathMapping mathMapping = simContext.createNewMathMapping();
    MathDescription mathDesc = mathMapping.getMathDescription();
    // Add PSF function
    mathDesc.addVariable(new Function(Simulation.PSF_FUNCTION_NAME, new Expression(psfFDIS.getFieldFuncArgs().infix()), null));
    simContext.setMathDescription(mathDesc);
    SimulationVersion simVersion = new SimulationVersion(simKey, "sim1", owner, new GroupAccessNone(), new KeyValue("0"), new BigDecimal(0), new Date(), VersionFlag.Current, "", null);
    Simulation newSimulation = new Simulation(simVersion, simContext.getMathDescription());
    newSimulation.getSolverTaskDescription().setSolverDescription(SolverDescription.FiniteVolumeStandalone);
    simContext.addSimulation(newSimulation);
    newSimulation.getSolverTaskDescription().setTimeBounds(timeBounds);
    newSimulation.getSolverTaskDescription().setOutputTimeSpec(new UniformOutputTimeSpec(timeStepVal));
    newSimulation.getMeshSpecification().setSamplingSize(cellROI_2D.getISize());
    newSimulation.getSolverTaskDescription().setTimeStep(new TimeStep(timeStepVal, timeStepVal, timeStepVal));
    return bioModel;
}
Also used : MembraneMapping(cbit.vcell.mapping.MembraneMapping) ImageException(cbit.image.ImageException) KeyValue(org.vcell.util.document.KeyValue) Extent(org.vcell.util.Extent) SurfaceClass(cbit.vcell.geometry.SurfaceClass) MathDescription(cbit.vcell.math.MathDescription) VCImage(cbit.image.VCImage) SpeciesContext(cbit.vcell.model.SpeciesContext) SpeciesContextSpec(cbit.vcell.mapping.SpeciesContextSpec) Feature(cbit.vcell.model.Feature) TimeBounds(cbit.vcell.solver.TimeBounds) Function(cbit.vcell.math.Function) GroupAccessNone(org.vcell.util.document.GroupAccessNone) TimeStep(cbit.vcell.solver.TimeStep) SimulationVersion(org.vcell.util.document.SimulationVersion) FeatureMapping(cbit.vcell.mapping.FeatureMapping) SubVolume(cbit.vcell.geometry.SubVolume) ImageSubVolume(cbit.vcell.geometry.ImageSubVolume) Membrane(cbit.vcell.model.Membrane) Species(cbit.vcell.model.Species) ImageSubVolume(cbit.vcell.geometry.ImageSubVolume) UniformOutputTimeSpec(cbit.vcell.solver.UniformOutputTimeSpec) FieldFunctionArguments(cbit.vcell.field.FieldFunctionArguments) VCImageUncompressed(cbit.image.VCImageUncompressed) SimulationContext(cbit.vcell.mapping.SimulationContext) ROI(cbit.vcell.VirtualMicroscopy.ROI) ImageException(cbit.image.ImageException) UserCancelException(org.vcell.util.UserCancelException) BigDecimal(java.math.BigDecimal) Date(java.util.Date) Geometry(cbit.vcell.geometry.Geometry) Simulation(cbit.vcell.solver.Simulation) Expression(cbit.vcell.parser.Expression) BioModel(cbit.vcell.biomodel.BioModel) Model(cbit.vcell.model.Model) BioModel(cbit.vcell.biomodel.BioModel) MathMapping(cbit.vcell.mapping.MathMapping)

Aggregations

ROI (cbit.vcell.VirtualMicroscopy.ROI)72 UShortImage (cbit.vcell.VirtualMicroscopy.UShortImage)26 RowColumnResultSet (cbit.vcell.math.RowColumnResultSet)10 ArrayList (java.util.ArrayList)10 UserCancelException (org.vcell.util.UserCancelException)10 ImageDataset (cbit.vcell.VirtualMicroscopy.ImageDataset)9 ImageException (cbit.image.ImageException)8 Image (cbit.vcell.VirtualMicroscopy.Image)7 FRAPData (cbit.vcell.microscopy.FRAPData)7 BioModel (cbit.vcell.biomodel.BioModel)6 FloatImage (cbit.vcell.VirtualMicroscopy.FloatImage)5 FieldFunctionArguments (cbit.vcell.field.FieldFunctionArguments)5 RegionInfo (cbit.vcell.geometry.RegionImage.RegionInfo)5 File (java.io.File)5 Hashtable (java.util.Hashtable)5 Element (org.jdom.Element)5 Extent (org.vcell.util.Extent)5 VCImage (cbit.image.VCImage)4 VCImageUncompressed (cbit.image.VCImageUncompressed)4 Expression (cbit.vcell.parser.Expression)4