% This matlab scripts sets up the simulation parameters for searching
% a range of parameters within the space.
%
%
% First scenario:
% We want to start with diffusion only, within range of 1e-14 to 1e-9 m^2/s
%
% The branching is as normal, one primary branch that is X micrometers long
% which then split into two branches that are Y micrometers each.
%
function runSimFig2A()
disp('Preparing diffusion only simulation, Y morphology')
% For biological moleculs, range 1e-11 to 1e-10 (Wikipedia):
% http://en.wikipedia.org/wiki/Fick's_laws_of_diffusion
%
diffRange = linspace(1e-12,1e-9,10); % Lower end was 1e-13 before
% diffRange = unique([2e-10, logspace(-12,-9,10)]); % Lower end was 1e-13 before
xRange = 50e-6; %linspace(10e-6,100e-6,3);
yRange = 50e-6; %linspace(10e-6,100e-6,3);
nWorkers = 3;
nJobs = length(diffRange)*length(xRange)*length(yRange);
jobID = mod(0:nJobs-1,nWorkers)+1;
inputFilenameMask = 'input/Fig2A-diffusion-only-dR-%d-X-%d-Y-%d.input';
outputFilenameMask = 'output/Fig2A-diffusion-only-dR-%d-X-%d-Y-%d.output';
fidSum = fopen('input/FIG2A-diffusion-only-summary.txt','w');
ctr = 1;
for i = 1:length(diffRange)
for j = 1:length(xRange)
for k = 1:length(yRange)
inFilename = sprintf(inputFilenameMask,i,j,k);
outFilename = sprintf(outputFilenameMask,i,j,k);
fid = fopen(inFilename,'w');
fprintf(fid,'Experiment.tubulinDiffusionConstant = %d\n', diffRange(i));
fprintf(fid,'Experiment.tubulinActiveTransportRate = %d\n', 0);
fprintf(fid,'self.distA = %d\n', xRange(j));
fprintf(fid,'self.distB = %d\n', yRange(k));
fprintf(fid,'self.saveFileName = "%s"\n', outFilename);
% !!! Added soma concetration clamp
fprintf(fid, 'self.clampSomaConcentration = True\n');
fprintf(fid, 'self.clockEnd = 5e5\n');
fprintf(fid,'self.polyRateModifier = 1.5\n');
fprintf(fid, 'Experiment.tubulinConcentrationSoma = 5.5e-3\n');
fclose(fid);
% First column is the ID of the worker that is responsible for
% running this simulation, second column is the file name of the
% info file that has all parameters etc.
fprintf(fidSum,'%d %s %d %d %d\n', ...
jobID(ctr), inFilename, diffRange(i), xRange(j), yRange(k));
ctr = ctr + 1;
end
end
end
fclose(fidSum);
disp('python runSimWorker.py input/FIG2A-diffusion-only-summary.txt 1')
disp('python runSimWorker.py input/FIG2A-diffusion-only-summary.txt 2')
disp('python runSimWorker.py input/FIG2A-diffusion-only-summary.txt 3')
end