Resource competition in growing neurites (Hjorth et al 2014)

 Download zip file 
Help downloading and running models
Accession:152788
Computer model of neurite outgrowth in a simplified neuron. A growth limiting resource is produced in the soma, transported through the neurites and consumed at the growth cones.
Reference:
1 . Hjorth JJ, van Pelt J, Mansvelder HD, van Ooyen A (2014) Competitive dynamics during resource-driven neurite outgrowth. PLoS One 9:e86741 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: Python;
Model Concept(s): Simplified Models; Development;
Implementer(s): Hjorth, Johannes [hjorth at csc.kth.se];
% This function calculates how similar the growth of the simulated
% neuron is to that of the experimental neuron.

function errorValue = growthFitness(simFile,expFiles)

  function expData = readExpData(expFiles)

    for i = 1:length(expFiles)

      tmp = load(expFiles{i});
      expData(i).time = tmp(:,1);
      expData(i).v = tmp(:,2);
      expData(i).dist = tmp(:,3);
 
    end

  end

  if(~exist('expFiles'))
    expFiles = { 'input/Ramaker/Ramaker-GC1-growthspeed.txt', ...
		 'input/Ramaker/Ramaker-GC2-growthspeed.txt', ...
		 'input/Ramaker/Ramaker-GC3-growthspeed.txt' };
  end

  simData = readData(simFile);  

  experimentData = readExpData(expFiles);

  % Find the growth cones
  gcID = setdiff(simData.ID,simData.parentID);

  % We do not know which one is which though... ack.
  % For the Ramaker data we know the following:
  % GC1 starts earliest.
  % GC3 is lowest at 8e4 seconds

  for i = 1:length(gcID)
    tFirst(i) = simData.time(find(simData.ID == gcID(i),1));
  end


  [foo idx] = sort(tFirst);
  gcID = gcID(idx);


  idx2 = find(simData.ID == gcID(2) & simData.time > 8e4,1);
  idx3 = find(simData.ID == gcID(3) & simData.time > 8e4,1);

  if(simData.dist(idx2) < simData.dist(idx3))
    gcID([2 3]) = gcID([3 2]);
  end

gcID

  % How do I match times best...

  gcError = NaN*gcID;

  for iG = 1:length(gcID)
    % Find all values for respective growth cone
    idx = find(simData.ID == gcID(iG));

    tIdx = idx(find(min(experimentData(iG).time) <= simData.time(idx) ...
		    & simData.time(idx) < max(experimentData(iG).time)));
    % Simulated distances at experimental time points
    % Experimental data at simulated time points
    expD = interp1(experimentData(iG).time, ...
		   experimentData(iG).dist, ...
		   simData.time(tIdx));

    gcError(iG) = sqrt(sum((expD - simData.dist(tIdx)).^2));

  end

  errorValue = sum(gcError);

  fprintf('Fitness value %d\n', errorValue)

end

Loading data, please wait...