Tutorial for cell file manipulations
This tutorial shows some examples on how to use the cell files for your analysis.
Contents
Get location of the directory and the cell file folder
dirname = [filepath,'60mrnaCropped']; cellFileFolder = [dirname, filesep,'xy1/cell'];
Load cell with ID 11
currentCell = load([cellFileFolder,filesep,'cell0000011.mat']); % display the information in the cell file currentCell % print the motherID disp (['mother id : ', num2str(currentCell.motherID)]); % display the information at 12 frames after birth disp('Cell Information at frame 12'); currentCell.CellA{12} % show the foci scores at 12 frames after birth disp('Foci scores at frame 12'); currentCell.CellA{12}.locus1(:).score % information for the first focus disp('First focus'); currentCell.CellA{12}.locus1(1) % information for the second focus disp('Second focus'); currentCell.CellA{12}.locus1(2)
currentCell = CellA: {1x37 cell} death: 37 birth: 1 divide: 1 sisterID: 0 motherID: 0 daughterID: [27 28] ID: 11 neighbors: [] stat0: 0 ehist: 0 contactHist: 0 mother id : 0 Cell Information at frame 12 ans = cellLength: [32 8.7198] xx: [1x41 double] yy: [1x23 double] mask: [23x41 logical] r_offset: [266 217] BB: [266 217 40 22] edgeFlag: 0 contactHist: 0 numNeighbors: 0 phase: [23x41 uint16] coord: [1x1 struct] length: [32 13] pole: [1x1 struct] fluor1: [23x41 uint16] fluor1mm: [358 3610] fl1: [1x1 struct] cell_dist: 1 gray: 5.4220e+03 locus1: [1x2 struct] fluor1_filtered: [23x41 double] r: [285.8996 227.6022] error: [1x1 struct] ehist: 0 stat0: 0 Foci scores at frame 12 ans = 6.9524 ans = 3.9377 First focus ans = r: [298.8971 227.7778] score: 6.9524 intensity: 11.0691 normIntensity: 11.0691 shortaxis: -1.9693 longaxis: 12.8486 fitSigma: 0.8483 fitScore: 0.9444 Second focus ans = r: [283.5400 222.8604] score: 3.9377 intensity: 6.1612 normIntensity: 6.1612 shortaxis: -4.2879 longaxis: -3.1091 fitSigma: 0.8401 fitScore: 0.9517
Foci per frame
Make an array of number of foci per frame with score larger than 3 for this cell
frames = numel(currentCell.CellA); fociPerFrame = zeros(1,frames); for t = 1 : frames numFoci = numel(currentCell.CellA{t}.locus1); for i = 1 : numFoci if (currentCell.CellA{t}.locus1(i).score > 3) fociPerFrame(t) = fociPerFrame(t) + 1; end end end fociPerFrame
fociPerFrame = Columns 1 through 13 1 1 1 1 1 1 2 2 1 1 1 2 1 Columns 14 through 26 1 1 1 2 2 1 2 1 2 1 1 0 3 Columns 27 through 37 3 2 2 2 2 2 2 2 1 1 2
Get cell files
allcells = dir([cellFileFolder,filesep '*ell*.mat']) CompleteCellCylceCells = dir([cellFileFolder,filesep 'Cell*.mat'])
allcells = 44x1 struct array with fields: name date bytes isdir datenum CompleteCellCylceCells = 4x1 struct array with fields: name date bytes isdir datenum
Count cells
Go through every cell file and count the number cells with at least one foci at birth above score 3
count = 0; for i = 1 : numel(allcells) cellname = allcells(i).name; currentCell = load([cellFileFolder,filesep,cellname]); birth = 1; if isfield(currentCell.CellA{birth},'locus1') && currentCell.CellA{birth}.locus1(1).score>3 count = count + 1; end end disp (['Cells with at least one foci with score > 3 : ', num2str(count)]);
Cells with at least one foci with score > 3 : 21
Average Cell Length
Go through every cell file, calculate the mean cell length, and make a histogram
% array of the average length for each cell averageCellLengths = []; for i = 1 : numel(allcells) cellname = allcells(i).name; currentCell = load([cellFileFolder,filesep,cellname]); % drill is a function that extracts a quantity from cellA for all time % frames lengthPerFrame = drill (currentCell.CellA, '.cellLength(1)'); avCellLength = mean(lengthPerFrame); averageCellLengths(i) = avCellLength; end hist(averageCellLengths,5)