Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %%% full_procedure.m
- % For å få det til å fungere må du ha Fiji.app i Path. Dra Fiji.app til samme mappe som koden, høyreklikk og velg "Add to path" -> "Selected folder and subfolders".
- clearvars
- % Konfigurasjon, juster etter eget eksperiment
- RAW_DATA_FILENAME = 'boogie.xml';
- METERS_PER_PIXEL = 2.26e-7; % Funnet med ImageJ sin "Set scale"-funksjon
- SECONDS_PER_FRAME = 1/7; % Det ser ikke ut til at ImageJ faktisk klarer å eksportere i ikke-heltallig bildefrekvens! Sjekk om din video faktisk har den bildefrekvensen du tror.
- TEMPERATURE = 22 + 273.15;
- VISCOSITY_OF_WATER = 8.9e-4;
- RADIUS_OF_PARTICLES = 1e-6/2;
- % Les data
- tracks = readXML(RAW_DATA_FILENAME, SECONDS_PER_FRAME);
- steps = getSteps(tracks, METERS_PER_PIXEL);
- steps = removeStationaryArtifacts(steps);
- [mean_step, variance] = getMeanAndVariance(steps);
- % Finn kB
- boltzmanns_constant = (3*pi*VISCOSITY_OF_WATER*variance*RADIUS_OF_PARTICLES)/(TEMPERATURE*SECONDS_PER_FRAME);
- % Plott
- histfit(steps, 1000);
- %%% readXML.m
- function tracks = readXML( raw_data_filename, scaleT )
- % Importer all XML-data
- % For å få gyldig XML-fil: gå helt til slutten av Trackmate-prosedyren, velg "Export as XML file" og trykk på "Execute"
- disp(['Leser inn ' raw_data_filename]);
- % Andre argument som true fjerner unødvendig informasjon om z-koordinat
- % Tredje argument gir tid i fysiske enheter hvis du har endret 2. linje i XML-fila
- tracks = importTrackMateTracks(raw_data_filename, true, scaleT);
- disp(['Ferdig med å lese inn ' raw_data_filename]);
- end
- %%% getSteps.m
- function delta_vector = getSteps( tracks, meters_per_pixel )
- % Hent ut delta X og delta Y
- delta_x_vector = [];
- delta_y_vector = [];
- for i=1:length(tracks)
- track = tracks{i};
- delta_x_vector = [delta_x_vector diff(track(:, 2))']; %#ok
- delta_y_vector = [delta_y_vector diff(track(:, 3))']; %#ok
- end
- % Alternativ 1: Konkatener delta X og delta Y (fungerer kun hvis man ikke har drift)
- %delta_vector = meters_per_pixel*[delta_x_vector delta_y_vector];
- % Alternativ 2: Dropp y-verdier
- delta_vector = meters_per_pixel*delta_x_vector;
- end
- %%% removeStationaryArtifacts.m
- function steps = removeStationaryArtifacts(steps)
- steps(isArtifact(steps)) = [];
- end
- %%% isArtifact.m
- function result = isArtifact(step)
- % Kan forbedres eller tilpasses egne data
- result = (abs(step) < 1e-8);
- end
- %%% getMeanAndMeanSquare.m
- function [mean_delta, variance_in_delta] = getMeanAndVariance(delta_vector)
- mean_delta = mean(delta_vector);
- variance_in_delta = mean(delta_vector.^2) - mean_delta^2; % Siste ledd korrigerer for drift
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement