-
Notifications
You must be signed in to change notification settings - Fork 7
Parameters
robertprior-fixstars edited this page Sep 19, 2019
·
7 revisions
This page shows an example loadParameter.m file. This file contains all of the parameter that can be set and if done so running the pipeline (runPipeline.sh) without any command line options set will pull parameters from this file.
% This is the base name of the file and will have 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 also possible to set a morphology round to a dataset
% This round and extra 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';
%Used for color correction
%Assuming beads are at the top of the stack, when do they start?
params.BEAD_ZSTART = 1; %goes to :end
params.COLOR_OFFSETS3D = [20,20,20];
% Thresholds to use for initial filtering of the puncta during puncta extraction
params.PUNCTA_SIZE_THRESHOLD = 30;
params.PUNCTA_SIZE_MAX = 2000;
params.PUNCTA_SIZE = 10; %Defines the cubic region around each puncta
% How the 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 stored in analysis-target
% So far have used one of: 'groundtruth_dictionary_splintr20180621.mat', 'groundtruth_dictionary_CZI20190817.mat'
params.GROUND_TRUTH_DICT = 'groundtruth_dictionary_splintr20180621.mat';
params.COLOR_VEC = [1,2,3,4]; %Which channels are we comparing? (in case of empty chan)
params.DISTANCE_FROM_CENTER = 2.5; %how far from the center of the puncta subvol?
params.THRESHOLD_EXPRESSION = 15; %If a transcript shows up fewer than this it's probably noise
%Do we need to downsample the first few steps of the pipeline?
params.DO_DOWNSAMPLE = true;
params.DOWNSAMPLE_RATE = 2.;
%For puncta extraction:
params.MAXNUM_MISSINGROUND=1;
%use GPU CUDA or CPU
params.USE_GPU_CUDA = false;
%intermediate image format stages will save results in this format
params.IMAGE_EXT = 'h5';
%input image format
params.INPUT_IMAGE_EXT = 'tif';
%Use intermediate tmp files in color-correction and normalization stored here
params.tempDir = '/mp/nvmeof0/tmp';
% Define parameters for registration, titled regparams for clarity
regparams.REGISTRATION_TYPE = 'affine';%'registered'; %or 'affine'
%When calculating RANSAC, do we consider all possible affine warps (true)
%Or just translation+scale (false)
regparams.AFFINE_FULL = true;
%Do we want to combine features from multiple channels?
%keypoints and descriptors
regparams.REGISTERCHANNELS_SIFT = {'summedNorm'}; %keypoints and descriptors
%keypoints only
regparams.REGISTERCHANNELS_SC = {'summedNorm'};%'ch00','ch01SHIFT','ch02SHIFT','ch03SHIFT'};
%In the Murray et al 2015 this was {'Lectin', 'DAPI', 'Data}
%Which channels do we warp?
regparams.CHANNELS = {'summedNorm','ch00','ch01SHIFT','ch02SHIFT','ch03SHIFT'};
%Set a threshold for maximum displacement distance?
%(not appropriate for all datasets. Distance in pixels, -1 for ignore this)
regparams.DISTANCEQUANTILECUTOFF = .95;
% SCALE_PYRAMID: Create a set of blurs to create a "scale pyramid", or in
% non-computervision speak:
% Blurring by a progressive set of gaussians to adjust for puncta flucutations
% Using the documentation in fspecial3.m, the standard deviations of
% the gaussian is defined as SIZE/2/2.354 so that FWHM equals half filter
% size (http://en.wikipedia.org/wiki/FWHM).The blur_size values are chosen
% with assumptions of the width of the Lectin vessels
% (5-20 pixels at 2um/pix res) observed and assumption of minor scale
% disparities (ie <20%)
params.SCALE_PYRAMID = [5];
% parameters for 3DSIFT
sift_params.TwoPeak_Flag = true; % Allow 3DSIFT to throw out points, Default: true
sift_params.TwoPeak_Thresh = .9; % Allow 3DSIFT to throw out points, Default: true
sift_params.IndexSize = 2; % Min: 1 Default: 2
sift_params.xyScale = 1;
sift_params.tScale = 1;
sift_params.Display_flag = 0; % Display a sphere which can be rotated (Rotate 3D button) to view gradient directions
sift_params.Tessellation_flag = 1; % Keep this as 1
sift_params.Tessellation_levels = 1; % Min: zero Default: 1
sift_params.Tessel_thresh = 3; % take the top nearest tesselations in GetGradOri / PlaceInIndex
sift_params.nFaces = 20 * ( 4 ^ sift_params.Tessellation_levels ); % Number of faces in the tessellation, not a parameter
sift_params.descriptor_len = sift_params.IndexSize *...
sift_params.IndexSize * sift_params.IndexSize * sift_params.nFaces;
sift_params.Smooth_Flag = true; % Adds gradient data to surrounding bins in final histogram
sift_params.Smooth_Var = 20; % Determines amount of smoothing, Default: 20
sift_params.MaxIndexVal = 0.2;
% The rest of the variables are not modified often, but are included here
% for completeness sake
sift_params.IgnoreGradSign = 0;
sift_params.IndexSigma = 5.0;
sift_params.SigmaScaled = sift_params.IndexSigma * 0.5 * sift_params.IndexSize;
sift_params.MagFactor = 3;
sift_params.UseHistogramOri = 1;
sift_params.OriHistThresh = 0.8;
if (sift_params.UseHistogramOri)
sift_params.OriSigma = 1.5;
else
sift_params.OriSigma = 1.0;
end
sift_params.stream_num = 20;
sift_params.x_substream_stride = 256;
sift_params.y_substream_stride = 256;
% 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
params.WAIT_SEC = 10;
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;
- 1 Setup Cluster
- 2 Color Correction
- 3 Normalization
- 4 Registration
- 5 Puncta Extraction
- 6 Base Calling
- 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