Skip to content

Parameters

robertprior-fixstars edited this page Oct 16, 2019 · 7 revisions

This page shows an example parameters file trimmed down to show the most common parameters. The pipeline searches the ExSeqProcessing directory for a file called:

  • loadParameters.m

Running the pipeline will use parameters in this file not set by any command line options. There is a template file in the repository which can be used as a baseline:

  • loadParameter.m.template

Below is not an extensive list of parameters available just the parameters which should be set for most experiments. The template file has a full list of possible parameters with comment annotations for what they do (parameters not listed affect the performance of specific stages and should not be set in most situations).

% This is the base name of the file and will have information like the round number and channel number appended to it
params.FILE_BASENAME = 'exseqca1rep1-F077';

% Data loading and storage parameters; where the given folders are on disk
params.INPUT_FILE_PATH = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/0_raw';
params.deconvolutionImagesDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/1_deconvolution';
params.colorCorrectionImagesDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/2_color-correction';
params.normalizedImagesDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/3_normalization';
params.registeredImagesDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/4_registration';
params.punctaSubvolumeDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/5_puncta-extraction';
params.basecallingResultsDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/6_base-calling';
params.reportingDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/logs/imgs';
params.logDir = '/mp/nas1/fixstars/kajita/ExSeqProcessing-merge/logs';

% Microscope parameters
params.XRES = .17;
params.YRES = .17;
params.ZRES = .4;


% Experimental parameters
params.REFERENCE_ROUND_WARP = 1;
params.REFERENCE_ROUND_PUNCTA = 1;
params.NUM_ROUNDS = 5;
params.NUM_CHANNELS = 4;

% It is possible to set a morphology round to a dataset
% This round and extra channel will be used to improve the results up to the registration stage
% but puncta extraction and on will not be run on this round
params.MORPHOLOGY_ROUND = 5;
params.MORPHOLOGY_CHAN_STR = 'ch05';

% How the color channels are named
params.CHAN_STRS = {'ch00','ch01','ch02','ch03'};
params.SHIFT_CHAN_STRS = {'ch00','ch01SHIFT','ch02SHIFT','ch03SHIFT'};

% Base calling parameters
% Ground truth dictionary to be used for base calling. Dictionaries are stored in analysis-targeted/
% Currently have: 'groundtruth_dictionary_splintr20180621.mat', 'groundtruth_dictionary_CZI20190817.mat'
params.GROUND_TRUTH_DICT = 'groundtruth_dictionary_splintr20180621.mat';

% Intermediate image format; stages will save image results in this format
params.IMAGE_EXT = 'h5';

% Input image format
params.INPUT_IMAGE_EXT = 'tif';

% Whether to use GPU CUDA acceleration or CPU; should also set tempDir when this is true
params.USE_GPU_CUDA = false;

% Use intermediate tmp files in color-correction and normalization stored here for GPU acceleration.
% Should be on fast storage (like NVMe SSDs), if this directory is on HDD, GPU version can be slower than CPU version
params.tempDir = '/mp/nvmeof0/tmp';

% Batch_processing parameters
% These parameters control to what degree of parallelization will be used
% except for the parameters ending in _THREADS, all of these will be automatically
% set by the pipeline (so by default they are commented out i.e the line starts with %)
params.WAIT_SEC = 10;


% ExSeq will attempt to use this percentage of available memory
params.USABLE_MEM_RATE = 0.9;
params.MATLAB_PROC_CONTEXT = 800; %MiB

%params.DOWN_SAMPLING_MAX_POOL_SIZE = 10;
%
%params.COLOR_CORRECTION_MAX_RUN_JOBS = 2;
params.COLOR_CORRECTION_MAX_THREADS = 10;
%
%params.NORM_MAX_RUN_JOBS = 20;
%params.NORM_DOWNSAMPLE_MAX_RUN_JOBS = 20;
%
%params.CALC_DESC_MAX_RUN_JOBS = 30;
params.CALC_DESC_MAX_THREADS = 4;
%
%params.CALC_CORR_MAX_RUN_JOBS = 1;
params.CALC_CORR_MAX_THREADS = 10;
%
%params.REG_CORR_MAX_RUN_JOBS = 8;
params.REG_CORR_MAX_THREADS = 10;
%
%params.AFFINE_MAX_RUN_JOBS = 8;
%params.AFFINE_MAX_POOL_SIZE = 5;
params.AFFINE_MAX_THREADS = 10;
%
%params.TPS3DWARP_MAX_RUN_JOBS = 4;
%params.TPS3DWARP_MAX_POOL_SIZE = 10;
params.TPS3DWARP_MAX_THREADS = 10;

params.PUNCTA_MAX_POOL_SIZE = 1;

% Cluster environment
params.NUM_LOGICAL_CORES = 40;

Documentation

Miscellaneous

  • Performance Profile
  • Example Batching
  • Summary Reporting (link to page) / Analysis (link to page) All of above would be bullet points but thought each folder with useful scripts in the repository would have its own page with example usages and descriptions for the files under the given directory. Unsure on this as haven't used anything under these directories directly myself (i.e not through runPipeline) apart from tests/perf-profile/summarize-stat-logs.sh. Should any of these have a separate page? Note have not made pages for this yet as not sure how many should be made or if this break down makes sense.
  • Troubleshooting

Clone this wiki locally