MTtbox documentation: Difference between revisions
No edit summary |
No edit summary |
||
Line 32: | Line 32: | ||
The default file is largely a copy of''' MTtbox_BoilerPlate.txt''' which should be updated to reflect the latest ideas on how to build the function. | The default file is largely a copy of''' MTtbox_BoilerPlate.txt''' which should be updated to reflect the latest ideas on how to build the function. | ||
<br><br> | <br><br> | ||
function data = MT_Tues_20120501( data, before ) | |||
if nargin < 1, return; end | if nargin < 1, return; end | ||
<span style="color: Green">% </span> | <span style="color: Green">% </span> | ||
Line 110: | Line 110: | ||
<span style="color: Green">%maxAgeColour=20;</span> | <span style="color: Green">%maxAgeColour=20;</span> | ||
<span style="color: Green">%MT.Props.FaceColor=[max(0,min(1,1-ageMT/maxAgeColour)), 0.5, max(0,min(1,ageMT/maxAgeColour))];</span> | <span style="color: Green">%MT.Props.FaceColor=[max(0,min(1,1-ageMT/maxAgeColour)), 0.5, max(0,min(1,ageMT/maxAgeColour))];</span> | ||
<span style="color: Green">%if MT.BoundPLM && MT.Growing % hit plasma_membrane and aligned</span> | |||
<span style="color: Green">%elseif MT.BoundPLM && ~MT.Growing % hit plasma_membrane and NOT aligned</span> | |||
<span style="color: Green">%end</span> | |||
<span style="color: Green">%if MT.BoundMic && MT.Growing % hit another microtubule and aligned</span> | |||
<span style="color: Green">%elseif MT.BoundMic && ~MT.Growing % hit another microtubule and NOT aligned</span> | |||
<span style="color: Green">%end</span> | |||
<span style="color: Green">%if MT.BoundVac && MT.Growing % hit vacuole membrane and aligned</span> | |||
<span style="color: Green">%elseif MT.BoundVac && ~MT.Growing % hit vacuole membrane and NOT aligned</span> | |||
<span style="color: Green">%end</span> | |||
<span style="color: Green">% Keep the following</span> | <span style="color: Green">% Keep the following</span> | ||
<span style="color: Green">% Clear flags from collision detector</span> | <span style="color: Green">% Clear flags from collision detector</span> | ||
Line 225: | Line 226: | ||
<span style="color: Green">% cellprops.% microtubules.Vol=struct</span> | <span style="color: Green">% cellprops.% microtubules.Vol=struct</span> | ||
<span style="color: Green">% microtubules.Offsets=struct</span> | <span style="color: Green">% microtubules.Offsets=struct</span> | ||
|} | |} | ||
=Graphical User Interface= | =Graphical User Interface= |
Revision as of 16:48, 1 May 2012
Return to Bangham Lab Software
Current Status
MTtbox is currently under test and further development
The main data structure is called: 'data'. It can be accessed from the Matlab command line by declaring data to be global.
global data
at any time. The following documentation will refer to fields in data. It also refers to the custom menu items by menu:name.
First view of the MTtbox
1 A
1 B
1 C
A project is saved by selecting: menu:File:Save as Having first saved a project a default Interaction Function is created by selecting Edit. A default project file contains lots of comments to provide help on how to develop the project. At present the Interaction Functions is not copied to the new project on each Save as command - this has to be done manually. |
(Comments are in green - this web version of the matlab file is created using webify_interaction_function('MT_Edinb_20120427.m')). The default file is largely a copy of MTtbox_BoilerPlate.txt which should be updated to reflect the latest ideas on how to build the function.
function data = MT_Tues_20120501( data, before ) if nargin < 1, return; end % % % extract factors from structure for i=1:size( data.factorprops.Concentration,2) factname=lower(data.factorprops.Index2Name{i}); eval([[factname,'_p'],'=reshape(','data.factorprops.Concentration(:,i),[ data.cellprops.cellsize]);']); eval([[factname,'_i'],'=','data.factorprops.Name2Index.(factname);']); end % insert model in here % data=setupDiffusion(data,'Factorname','s_micplm','DiffK',[0.2,0.2],... % 'RegionLists',{{'cytoplasm','vacuole','cell_wall'},{'plasma_membrane','microtubules'}}); % data=setupDiffusion(data,'Factorname','id_micplm','DiffK',[0,0],... % 'RegionLists',{{'cytoplasm','vacuole','cell_wall'},{'plasma_membrane','microtubules'}}); % data.factorprops.DiffusionConst(:,1)=0.1; % This should be superceed by the above % data.factorprops.DiffusionConst(:,2)=0.05;% This should be superceed by the above if data.iterations<0 % insert initialisation code here - use Initialise button to jump to here % modify default cell specifications, etc. to modify how the cell volume is partitioned, e.g. % data.organelleprops.plasma_membrane.size=0.95; % fraction of longest dimension % data.organelleprops.cytoplasm.size=0.80; % data.organelleprops.vacuole.size=0.4; % data.organelleprops.microtubules.nuclspont=0.0012; % observed nucleations per square (cubic) micron per sec elseif data.iterations==0 % insert startup code here - use Restart button to jump to here %% setup MT size %if data.cellprops.cellsize(1)>25 % data=mtSETprops(data,'microtubules','size',0.01,'microtubules','growthrate',0.025); % data=mtSETprops(data,'microtubules','shrinkrate',0.005); %end else %id_micplm_p(:)=0; % clear %id_micplm_p(data.cellprops.Vol==data.organelleprops.cytoplasm.Label)=0.8; % set cytoplasm region to 1 %id_micplm_p(round(data.cellprops.cellsize(1)/3):end,:,:)=0; % then set right hand end back to zero %s_micplm_p(id_micplm_p>0.1)=0.1; %% limit spontaneous nucleation to a region specified by id_micplm_p % data.organelleprops.microtubules.nuclspont=id_micplm_p; %data.cellprops.colourType=0; % set to 1 if colour is to be specified by individual MT property %Work through all the microtubules updating properties depending on flags %Average number of MT's present is observed to be about 80 i.e. 80/300 square microns (say 1 micron thick %so ~0.25 per square (cubic) micron for i_MT=1:length(data.working.dyn.microtubules.Org) MT=data.working.dyn.microtubules.Org(i_MT); % MTtbox monitors ... % MT.Age % MT.PauseDuration % MT.TimeNucleated % MT.Alive=true; % MT.Growing=true; % MT.Shrinking=true; % MT.Catastrophe=false; % MT.BoundPLM=false; % MT.PLMBindVertNums=[]; % MT.BoundMic=false; % MT.MTBindVertNums=[]; % MT.BoundVac=false; % MT.VacBindVertNums=[]; % MT.Hit=struct('Type',,'ID',[]); % MT.HitMe=struct('Type',,'ID',[]); % MT.Props.growthrate % MT.Props.shrinkrate % MT.Props.maxbend % MT.Props.maxAge % MT.Props.nuclspont % MT.Props.nuclonMT % Make changes here, i.e. % diffs=diff(MT.Verts).^2; % calculate length of MT % MTlength=sum(sqrt(sum(diffs')'))*data.cellprops.micronsPerVoxelEdge; % microns % if MTlength>0.5 % MT.Props.nuclonMT=min(1,0.4*MTlength); % observed approx. 0.007 per micron per sec % else % MT.Props.nuclonMT=0; % end %ageMT=data.working.CellAge;% seconds %maxAgeColour=20; %MT.Props.FaceColor=[max(0,min(1,1-ageMT/maxAgeColour)), 0.5, max(0,min(1,ageMT/maxAgeColour))]; %if MT.BoundPLM && MT.Growing % hit plasma_membrane and aligned %elseif MT.BoundPLM && ~MT.Growing % hit plasma_membrane and NOT aligned %end %if MT.BoundMic && MT.Growing % hit another microtubule and aligned %elseif MT.BoundMic && ~MT.Growing % hit another microtubule and NOT aligned %end %if MT.BoundVac && MT.Growing % hit vacuole membrane and aligned %elseif MT.BoundVac && ~MT.Growing % hit vacuole membrane and NOT aligned %end % Keep the following % Clear flags from collision detector MT.BoundPLM=false; MT.BoundMic=false; MT.BoundVac=false; data.working.dyn.microtubules.Org(i_MT)=MT; end end % put factors back into structure for i=1:size( data.factorprops.Concentration,2) factname=lower(data.factorprops.Index2Name{i}); eval(['data.factorprops.Concentration(:,i)=',[factname,'_p(:);']]); end end % This space intentionally left blank. % Default factor parameters % Default organelle parameters % cell_wall.size =0.000000 % cell_wall.offset =0.500000 % cell_wall.micronthick =0.100000 % cell_wall.minvox =1.000000 % cell_wall.FaceColor =[1.000000,0.000000,1.000000,] % cell_wall.FaceAlpha =0.010000 % cell_wall.Label =-5.000000 % cell_wall.isLayer =1.000000 % cell_wall.Static =1.000000 % cell_wall.InUse =1.000000 %plasma_membrane.size =0.000000 %plasma_membrane.offset =0.500000 %plasma_membrane.micronthick =0.010000 %plasma_membrane.minvox =3.000000 %plasma_membrane.FaceColor =[1.000000,1.000000,0.000000,] %plasma_membrane.FaceAlpha =0.020000 %plasma_membrane.Label =-4.000000 %plasma_membrane.isLayer =1.000000 %plasma_membrane.Static =1.000000 %plasma_membrane.InUse =1.000000 % cytoplasm.size =0.000000 % cytoplasm.offset =0.500000 % cytoplasm.micronthick =1.000000 % cytoplasm.minvox =5.000000 % cytoplasm.FaceColor =[0.000000,1.000000,0.000000,] % cytoplasm.FaceAlpha =0.020000 % cytoplasm.Label =0.000000 % cytoplasm.isLayer =1.000000 % cytoplasm.Static =1.000000 % cytoplasm.InUse =1.000000 % microtubules.size =0.025000 % microtubules.minvoxel =3.000000 % microtubules.growthrate =0.100000 % microtubules.shrinkrate =0.010000 % microtubules.maxbend =40.000000 % microtubules.MaxAngle =20.000000 % microtubules.maxAge =0.000000 % microtubules.nuclspont =0.050000 % microtubules.nuclonMT =0.090000 % microtubules.probCatastrophe=0.300000 % microtubules.FaceColor =[0.000000,0.000000,1.000000,] % microtubules.FaceAlpha =0.400000 % microtubules.Label =-6.000000 % microtubules.isLayer =0.000000 % microtubules.Static =0.000000 % microtubules.InUse =1.000000 % vacuole.size =0.200000 % vacuole.offset =0.500000 % vacuole.micronthick =1.000000 % vacuole.minvox =0.000000 % vacuole.FaceColor =[1.000000,1.000000,0.000000,] % vacuole.FaceAlpha =0.300000 % vacuole.Label =-3.000000 % vacuole.isLayer =0.000000 % vacuole.Static =1.000000 % vacuole.InUse =1.000000 % Default cell parameters % cellprops.shape ='Rect:1:1:1' % cellprops.sheetmodel =0 % cellprops.maxLengthMicrons=10 % cellprops.secondsPerStep =1 % cellprops.micronsPerVoxelEdge=0.400000 % cellprops.cubicMicronsPerVoxel=0.064000 % cellprops.cellsize =[25,25,25,] % cellprops.colourType =1 % cellprops.Vol =[-1,-1,-1,-1, ... ] % cellprops.Smooth ='None' % cellprops.dynamic ='microtubules' % cellprops.bound_distance =5 % cellprops.collide_distance=10 % cellprops.% vacuole.Vol=struct % vacuole.EdgeVol=struct % cellprops.% cell_wall.Vol=struct % cell_wall.EdgeVol=struct % cellprops.% plasma_membrane.Vol=struct % plasma_membrane.EdgeVol=struct % cellprops.% cytoplasm.Vol=struct % cytoplasm.EdgeVol=struct % cytoplasm.Indexes=struct % cellprops.% Diameter.microtubules=struct % cellprops.% microtubules.Vol=struct % microtubules.Offsets=struct |
Graphical User Interface
2 A Changing organelles in the cell
menu:Organelles shows a list of organelles, check those that are required and then re-establish the working volumes (used for collision detection) by using menu:Prefs:Cell size and shape |
2 B Changing working volumes used for collision detection
menu:Prefs:Cell size and shape establishes the shape of the cell and the arrangement of static organelles. The data structure it creates underpins the collision detection system.
data.cellprops.Vol is a volume filled with labels (range 0 to -7) representing regions: not-cell, cell-wall, plasma-membrane, cytoplasm, vacuole, etc. It is re-formed whenever the cell is redefined with pushbutton Initialise. data.working.Vol is a copy of data.cellprops.Vol which also contains regions representing dynamic organelles (microtubules and actin). It is re-zeroed by Restart. There are further volumes that supplement these two that are used for collision detection. Individual microtubule regions are recorded in data.cellprops.microtubules.Vol each microtubule region is represented by a unique ID. Factors and their associated diffusion constants are represented by data.factorprops.Concentration data.factorprops.DiffusionConst each column of which represents a factor - they must be reshaped to the same format as the volume data. |