Modelling heart development (A)

From BanghamLab
Jump to navigation Jump to search

Back to Workshop pages

Interaction function developed alongside Meilhac and Le Garrec

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