%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Supplement to: Laussmann et al 2011 % % Pathway analysis and Sensitivity code % % (C) Bartlomiej Tomiczek & Heinrich Huber, 2011 % Royal College of Surgeons in Ireland % % Execute: trail(figure) % % figure = 'Fig2B' for figure 2B % figure = 'Fig2C' for figure 2C % figure = 'Fig2D' for figure 2D % figure = 'Fig2E' for figure 2E % % example trail('Fig2B') % % Please email comments and suggestions to heinhuber@rcsi.ie or mrehm@rcsi.ie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function trail(ifig) global t c1 tmax conc_FADD conc_TrailR conc_cflip PCAS8 imesh = 10; % mesh sizes for sensitivity analysis rfactor = 10; % maximum factor for up and downregulation rmin = 0; % exponential factor for down-regulation rmax = +log10(rfactor); % exponential factor for up-regulation icheck = 8; % number of checked parameters t1_mem = zeros(imesh,icheck); % Storage for Time for 1 % Substrate Cleavage tmax = 600; % Maximum Integration Time tmesh = [0:1:tmax]; % imode = 0 (single calculation), imode = 1 (sensitivity) % dose' = 'low', 'high' switch (ifig) case ('Fig2B') 'Figure 2B' imode = 0; dose = 'high'; % case ('Fig2C') 'Figure 2B' imode = 0; dose = 'low'; % case ('Fig2D') 'Figure 2B' imode = 1; dose = 'high'; % case ('Fig2E') 'Figure 2B' imode = 1; dose = 'low'; otherwise 'no valid figure: use Fig2B, Fig2B, Fig2B, or Fig2B' end npars = 24; % Number of reaction partners regold = 0; if strcmp(dose,'low') 'low dose Trail' trained_trail = 1.32; % trained Trail concentration elseif strcmp(dose,'high') 'high dose Trail' trained_trail = 13.2; % trained Trail concentration end trained_decoy = 2.97e-3; % trained DECOY-R concentration trained_oligo = 2.11e-3; % trained receptor oligomerisation conc_FADD = 0.33; conc_TrailR = 1.6117; conc_cflip = 0.0566; PCAS8 = 0.4295; conc_DISC = conc_TrailR/3; % receptor trimer plus 3 x FADD % % Normalisation of concentrations % xnorm(1) = trained_trail; xnorm(2:3) = conc_TrailR*[1 1]; xnorm(4) = conc_FADD; xnorm(5) = conc_DISC; xnorm(6) = conc_cflip; xnorm(7) = conc_DISC; xnorm(8) = PCAS8; xnorm(9) = conc_DISC; xnorm(10) = PCAS8; xnorm(11) = conc_DISC; xnorm(12) = conc_cflip; xnorm(13:15) = conc_DISC*[1 1 1]; xnorm(16) = PCAS8/2; xnorm(17) = trained_decoy; xnorm(18:21) = trained_trail*[1 1 1 1]; xnorm(22) = 1; xnorm(23) = trained_decoy; xnorm(24) = conc_DISC; switch imode case 0 % % Plot all entities for the respective scenario % [t1] = sens(trained_trail,trained_decoy,trained_oligo, 1,1, 0); conc = ppval(spline(t,c1'), tmesh)'; 'Time to 5 % substrate cleavage' t1 for i = 1: npars conc(:,i) = 100*conc(:,i)/xnorm(i); end % subplot(2,2,1), plot(tmesh, conc(:,[1 2 3 4 17 23 24])) set(gca,'FontSize',12) set(gca,'FontName','Arial') set (gca, 'LineWidth',2) xlabel('Time [min]') ylabel('Relative concentration [%Init]') legend('TRAIL', 'TRAIL-R', 'TRAIL-R+l', 'FADD', 'Decoy-R', 'Decoy-R+l', 'DISC-flip-s') set (gca, 'LineWidth',2) % subplot(2,2,2), plot(tmesh, conc(:,[5 6 7 9 11 12 ])) set(gca,'FontSize',12) set(gca,'FontName','Arial') set (gca, 'LineWidth',2) xlabel('Time [min]') ylabel('Relative concentration [%Init]') legend('DISC', 'c-flip-l', 'DISC-flip_l', 'DISC-flip-pcas8', 'BlockDISC', 'c-flip-s') set (gca, 'LineWidth',2) % subplot(2,2,3), plot(tmesh, conc(:,[18 19 20 21 ])) set(gca,'FontSize',12) set(gca,'FontName','Arial') set (gca, 'LineWidth',2) xlabel('Time [min]') ylabel('Relative concentration [%Init]') legend('dimer_a', 'dimer_n ', 'trimer_a', 'trimer_n') set (gca, 'LineWidth',2) % subplot(2,2,4), plot(tmesh, conc(:,[8 10 13 14 15 16 22 ])) set(gca,'FontSize',12) set(gca,'FontName','Arial') set (gca, 'LineWidth',2) xlabel('Time [min]') ylabel('Relative concentration [%Init]') legend('procas8', 'p43/p41', 'DISC-procas8', 'DISC-procas8-2', 'DISC-p43/p41', 'cas8', 'Substrate') set (gca, 'LineWidth',2) case 1 % % Do a sensitivity analysis % for i = 1:imesh+1 reg = 10^(rmin + (rmax-rmin)/imesh*(i-1)); if regold<1 && reg>1 reg = 1; % use basis point = 1 end xmesh(i) = reg; for j = 1:icheck [t1_] = sens(trained_trail,trained_decoy,trained_oligo, reg,1, j); t1_mem(i,j) = t1_; end regold = reg; 'step', i end figure plot(xmesh,t1_mem(:,[1:5,8])) hold on set(gca,'FontSize',12) set(gca,'FontName','Arial') set(gca,'XScale','log') set (gca, 'LineWidth',2) axis([1,rfactor,0,1000]) set(gca,'XTick',[ 1. rfactor]) xlabel('Rel. change of parameter') ylabel('Time to 5 % substrate cleavage [min]') legend('TRAIL-R','FADD', 'FLIP','Procaspase 8 concentration', 'Decoy Receptor concentration', 'TRAIL-R and FLIP' ) figure plot(xmesh,t1_mem(:,6:7)) hold on set(gca,'FontSize',12) set(gca,'FontName','Arial') set(gca,'XScale','log') set (gca, 'LineWidth',2) axis([1,rfactor,0,1000]) set(gca,'XTick',[1. rfactor]) xlabel('Rel. change of parameter') ylabel('Time to 5 % substrate cleavage [min]') legend('Oligomerization constant', 'Caspase 8 activity' ) otherwise end end function [t1] = sens(conc_TRAIL, conc_decoy ,act_dimer, regulate, regulate2, index) global t c1 tmax conc_FADD conc_TrailR conc_cflip PCAS8 % % Regulates the protein / activity indicated by "index" by the factor "regulate" % % index = 1 -> TRAIL concentration here: % index = 2 -> FADD % index = 3 -> FLIP, both sides at same time % index = 4 -> Procaspase 8 concentration % index = 5 -> Decoy receptor concentration, here %cd95-rn % index = 6 -> Oligomerization activity, here act_dimer % index = 7 -> Caspase 8 activity, here act_c8 % % Note: % Factor (1+(index==x)*(regulate-1)) gives "regulate" if % condition "index==x" is met, otherwise 1 (no regulation) % c(1) = conc_TRAIL; %effective TRAIL concentration c(2) = conc_TrailR*(1+(index==1)*(regulate-1))*(1+(index==8)*(regulate-1))* ... (1+(index==9)*(regulate-1)) ;%TRAIL-R c(3) = 0; %TRAIL-R+l c(4) = conc_FADD*(1+(index==2)*(regulate-1));%FADD c(5) = 0; %DISC c(6) = conc_cflip*(1+(index==3)*(regulate-1))*(1+(index==8)*(regulate-1));%c-flip-l hela c(7) = 0; %DISC-flip c(8) = PCAS8*(1+(index==4)*(regulate-1));%procas8 hela c(9) = 0; %DISC-flip-pcas8 c(10) = 0; %p43/p41 c(11) = 0; %BlockDISC c(12) = conc_cflip*(1+(index==3)*(regulate-1))*(1+(index==8)*(regulate-1));%c-flip-s hela c(13) = 0; %DISC-procas8 c(14) = 0; %DISC-procas8-2 c(15) = 0; %DISC-p43/p41 c(16) = 0; %cas8c c(17) = conc_decoy*(1+(index==5)*(regulate-1));%Decoy-R c(18) = 0; %dimer_a c(19) = 0; %dimer_n c(20) = 0; %trimer_a c(21) = 0; %trimer_n c(22) = 1; %Substrate c(23) = 0; %Decoy-R+l c(24) = 0; %DISC-flip-s % act_c8 = 5.22; %Caspase-8 activity tmesh = [0:1:tmax]; tstep = 0.1; opt = odeset('RelTol', 1e-10, 'MaxStep', tstep); %options for the solver relative error tolerance [t c1] = ode23s(@oligo2, [0 tmax],c,opt,act_dimer*(1+(index==6)*(regulate-1)), act_c8*(1+(index==7)*(regulate-1))); Sub = 100*(1-ppval(spline(t,c1(:,22)),tmesh)); t1 = tmesh(find(Sub>=5,1)); % if (isempty(t1)) t1=0; end % end function out = oligo2(t,c,x_dim, x_c8) % % Stoichiometric matrix giving the network topology. Please see information about reaction % partners and reactions in the supplementary text % " Supplementary Information 1 Mathematical Simulation of TRAIL-induced Apoptosis Initiation" % S = [ % 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 %TRAIL TRAIL-R TRAIL-R+l FADD DISC c-flip-l DISC-flip_l procas8 DISC-flip-pcas8 p43/p41 BlockDISC c-flip-s DISC-procas8 DISC-procas8-2 DISC-p43/p41 cas8 Decoy-R dimer_a dimer_n trimer_a trimer_n Substrate Decoy-R+l DISC-flip-s -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %1 TRAIL + TRAIL-R ? TRAIL-R+l 0 0 0 -3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 %2 trimerA + FADD ? DISC 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 %3 DISC-casp8 ? DISC + casp8 0 0 0 0 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %4 DISC + c-flip-l ? DISC-flip-l 0 0 0 0 -1 0 0 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 %5 DISC + procas8 ? DISC-procas8 0 0 0 0 0 0 0 -1 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 %6 DISC + procas8 ? DISC-procas8 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 %7 DISC + procas8 ? DISC-procas8 0 0 0 0 -1 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 0 0 0 1 %8 c-flip-s + DISC ? DISC-flip-s 0 0 0 0 0 0 0 0 0 0 1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 %9 c-flip-s + DISC-procas8? blockDISC 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 %10 c-flip-l + DISC-procas8? DISC-flip-pcas8 0 0 0 0 0 0 0 0 -1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 %11 DISC-flip-l-pcas8 ? p43/p41 + blockDISC 0 0 0 0 0 0 -1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %12 DISC-flip-l + procas8 ? DISC-flip-pcas8 0 0 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 %13 TRAIL-R+l *2 ? dimer_a 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 %14 TRAIL-R+l + Decoy-R+l ? dimer_n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -2 0 %15 Decoy-R+l *2 ? dimer_n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0 -1 0 %16 Decoy-R+l + dimer_a ? trimer_n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 -1 0 %17 Decoy-R+l + dimer_n ? trimer_n 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 %18 TRAIL-R+l + dimer_a ? trimer_a 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 1 0 0 0 %19 TRAIL-R+l + dimer_n ? trimer_n 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 %20 casp8 + Substrate ? casp8 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 %21 TRAIL + Decoy-R ? Decoy-R+l 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 -1 %22 c-flip-s + DISC-flip-s ? blockDISC 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 %23 c-flip-s + DISC-flip-l ? blockDISC 0 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %24 c-flip-l + DISC-flip-l ? blockDISC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 %25 p43/p41 + Substrate ? p43/p41 ]; klr = 5e-02; % TRAIL binding constant kdiscbs = 8.39e+05; % DISC formation constant kdisk_p43_to_disk_cas8 = 4.71e+00; % caspase-8 recruitment constant kdisk_flip = 1.88e+05; % binding of cflip to the DISC kdisk_procas8 = 2.56e+03; % binding of procaspase-8 to the DISC kdisk_procas8_2 = 7.43e+05; % binding of procaspase-8 to the DISC-procaspase-8 complex kdisk_flip_2 = 1.88e+05*kdisk_procas8_2/kdisk_procas8; % binding of a second cFLIP to the DISC kdisk_flip_procas8_to_diskp43 = 1.11e-02; % cleavage one molecule of procspase-8 to the p43/p41 fragment, blocking the DISC by heterodimerisation with FLIP kdisk_procas8_to_diskp43 = 9.14e-01; % cleavage of procaspase-8 to p43/p41 kdim = x_dim; % fitted receptor oligomerization ktrim = x_dim; % fitted receptor oligomerization x_p43p41 = x_c8/2; % half of caspase-8 activity according Pop 2011 % % v = zeros(25,1); % % Reaction velocities, see " Supplementary Information 1" % v(1) = klr*c(1)*c(2); %klr*TRAIL*TRAIL-R v(2) = kdiscbs*c(20)*c(4); %kdiscbs*TRAIL-R+l*fadd v(3) = kdisk_p43_to_disk_cas8*c(15); %kdisk-p43-to-DISC-cas8*DISC-p43/p41 v(4) = kdisk_flip*c(5)*c(6); %kflip *cflipl*discbs v(5) = kdisk_procas8*c(5)*c(8); %kdisk_procas8*procas8*discbs v(6) = kdisk_procas8_2*c(13)*c(8); %kdisk_procas8_2*procas8*discbs_procas8 v(7) = kdisk_procas8_to_diskp43*c(14); %kdisk_procas8_to_diskp43*discbs_procas8_2 v(8) = kdisk_flip*c(12)*c(5); %kdisk_flip*DISC*cflips v(9) = kdisk_flip_2*c(12)*c(13); %kdisk_flip_2*cflips*DISC-procas8 v(10) = kdisk_flip_2*c(6)*c(13); %kdisk_flip_2*cflipl*DISC-procas8 v(11) = kdisk_flip_procas8_to_diskp43*c(9); %kdisk_flip_procas8_to_diskp43*procas8_discbs-flip-pcas8 v(12) = kdisk_procas8_2*c(7)*c(8); %kdisk-procas8-2*discbs-flip procas8 to discbs-flip-pcas8 v(13) = kdim*c(3)*c(3); %kdim*TRAIL-R+la^2 v(14) = kdim*c(3)*c(23); %kdim*TRAIL-R+la*TRAIL-R+ln v(15) = kdim*c(23)*c(23); %kdim*TRAIL-R+ln^2 v(16) = ktrim*c(18)*c(23); %ktrim*TRAIL-R+ln*dimer_a v(17) = ktrim*c(19)*c(23); %ktrim*TRAIL-R+ln*dimer_n v(18) = ktrim*c(18)*c(3); %ktrim*TRAIL-R+la*dimer_a v(19) = ktrim*c(19)*c(3); %ktrim*TRAIL-R+la*dimer_n v(20) = x_c8*c(22)*c(16); %ktrim*TRAIL-R+la*dimer_n v(21) = klr*c(1)*c(17); v(22) = kdisk_flip_2*c(12)*c(24); %ktrim*TRAIL-R+la*dimer_n v(23) = kdisk_flip_2*c(12)*c(7); %ktrim*TRAIL-R+la*dimer_n v(24) = kdisk_flip_2*c(6)*c(7); %ktrim*TRAIL-R+la*dimer_n v(25) = x_p43p41*c(10)*c(22); %ktrim*TRAIL-R+la*dimer_n out = S'*v; end