clear all, close all, format compact
filenameMask = ...
'output/GridSearch/predict-growth-speed-Di-%d-A-%d-SC-%d-PR-%d-DR-%d-De-%d.txt';
summaryFile = ...
'input/GridSearch/predict-growth-speed-summary.txt';
summaryDataMask = '%d input/GridSearch/predict-growth-speed-Di-%d-A-%d-SC-%d-PR-%d-DR-%d-De-%d.txt %f %f %f %f %f %f';
GCtoPredict = 2;
fprintf('Assuming predicting GC %d\n', GCtoPredict)
altGC = 1;
growthConeFiles = { 'input/Ramaker/Ramaker-980625-GC-1.txt', ...
'input/Ramaker/Ramaker-980625-GC-2.txt', ...
'input/Ramaker/Ramaker-980625-GC-3.txt' };
workerID = [];
fileTag = [];
runDiffusion = [];
runActTransp = [];
runSomaConc = [];
runPolyRate = [];
runDepolyRate = [];
runTubulinDecay = [];
fid = fopen(summaryFile,'r');
str = fgets(fid);
ctr = 1;
while(str ~= -1)
if(str(end) == char(10))
str = str(1:end-1);
end
try
[workerID fileTag(ctr,1), fileTag(ctr,2), ...
fileTag(ctr,3), fileTag(ctr,4), ...
fileTag(ctr,5), fileTag(ctr,6) ...
runDiffusion(ctr), runActTransp(ctr), ...
runSomaConc(ctr), runPolyRate(ctr), ...
runDepolyRate(ctr), runTubulinDecay(ctr)] = ...
strread(str,summaryDataMask);
catch exception
getReport(exception)
keyboard
end
str = fgets(fid);
ctr = ctr + 1;
end
fclose(fid);
fitError = NaN*zeros(size(workerID));
for i = 1:size(fileTag,1)
fileName = sprintf(filenameMask,fileTag(i,:));
allFiles{i} = fileName;
end
matlabpool open
parfor i = 1:size(fileTag,1)
fileName = sprintf(filenameMask,fileTag(i,:));
fitError(i) = growthFitness(fileName,growthConeFiles);
end
matlabpool close
figure
plot(runDiffusion,fitError,'k.')
xlabel('Diffusion')
ylabel('Error')
figure
plot(runActTransp,fitError,'k.')
xlabel('Active transport')
ylabel('Error')
figure
plot(runSomaConc, fitError, 'k.')
xlabel('Soma tubulin concentration')
ylabel('Error')
figure
plot(runPolyRate,fitError,'k.')
xlabel('Polymerisation rate')
ylabel('Error')
figure
plot(runDepolyRate, fitError, 'k.')
xlabel('Depolymerisation rate')
ylabel('Error')
figure
plot(runTubulinDecay, fitError, 'k.')
xlabel('Tubulin decay')
ylabel('Error')
uDiff = unique(runDiffusion);
uDecay = unique(runTubulinDecay);
[diffAll,decayAll] = meshgrid(runDiffusion,runTubulinDecay);
tagIdx = [2 3 4 5];
uTag = unique(fileTag(:,tagIdx),'rows');
for j = 1:size(uTag,1)
errorAll = NaN*ones(size(diffAll));
for i = 1:numel(diffAll)
idx = find(diffAll(i) == runDiffusion(:) ...
& decayAll(i) == runTubulinDecay(:) ...
& fileTag(:,tagIdx(1)) == uTag(j,1) ...
& fileTag(:,tagIdx(2)) == uTag(j,2) ...
& fileTag(:,tagIdx(3)) == uTag(j,3) ...
& fileTag(:,tagIdx(4)) == uTag(j,4));
errorAll(i) = fitError(idx);
end
if(0)
figure
surf(diffAll,decayAll,errorAll)
xlabel('Diffusion')
ylabel('Decay')
title(num2str(uTag(j,:)))
end
end
idx = find(fitError == min(fitError));
if(length(idx) > 3)
disp('Multiple files with same fittness. Only showing the first three first')
end
for i = 1:min(length(idx),3)
visualisePredictionSpeedFcn(allFiles{idx(i)}, fitError(idx(i)));
end
inFile = strrep(allFiles{idx(1)},'output','input');
[newFile, fakeSummary] = verifyParameterPredictionOnOtherGrowthCone(inFile,altGC);
runStr = sprintf('python runSimWorkerPredictSpeed.py %s 1', fakeSummary)
system(runStr)
visualisePredictionSpeedFcn(newFile, growthFitness(newFile));