123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- function humaneDVH(planName245cm,planName0625cm)
- addpath('C:\Documents and Settings\Steve\My Documents\Research\matlab')
- addpath('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqUtil')
- addpath('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input')
- Ndvhbins = 1000; %number of dvh bins
- %prescTumor = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003linPrescVol\PTV70DosePlus.bin'); %open prescription in Matlab
- %prescTumor = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003rootPrescVol\PTV70DosePlus.bin');
- %prescTumor = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003quadPrescVol\PTV70DosePlus.bin');
- prescTumor = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003gompPrescVol\PTV70DosePlus.bin');
- prescNormal = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003uniPrescVolNew\NormalDosePlus.bin');
- prescLarynx = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003uniPrescVolNew\larynxDosePlus.bin');
- prescRt = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003uniPrescVolNew\RtparotidDosePlus.bin');
- prescLt = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003uniPrescVolNew\LtparotidDosePlus.bin');
- prescCord = open_presc('C:\Documents and Settings\Steve\My Documents\Research\optNew\linlsqOpt\input\HN003uniPrescVolNew\CordDosePlus.bin');
- %dim = 1; %2D
- dim = 30; %3D
- fid = fopen(planName245cm,'rb'); %open plans in Matlab
- plan245cm = reshape(fread(fid,'float'),72,72,dim);
- fclose(fid);
- fid = fopen(planName0625cm,'rb'); %open plans in Matlab
- plan0625cm = reshape(fread(fid,'float'),72,72,dim);
- fclose(fid);
- for i=1:prescNormal.Nind;
- prescNormal.non_zero_values(i)=1;
- end
- for i=1:prescLarynx.Nind;
- prescLarynx.non_zero_values(i)=1;
- end
- for i=1:prescRt.Nind;
- prescRt.non_zero_values(i)=1;
- end
- for i=1:prescLt.Nind;
- prescLt.non_zero_values(i)=1;
- end
- for i=1:prescCord.Nind;
- prescCord.non_zero_values(i)=1;
- end
- tumorMask = single(~~(full3D(prescTumor))); %define tissue masks
- normalMask = single(~~(full3D(prescNormal)));
- larynxMask = single(~~(full3D(prescLarynx)));
- rtMask = single(~~(full3D(prescRt)));
- ltMask = single(~~(full3D(prescLt)));
- cordMask = single(~~(full3D(prescCord)));
- tumorDose245cm = plan245cm.*tumorMask; %dose distributions in each ROI
- tumorDose0625cm = plan0625cm.*tumorMask;
- normalDose245cm = plan245cm.*normalMask;
- normalDose0625cm = plan0625cm.*normalMask;
- larynxDose245cm = plan245cm.*larynxMask;
- larynxDose0625cm = plan0625cm.*larynxMask;
- rtDose245cm = plan245cm.*rtMask;
- rtDose0625cm = plan0625cm.*rtMask;
- ltDose245cm = plan245cm.*ltMask;
- ltDose0625cm = plan0625cm.*ltMask;
- cordDose245cm = plan245cm.*cordMask;
- cordDose0625cm = plan0625cm.*cordMask;
- tumorDoseSparse245cm = sparse3D(tumorDose245cm); %convert 3D matrices to sparse matrices
- tumorDoseSparse0625cm = sparse3D(tumorDose0625cm);
- normalDoseSparse245cm = sparse3D(normalDose245cm);
- normalDoseSparse0625cm = sparse3D(normalDose0625cm);
- larynxDoseSparse245cm = sparse3D(larynxDose245cm);
- larynxDoseSparse0625cm = sparse3D(larynxDose0625cm);
- rtDoseSparse245cm = sparse3D(rtDose245cm);
- rtDoseSparse0625cm = sparse3D(rtDose0625cm);
- ltDoseSparse245cm = sparse3D(ltDose245cm);
- ltDoseSparse0625cm = sparse3D(ltDose0625cm);
- cordDoseSparse245cm = sparse3D(cordDose245cm);
- cordDoseSparse0625cm = sparse3D(cordDose0625cm);
- tumorNormDose245cm = ((tumorDoseSparse245cm.non_zero_values)./(prescTumor.non_zero_values)); %calculate equivalent uniform dose
- tumorAverageDose245cm = mean(prescTumor.non_zero_values);
- tumorEdose245cm = tumorNormDose245cm.*tumorAverageDose245cm;
- tumorNormDose0625cm = ((tumorDoseSparse0625cm.non_zero_values)./(prescTumor.non_zero_values)); %calculate equivalent uniform dose
- tumorAverageDose0625cm = mean(prescTumor.non_zero_values);
- tumorEdose0625cm = tumorNormDose0625cm.*tumorAverageDose245cm;
- tumorPrescNorm245cm =
- % NON UNIFORM PRESCRIPTIONS TO NORMAL TISSUE AND OAR
- % normalNormDose = ((normalDoseSparse.non_zero_values)./(prescNormal.non_zero_values));
- % normalAverageDose = mean(normalDoseSparse.non_zero_values);
- % normalEdose = normalNormDose.*normalAverageDose;
- %
- % eyesNormDose = ((eyesDoseSparse.non_zero_values)./(prescEyes.non_zero_values));
- % eyesAverageDose = mean(eyesDoseSparse.non_zero_values);
- % eyesEdose = eyesNormDose.*eyesAverageDose;
- dMax = 1.1*max(tumorEdose245cm);
- dvhbins = [0:Ndvhbins-1]*dMax/Ndvhbins;
- dHistTumor245cm = histc(tumorEdose245cm,dvhbins);
- dHistTumor0625cm = histc(tumorEdose0625cm,dvhbins);
- % dHistNormal = histc(normalEdose,dvhbins);
- % dHistEyes = histc(eyesEdose,dvhbins);
- dHistTumor = histc(tumorDoseSparse0625cm.non_zero_values,dvhbins);
- dHistPresc = histc(prescTumor.non_zero_values,dvhbins);
- dHistNormal245cm = histc(normalDoseSparse245cm.non_zero_values,dvhbins);
- dHistNormal0625cm = histc(normalDoseSparse0625cm.non_zero_values,dvhbins);
- dHistLarynx245cm = histc(larynxDoseSparse245cm.non_zero_values,dvhbins);
- dHistLarynx0625cm = histc(larynxDoseSparse0625cm.non_zero_values,dvhbins);
- dHistRt245cm = histc(rtDoseSparse245cm.non_zero_values,dvhbins);
- dHistRt0625cm = histc(rtDoseSparse0625cm.non_zero_values,dvhbins);
- dHistLt245cm = histc(ltDoseSparse245cm.non_zero_values,dvhbins);
- dHistLt0625cm = histc(ltDoseSparse0625cm.non_zero_values,dvhbins);
- dHistCord245cm = histc(cordDoseSparse245cm.non_zero_values,dvhbins);
- dHistCord0625cm = histc(cordDoseSparse0625cm.non_zero_values,dvhbins);
- dHistTumorNorm245cm = 100*dHistTumor245cm./(double(tumorDoseSparse245cm.Nind));
- dHistTumorNorm0625cm = 100*dHistTumor0625cm./(double(tumorDoseSparse0625cm.Nind));
- dHistNormalNorm245cm = 100*dHistNormal245cm./(double(normalDoseSparse245cm.Nind));
- dHistNormalNorm0625cm = 100*dHistNormal0625cm./(double(normalDoseSparse0625cm.Nind));
- dHistLarynxNorm245cm = 100*dHistLarynx245cm./(double(larynxDoseSparse245cm.Nind));
- dHistLarynxNorm0625cm = 100*dHistLarynx0625cm./(double(larynxDoseSparse0625cm.Nind));
- dHistRtNorm245cm = 100*dHistRt245cm./(double(rtDoseSparse245cm.Nind));
- dHistRtNorm0625cm = 100*dHistRt0625cm./(double(rtDoseSparse0625cm.Nind));
- dHistLtNorm245cm = 100*dHistLt245cm./(double(ltDoseSparse245cm.Nind));
- dHistLtNorm0625cm = 100*dHistLt0625cm./(double(ltDoseSparse0625cm.Nind));
- dHistCordNorm245cm = 100*dHistCord245cm./(double(cordDoseSparse245cm.Nind));
- dHistCordNorm0625cm = 100*dHistCord0625cm./(double(cordDoseSparse0625cm.Nind));
- dHistTumor = 100*dHistTumor/(prescTumor.Nind);
- dHistPresc = 100*dHistPresc/(prescTumor.Nind);
- DVHtumor = flipud(cumsum(flipud(dHistTumor)));
- DVHpresc = flipud(cumsum(flipud(dHistPresc)));
- DVHtumor245cm = flipud(cumsum(flipud(dHistTumorNorm245cm)));
- DVHtumor0625cm = flipud(cumsum(flipud(dHistTumorNorm0625cm)));
- DVHnormal245cm = flipud(cumsum(flipud(dHistNormalNorm245cm)));
- DVHnormal0625cm = flipud(cumsum(flipud(dHistNormalNorm0625cm)));
- DVHlarynx245cm = flipud(cumsum(flipud(dHistLarynxNorm245cm)));
- DVHlarynx0625cm = flipud(cumsum(flipud(dHistLarynxNorm0625cm)));
- DVHrt245cm = flipud(cumsum(flipud(dHistRtNorm245cm)));
- DVHrt0625cm = flipud(cumsum(flipud(dHistRtNorm0625cm)));
- DVHlt245cm = flipud(cumsum(flipud(dHistLtNorm245cm)));
- DVHlt0625cm = flipud(cumsum(flipud(dHistLtNorm0625cm)));
- DVHcord245cm = flipud(cumsum(flipud(dHistCordNorm245cm)));
- DVHcord0625cm = flipud(cumsum(flipud(dHistCordNorm0625cm)));
- humanfigure(dvhbins,DVHtumor,DVHpresc,DVHtumor245cm,DVHtumor0625cm)
- %
- %DVHnormal245cm,DVHnormal0625cm,DVHlarynx245cm,DVHlarynx0625cm,DVHrt245cm,DVHrt0625cm,DVHlt245cm,DVHlt0625cm,DVHcord245cm,DVHcord0625cm)
- end
|