Modelling heart development (A): Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
Interaction function developed alongside Meilhac and Le Garrec<br>< br> | Interaction function developed alongside Meilhac and Le Garrec<br>< br> | ||
Put in downloadable model - but first we need to remove such quirks as ungrowing to increase the density of vertices (needed then as we were using 32 bit computer and vertices were a finite resource). | |||
<br><br> | <br><br> |
Revision as of 10:10, 15 July 2011
Interaction function developed alongside Meilhac and Le Garrec
< br>
Put in downloadable model - but first we need to remove such quirks as ungrowing to increase the density of vertices (needed then as we were using 32 bit computer and vertices were a finite resource).
function m = gpt_heart6c4_jab_1_20110714( m ) %m = gpt_heart6c4_jab_1_20110714( m ) % Morphogen interaction function. % Written at 2011-07-14 09:57:29. % GFtbox revision 3609, 2011-07-13 16:10:06.263095. % The user may edit any part of this function between delimiters % of the form "USER CODE..." and "END OF USER CODE...". The % delimiters themselves must not be moved, edited, deleted, or added. if isempty(m), return; end fprintf( 1, '%s found in %s\n', mfilename(), which(mfilename()) ); try m = local_setproperties( m ); catch end realtime = m.globalDynamicProps.currenttime; %%% USER CODE: INITIALISATION % In this section you may modify the mesh in any way whatsoever. %%% END OF USER CODE: INITIALISATION %%% SECTION 1: ACCESSING MORPHOGENS AND TIME. %%% AUTOMATICALLY GENERATED CODE: DO NOT EDIT. if isempty(m), return; end setGlobals(); global gNEW_KA_PAR gNEW_KA_PER gNEW_KB_PAR gNEW_KB_PER global gNEW_K_NOR gNEW_POLARISER gNEW_STRAINRET gNEW_ARREST dt = m.globalProps.timestep; polariser_i = gNEW_POLARISER; P = m.morphogens(:,polariser_i); [kapar_i,kapar_p,kapar_a,kapar_l] = getMgenLevels( m, 'KAPAR' ); [kaper_i,kaper_p,kaper_a,kaper_l] = getMgenLevels( m, 'KAPER' ); [kbpar_i,kbpar_p,kbpar_a,kbpar_l] = getMgenLevels( m, 'KBPAR' ); [kbper_i,kbper_p,kbper_a,kbper_l] = getMgenLevels( m, 'KBPER' ); [knor_i,knor_p,knor_a,knor_l] = getMgenLevels( m, 'KNOR' ); [strainret_i,strainret_p,strainret_a,strainret_l] = getMgenLevels( m, 'STRAINRET' ); [arrest_i,arrest_p,arrest_a,arrest_l] = getMgenLevels( m, 'ARREST' ); [id_venous_pole_i,id_venous_pole_p,id_venous_pole_a,id_venous_pole_l] = getMgenLevels( m, 'ID_VENOUS_POLE' ); [id_arterial_pole_i,id_arterial_pole_p,id_arterial_pole_a,id_arterial_pole_l] = getMgenLevels( m, 'ID_ARTERIAL_POLE' ); [id_iv_i,id_iv_p,id_iv_a,id_iv_l] = getMgenLevels( m, 'ID_IV' ); [id_dorsal_line_i,id_dorsal_line_p,id_dorsal_line_a,id_dorsal_line_l] = getMgenLevels( m, 'ID_DORSAL_LINE' ); [s_dorsal_line_i,s_dorsal_line_p,s_dorsal_line_a,s_dorsal_line_l] = getMgenLevels( m, 'S_DORSAL_LINE' ); [id_right_i,id_right_p,id_right_a,id_right_l] = getMgenLevels( m, 'ID_RIGHT' ); [s_right_i,s_right_p,s_right_a,s_right_l] = getMgenLevels( m, 'S_RIGHT' ); [id_ventral_line_i,id_ventral_line_p,id_ventral_line_a,id_ventral_line_l] = getMgenLevels( m, 'ID_VENTRAL_LINE' ); [id_sventral_line_i,id_sventral_line_p,id_sventral_line_a,id_sventral_line_l] = getMgenLevels( m, 'ID_SVENTRAL_LINE' ); [id_sdorsal_line_i,id_sdorsal_line_p,id_sdorsal_line_a,id_sdorsal_line_l] = getMgenLevels( m, 'ID_SDORSAL_LINE' ); [id_sright_i,id_sright_p,id_sright_a,id_sright_l] = getMgenLevels( m, 'ID_SRIGHT' ); [id_source_i,id_source_p,id_source_a,id_source_l] = getMgenLevels( m, 'ID_SOURCE' ); [id_sink_i,id_sink_p,id_sink_a,id_sink_l] = getMgenLevels( m, 'ID_SINK' ); [id_art_band_i,id_art_band_p,id_art_band_a,id_art_band_l] = getMgenLevels( m, 'ID_ART_BAND' ); [id_newsink_i,id_newsink_p,id_newsink_a,id_newsink_l] = getMgenLevels( m, 'ID_NEWSINK' ); [s_newsink_i,s_newsink_p,s_newsink_a,s_newsink_l] = getMgenLevels( m, 'S_NEWSINK' ); [id_snewsink_i,id_snewsink_p,id_snewsink_a,id_snewsink_l] = getMgenLevels( m, 'ID_SNEWSINK' ); [id_clone_density_i,id_clone_density_p,id_clone_density_a,id_clone_density_l] = getMgenLevels( m, 'ID_CLONE_DENSITY' ); [id_right_ventricle_i,id_right_ventricle_p,id_right_ventricle_a,id_right_ventricle_l] = getMgenLevels( m, 'ID_RIGHT_VENTRICLE' ); [id_left_ventricle_i,id_left_ventricle_p,id_left_ventricle_a,id_left_ventricle_l] = getMgenLevels( m, 'ID_LEFT_VENTRICLE' ); [id_left_i,id_left_p,id_left_a,id_left_l] = getMgenLevels( m, 'ID_LEFT' ); [id_vein_band_i,id_vein_band_p,id_vein_band_a,id_vein_band_l] = getMgenLevels( m, 'ID_VEIN_BAND' ); [id_new_source_i,id_new_source_p,id_new_source_a,id_new_source_l] = getMgenLevels( m, 'ID_NEW_SOURCE' ); [s_left_i,s_left_p,s_left_a,s_left_l] = getMgenLevels( m, 'S_LEFT' ); [id_sleft_i,id_sleft_p,id_sleft_a,id_sleft_l] = getMgenLevels( m, 'ID_SLEFT' ); [id_nsource2_i,id_nsource2_p,id_nsource2_a,id_nsource2_l] = getMgenLevels( m, 'ID_NSOURCE2' ); [s_nsource2_i,s_nsource2_p,s_nsource2_a,s_nsource2_l] = getMgenLevels( m, 'S_NSOURCE2' ); [id_snsource2_i,id_snsource2_p,id_snsource2_a,id_snsource2_l] = getMgenLevels( m, 'ID_SNSOURCE2' ); [id_nsink2_i,id_nsink2_p,id_nsink2_a,id_nsink2_l] = getMgenLevels( m, 'ID_NSINK2' ); [s_nsink2_i,s_nsink2_p,s_nsink2_a,s_nsink2_l] = getMgenLevels( m, 'S_NSINK2' ); [id_snsink2_i,id_snsink2_p,id_snsink2_a,id_snsink2_l] = getMgenLevels( m, 'ID_SNSINK2' ); [id_pol2_i,id_pol2_p,id_pol2_a,id_pol2_l] = getMgenLevels( m, 'ID_POL2' ); [s_pol2_i,s_pol2_p,s_pol2_a,s_pol2_l] = getMgenLevels( m, 'S_POL2' ); % Mesh type: cylinder % basecap: 0 % baseheight: 1 % baserings: 0 % circumdivs: 30 % height: 1.5 % heightdivs: 30 % radius: 0.1 % randomness: 0 % topcap: 0 % topheight: 1 % toprings: 0 % version: 1 % Morphogen Diffusion Decay Dilution Mutant % ------------------------------------------------- % KAPAR ---- ---- ---- ---- % KAPER ---- ---- ---- ---- % KBPAR ---- ---- ---- ---- % KBPER ---- ---- ---- ---- % KNOR ---- ---- ---- ---- % POLARISER 0.05 ---- ---- ---- % STRAINRET ---- ---- ---- ---- % ARREST ---- ---- ---- ---- % ID_VENOUS_POLE ---- ---- ---- ---- % ID_ARTERIAL_POLE ---- ---- ---- ---- % ID_IV ---- ---- ---- ---- % ID_DORSAL_LINE ---- ---- ---- ---- % S_DORSAL_LINE 0.0001 0.1 ---- ---- % ID_RIGHT ---- ---- ---- ---- % S_RIGHT 0.0001 0.1 ---- ---- % ID_VENTRAL_LINE ---- ---- ---- ---- % ID_SVENTRAL_LINE ---- ---- ---- ---- % ID_SDORSAL_LINE ---- ---- ---- ---- % ID_SRIGHT ---- ---- ---- ---- % ID_SOURCE ---- ---- ---- ---- % ID_SINK ---- ---- ---- ---- % ID_ART_BAND ---- ---- ---- ---- % ID_NEWSINK ---- ---- ---- ---- % S_NEWSINK 0.01 0.1 ---- ---- % ID_SNEWSINK ---- ---- ---- ---- % ID_CLONE_DENSITY ---- ---- ---- ---- % ID_RIGHT_VENTRICLE ---- ---- ---- ---- % ID_LEFT_VENTRICLE ---- ---- ---- ---- % ID_LEFT ---- ---- ---- ---- % ID_VEIN_BAND ---- ---- ---- ---- % ID_NEW_SOURCE ---- ---- ---- ---- % S_LEFT 0.0001 0.1 ---- ---- % ID_SLEFT ---- ---- ---- ---- % ID_NSOURCE2 ---- ---- ---- ---- % S_NSOURCE2 0.01 0.1 ---- ---- % ID_SNSOURCE2 ---- ---- ---- ---- % ID_NSINK2 ---- ---- ---- ---- % S_NSINK2 0.01 0.1 ---- ---- % ID_SNSINK2 ---- ---- ---- ---- % ID_POL2 ---- ---- ---- ---- % S_POL2 0.01 ---- ---- ---- %%% USER CODE: MORPHOGEN INTERACTIONS % In this section you may modify the mesh in any way that does not % alter the set of nodes. if Steps(m)==0 % Put any code here that should only be performed at the start of % the simulation, for example, to set up initial morphogen values. maxz=max(m.nodes(:,3)); % the 3 stands for z axis, i.e. x,y,z are 1,2,3 minz=min(m.nodes(:,3)); epsilon=0.01; id_venous_pole_p(m.nodes(:,3)<minz+epsilon)=1; id_arterial_pole_p(m.nodes(:,3)>maxz-epsilon)=1; d=maxz-minz; top=d*0.5; bot=d*0.25; id_iv_p((m.nodes(:,3)>bot+minz)&(m.nodes(:,3)<top+minz))=1; topsink=d*0.75; botsink=d*0.25; %was 0.5 id_art_band_p((m.nodes(:,3)>botsink+minz)&(m.nodes(:,3)<topsink+minz))=1; topsinknodes = (m.nodes(:,3)>topsink+minz-5*epsilon)&(m.nodes(:,3)<topsink+minz+5*epsilon); % id_nsink2_p(topsinknodes)=1; m.morphogenclamp(topsinknodes,s_pol2_i) = 1; s_pol2_p(topsinknodes) = 0; botsinknodes = (m.nodes(:,3)>botsink+minz-5*epsilon)&(m.nodes(:,3)<botsink+minz+5*epsilon); % id_nsource2_p(botsinknodes)=1; m.morphogenclamp(botsinknodes,s_pol2_i) = 1; s_pol2_p(botsinknodes) = 1; topsink=d*0.5; % was 0.24; % place source inside the left ventricle botsink=d*0.25; % was 0.2; id_vein_band_p((m.nodes(:,3)>botsink+minz)&(m.nodes(:,3)<topsink+minz))=1; dorsal=max(m.nodes(:,2)); id_dorsal_line_p(m.nodes(:,2)>dorsal-epsilon/4)=1; ventral=min(m.nodes(:,2)); id_ventral_line_p(m.nodes(:,2)<ventral+epsilon/4)=1; right=min(m.nodes(:,1)); id_right_p(m.nodes(:,1)<right+epsilon/4)=1; left=max(m.nodes(:,1)); id_left_p(m.nodes(:,1)>left-epsilon/4)=1; id_source_p=id_venous_pole_p;% .* id_dorsal_line_p; id_sink_p=id_arterial_pole_p;%.*id_ventral_line_p; id_right_ventricle_p=id_right_p.*id_art_band_p; id_left_ventricle_p=id_ventral_line_p.*id_vein_band_p; %id_left_ventricle_p=id_left_p.*id_vein_band_p; id_newsink_p=id_right_p.*id_art_band_p; id_clone_density_p=ones(size(id_clone_density_p)); end if realtime<20 % hours kapar_p=-0.05 .* (id_art_band_l); kbpar_p=-0.05 .* (id_art_band_l); elseif (realtime>20-dt) && (realtime<20+dt) id_sdorsal_line_p=s_dorsal_line_l; id_sright_p =s_right_l; id_sleft_p =s_left_l; id_snewsink_p =100*s_newsink_l; id_snsink2_p =100*s_nsink2_l; id_snsource2_p =100*s_nsource2_l; id_new_source_p =id_left_ventricle_l; id_clone_density_p=100*ones(size(id_clone_density_p)); % m = leaf_makesecondlayer( m, ... % This function adds biological cells. % 'mode', 'each', ... % Make biological cells randomly scattered over the flower. % 'relinitarea', 1/10000, ... % was 1/2000 Each cell has area was 1/8000 of the initial area of the flower. % 'probpervx', 'ID_CLONE_DENSITY', ... % ...% 'fraccells', 0.1, ... % One cell will be created at a random position inside each the finite elements. % ...%'fraccells', 1, ... % One cell will be created at a random position inside each the finite elements. % 'sides', 6, ... % Each cell is approximated as a 6-sided regular polygon. % 'colors', [1 0 0], ... % Each cell is red. % 'add', true ); % These cells are added to any cells existing already. else k=s_pol2_l/max(s_pol2_l); BASICGROWTH=0.03; DeltaKpar=... id_art_band_l.* inh(100,(1-k).*id_sleft_l+k.*id_sdorsal_line_l); % +id_vein_band_l.*inh(100,id_sdorsal_line_l); kapar_p=BASICGROWTH * DeltaKpar ; kbpar_p=BASICGROWTH * DeltaKpar; anisotropy=0.1; DeltaKper=anisotropy.*(id_art_band_l); kaper_p=BASICGROWTH*DeltaKper; kbper_p=BASICGROWTH*DeltaKper; % id_iv_l .* inh(100,id_sdorsal_line_l)... % bend and turn in iv region % + id_art_band_l .* inh(100,id_sleft_l); % kapar_p=BASICGROWTH * DeltaKpar; % kbpar_p=BASICGROWTH * DeltaKpar; % % BASICGROWTHPER=0; %BASICGROWTH*0.5; % DeltaKper=... % 0.3*id_art_band_l .* inh(100,id_sleft_l)... % +0.3*id_iv_l .* inh(100,id_sdorsal_line_l); % kaper_p=BASICGROWTHPER * DeltaKper; % kbper_p=BASICGROWTHPER * DeltaKper; % do the growth end if realtime>60 m.mgen_production(:,polariser_i) = 0.1... *((id_source_p+1*id_new_source_l)... + 0.5 ... % was 1 - P.*(id_sink_l+1*id_snewsink_l)); else m.mgen_production(:,polariser_i) = 0.1... *((id_source_p+0*id_new_source_l)... + 0.5 ... % was 1 - P.*(id_sink_l+0*id_snewsink_l)); end m.mgen_production(:,s_pol2_i) = 0; % 0.1*(id_nsource2_l - s_pol2_l.*id_nsink2_l); m.mgen_production(:,s_dorsal_line_i) = 0.1*(id_dorsal_line_p); m.mgen_production(:,s_right_i) = 0.1*(id_right_p); m.mgen_production(:,s_left_i) = 0.1*(id_left_p); m.mgen_production(:,s_newsink_i) = 0.1*(id_newsink_p); %%% END OF USER CODE: MORPHOGEN INTERACTIONS %%% SECTION 3: INSTALLING MODIFIED VALUES BACK INTO MESH STRUCTURE %%% AUTOMATICALLY GENERATED CODE: DO NOT EDIT. m.morphogens(:,polariser_i) = P; m.morphogens(:,kapar_i) = kapar_p; m.morphogens(:,kaper_i) = kaper_p; m.morphogens(:,kbpar_i) = kbpar_p; m.morphogens(:,kbper_i) = kbper_p; m.morphogens(:,knor_i) = knor_p; m.morphogens(:,strainret_i) = strainret_p; m.morphogens(:,arrest_i) = arrest_p; m.morphogens(:,id_venous_pole_i) = id_venous_pole_p; m.morphogens(:,id_arterial_pole_i) = id_arterial_pole_p; m.morphogens(:,id_iv_i) = id_iv_p; m.morphogens(:,id_dorsal_line_i) = id_dorsal_line_p; m.morphogens(:,s_dorsal_line_i) = s_dorsal_line_p; m.morphogens(:,id_right_i) = id_right_p; m.morphogens(:,s_right_i) = s_right_p; m.morphogens(:,id_ventral_line_i) = id_ventral_line_p; m.morphogens(:,id_sventral_line_i) = id_sventral_line_p; m.morphogens(:,id_sdorsal_line_i) = id_sdorsal_line_p; m.morphogens(:,id_sright_i) = id_sright_p; m.morphogens(:,id_source_i) = id_source_p; m.morphogens(:,id_sink_i) = id_sink_p; m.morphogens(:,id_art_band_i) = id_art_band_p; m.morphogens(:,id_newsink_i) = id_newsink_p; m.morphogens(:,s_newsink_i) = s_newsink_p; m.morphogens(:,id_snewsink_i) = id_snewsink_p; m.morphogens(:,id_clone_density_i) = id_clone_density_p; m.morphogens(:,id_right_ventricle_i) = id_right_ventricle_p; m.morphogens(:,id_left_ventricle_i) = id_left_ventricle_p; m.morphogens(:,id_left_i) = id_left_p; m.morphogens(:,id_vein_band_i) = id_vein_band_p; m.morphogens(:,id_new_source_i) = id_new_source_p; m.morphogens(:,s_left_i) = s_left_p; m.morphogens(:,id_sleft_i) = id_sleft_p; m.morphogens(:,id_nsource2_i) = id_nsource2_p; m.morphogens(:,s_nsource2_i) = s_nsource2_p; m.morphogens(:,id_snsource2_i) = id_snsource2_p; m.morphogens(:,id_nsink2_i) = id_nsink2_p; m.morphogens(:,s_nsink2_i) = s_nsink2_p; m.morphogens(:,id_snsink2_i) = id_snsink2_p; m.morphogens(:,id_pol2_i) = id_pol2_p; m.morphogens(:,s_pol2_i) = s_pol2_p; %%% USER CODE: FINALISATION % In this section you may modify the mesh in any way whatsoever. %%% END OF USER CODE: FINALISATION end %%% USER CODE: SUBFUNCTIONS function m = local_setproperties( m ) % This function is called at time zero in the INITIALISATION section of the % interaction function. It provides commands to set each of the properties % that are contained in m.globalProps. Uncomment whichever ones you would % like to set yourself, and put in whatever value you want. % % Some of these properties are for internal use only and should never be % set by the user. At some point these will be moved into a different % component of m, but for the present, just don't change anything unless % you know what it is you're changing. % m = leaf_setproperty( m, 'trinodesvalid', true ); % m = leaf_setproperty( m, 'prismnodesvalid', true ); % m = leaf_setproperty( m, 'thicknessRelative', 0.020000 ); % m = leaf_setproperty( m, 'thicknessArea', 0.000000 ); % m = leaf_setproperty( m, 'activeGrowth', 1.000000 ); % m = leaf_setproperty( m, 'displayedGrowth', 30 ); % m = leaf_setproperty( m, 'allowNegativeGrowth', true ); % m = leaf_setproperty( m, 'usePrevDispAsEstimate', true ); % m = leaf_setproperty( m, 'mingradient', 0.000000 ); % m = leaf_setproperty( m, 'thresholdsq', 0.005874 ); % m = leaf_setproperty( m, 'splitmargin', 1.000000 ); % m = leaf_setproperty( m, 'thresholdmgen', 0.500000 ); % m = leaf_setproperty( m, 'bulkmodulus', 1.000000 ); % m = leaf_setproperty( m, 'poissonsRatio', 0.300000 ); % m = leaf_setproperty( m, 'timestep', 2.500000 ); % m = leaf_setproperty( m, 'timeunitname', 'hour' ); % m = leaf_setproperty( m, 'distunitname', 'mm' ); % m = leaf_setproperty( m, 'validateMesh', true ); % m = leaf_setproperty( m, 'allowSplitLongFEM', false ); % m = leaf_setproperty( m, 'longSplitThresholdPower', 0.000000 ); % m = leaf_setproperty( m, 'allowSplitBentFEM', false ); % m = leaf_setproperty( m, 'allowSplitBio', true ); % m = leaf_setproperty( m, 'allowFlipEdges', false ); % m = leaf_setproperty( m, 'allowElideEdges', false ); % m = leaf_setproperty( m, 'mincellangle', 0.200000 ); % m = leaf_setproperty( m, 'alwaysFlat', 0.000000 ); % m = leaf_setproperty( m, 'flatten', false ); % m = leaf_setproperty( m, 'flattenratio', 1.000000 ); % m = leaf_setproperty( m, 'useGrowthTensors', false ); % m = leaf_setproperty( m, 'plasticGrowth', false ); % m = leaf_setproperty( m, 'totalinternalrotation', 2.619720 ); % m = leaf_setproperty( m, 'stepinternalrotation', 2.000000 ); % m = leaf_setproperty( m, 'showinternalrotation', false ); % m = leaf_setproperty( m, 'internallyrotated', false ); % m = leaf_setproperty( m, 'maxFEcells', 0.000000 ); % m = leaf_setproperty( m, 'inittotalcells', 0.000000 ); % m = leaf_setproperty( m, 'maxBioAcells', 0.000000 ); % m = leaf_setproperty( m, 'maxBioBcells', 0.000000 ); % m = leaf_setproperty( m, 'colors', (6 values) ); % m = leaf_setproperty( m, 'colorvariation', 0.100000 ); % m = leaf_setproperty( m, 'colorparams', (12 values) ); % m = leaf_setproperty( m, 'freezing', 0.000000 ); % m = leaf_setproperty( m, 'mgen_interaction', (unknown type function_handle) ); % m = leaf_setproperty( m, 'mgen_interactionName', 'gpt_heart6c4_jab_1_20110714' ); % m = leaf_setproperty( m, 'allowInteraction', 1.000000 ); % m = leaf_setproperty( m, 'interactionValid', true ); % m = leaf_setproperty( m, 'gaussInfo', (unknown type struct) ); % m = leaf_setproperty( m, 'stitchDFs', [] ); % m = leaf_setproperty( m, 'D', (36 values) ); % m = leaf_setproperty( m, 'C', (36 values) ); % m = leaf_setproperty( m, 'G', (6 values) ); % m = leaf_setproperty( m, 'solver', 'cgs' ); % m = leaf_setproperty( m, 'solvertolerance', 0.001000 ); % m = leaf_setproperty( m, 'diffusiontolerance', 0.000010 ); % m = leaf_setproperty( m, 'maxIters', 4.000000 ); % m = leaf_setproperty( m, 'maxsolvetime', 1000.000000 ); % m = leaf_setproperty( m, 'cgiters', 98.000000 ); % m = leaf_setproperty( m, 'simsteps', 0.000000 ); % m = leaf_setproperty( m, 'stepsperrender', 0.000000 ); % m = leaf_setproperty( m, 'growthEnabled', true ); % m = leaf_setproperty( m, 'diffusionEnabled', true ); % m = leaf_setproperty( m, 'makemovie', 0.000000 ); % m = leaf_setproperty( m, 'moviefile', ); % m = leaf_setproperty( m, 'codec', 'None' ); % m = leaf_setproperty( m, 'autonamemovie', true ); % m = leaf_setproperty( m, 'overwritemovie', false ); % m = leaf_setproperty( m, 'framesize', [] ); % m = leaf_setproperty( m, 'mov', [] ); % m = leaf_setproperty( m, 'jiggleProportion', 1.000000 ); % m = leaf_setproperty( m, 'cvtperiter', 0.200000 ); % m = leaf_setproperty( m, 'boingNeeded', false ); % m = leaf_setproperty( m, 'initialArea', 0.940756 ); % m = leaf_setproperty( m, 'bendunitlength', 0.969926 ); % m = leaf_setproperty( m, 'targetRelArea', 1.000000 ); % m = leaf_setproperty( m, 'defaultinterp', 'min' ); % m = leaf_setproperty( m, 'readonly', false ); % m = leaf_setproperty( m, 'projectdir', 'C:\MATLAB\Growth Models' ); % m = leaf_setproperty( m, 'modelname', 'GPT_Heart6C4_JAB_1_20110714' ); % m = leaf_setproperty( m, 'allowsave', 1.000000 ); % m = leaf_setproperty( m, 'addedToPath', true ); % m = leaf_setproperty( m, 'bendsplit', 0.300000 ); % m = leaf_setproperty( m, 'dorsaltop', true ); % m = leaf_setproperty( m, 'comment', ); % m = leaf_setproperty( m, 'bioAsplitcells', 1.000000 ); % m = leaf_setproperty( m, 'bioApullin', 0.142857 ); % m = leaf_setproperty( m, 'bioAfakepull', 0.202073 ); % m = leaf_setproperty( m, 'coderevision', 3603.000000 ); % m = leaf_setproperty( m, 'coderevisiondate', '2011-07-05 10:45:50.776228' ); % m = leaf_setproperty( m, 'modelrevision', 0.000000 ); % m = leaf_setproperty( m, 'modelrevisiondate', ); % m = leaf_setproperty( m, 'vxgrad', (108 values) ); % m = leaf_setproperty( m, 'lengthscale', 1.500000 ); % m = leaf_setproperty( m, 'performinternalrotation', false ); % m = leaf_setproperty( m, 'thicknessMode', 'physical' ); % m = leaf_setproperty( m, 'legendTemplate', '%T: %q\n%m' ); % m = leaf_setproperty( m, 'relativepolgrad', false ); % m = leaf_setproperty( m, 'userpolarisation', false ); % m = leaf_setproperty( m, 'usepolfreezebc', false ); % m = leaf_setproperty( m, 'usefrozengradient', true ); % m = leaf_setproperty( m, 'defaultViewParams', (unknown type struct) ); % m = leaf_setproperty( m, 'starttime', 0.000000 ); % m = leaf_setproperty( m, 'displayedMulti', [] ); % m = leaf_setproperty( m, 'perturbInitGrowthEstimate', 0.000010 ); % m = leaf_setproperty( m, 'perturbRelGrowthEstimate', 0.010000 ); % m = leaf_setproperty( m, 'perturbDiffusionEstimate', 0.000100 ); % m = leaf_setproperty( m, 'resetRand', false ); % m = leaf_setproperty( m, 'splitmorphogen', ); % m = leaf_setproperty( m, 'unitbulkmodulus', true ); % m = leaf_setproperty( m, 'scalebarvalue', 0.000000 ); % m = leaf_setproperty( m, 'rectifyverticals', false ); % m = leaf_setproperty( m, 'flattenforceconvex', true ); % m = leaf_setproperty( m, 'bioApresplitproc', ); % m = leaf_setproperty( m, 'bioApostsplitproc', ); % m = leaf_setproperty( m, 'canceldrift', false ); % m = leaf_setproperty( m, 'solverprecision', 'double' ); % m = leaf_setproperty( m, 'solvertolerancemethod', 'norm' ); % m = leaf_setproperty( m, 'allowsparse', true ); % m = leaf_setproperty( m, 'flashmovie', false ); % m = leaf_setproperty( m, 'defaultazimuth', -45.000000 ); % m = leaf_setproperty( m, 'defaultelevation', 33.750000 ); % m = leaf_setproperty( m, 'defaultroll', 0.000000 ); % m = leaf_setproperty( m, 'interactive', false ); % m = leaf_setproperty( m, 'savedrunname', ); % m = leaf_setproperty( m, 'savedrundesc', ); end