Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • e64b067
  • /
  • processed
  • /
  • simpleProc.m
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge
swh:1:cnt:d75b3cea809b08002964da7b6059e3807edae0b9
directory badge
swh:1:dir:58d640bfd8e188927e6f1b6e8ae0d2fbc1bbee9d

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
simpleProc.m

%% put data into matlab format
savename = TDT_MATformatBDH(1); %channel 1 or 2
%savename = FormatForFPpipe(sig,ref);  %if data already converted, feed to FP pipe
                                % preload in sig and ref .mat
savename=strcat(savename,'.mat');
load(savename)

%% debleach, calc df/f, subtract 405 from 472
debleach_flag=1; 
numExp = 2;  %0 = cubic poly fit, 1=single exp fit,  2=dbl exp fit
startfit = 100; % start exp fit at this min (*100hz & 60sec)
endfit =length(sig_472_RS); %50*6000; %length(sig_472_RS);  % end fit
baseline_method=2   % 1=main peak of histogram for dataset 
                    % 2=median val
                    % 3=manually assigned baseline (set manualbase)
manualbase=152;
dfof=debleachBDH(timeFP_RS,sig_472_RS,'472',savename,debleach_flag,numExp,startfit,endfit,baseline_method,manualbase);
dfof_control=debleachBDH(timeFP_RS,sig_405_RS,'405',savename,debleach_flag,numExp,startfit,endfit,baseline_method,manualbase);

% subtract reference signal
subtract_method='Subtract';
dfofCorr=subtract_refBDH(timeFP_RS,dfof,dfof_control,savename,subtract_method);
    % subtract_method='MinResid'  use bestfit model
    % subtract_method='Subtract' just subtract them
    % subtract_method='None' no correction with 405
    % subtract_method= number, manually add this value

    %% alternate 405 correction, scale 405 to match 472
        raw472=sig_472_RS;
        scaled_405=controlFit(sig_472_RS,sig_405_RS);
        %scaled_405=scaled_405';
        dfofCorrScale=(sig_472_RS-scaled_405)/mean(scaled_405);
        subtract_method=.0;
        dfofCorrScale=subtract_refBDH(timeFP_RS,dfofCorrScale',scaled_405,savename,subtract_method);

        %dfofCorr=dfofCorrScale; % depending correction looks better
figure;hold on; plot(dfofCorrScale); plot(dfofCorr); plot(dfof)
    
%% smooth, z-score
dfofCorr=filtfilt(ones(1,100)/100,1,dfofCorr);
%z score
ZdfofCorr = (dfofCorr - mean(dfofCorr(1000:length(dfofCorr))))  / std(dfofCorr(1000:length(dfofCorr)));

savename2=strcat(savename,'_dFFcorr');

save(savename2,'dfofCorr','ZdfofCorr','camtime','timeFP_RS');

        %% for video acquired in a separate program from FP
        % trim FP to match video length
        delayVid=10.2; %in seconds
        timeFP_RS=timeFP_RS-delayVid;
        camtime=camtime-delayVid;
        TrimFPtimeInd = timeFP_RS>=0; 
        TrimCamtimeInd=camtime>=0;
        camtime = camtime(TrimCamtimeInd);
        timeFP_RS = timeFP_RS(TrimFPtimeInd); 
        dfofCorr=dfofCorr(TrimFPtimeInd);
        ZdfofCorr=ZdfofCorr(TrimFPtimeInd);

        savename3=strcat(savename,'_dFFcorrTrim');
        save(savename3,'dfofCorr','ZdfofCorr','camtime','timeFP_RS');


%text(5.2416,0.2,'LORR \downarrow','HorizontalAlignment','right')

%% manual demodulate: check contoperator
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% warp time basis to fit cam frame times 
% prepare for close viewing the FP trace
% _RSretime warps time basis, _frames matches _RSretime, replacing frame #
% with time
[timeFP_RSretime, timeFP_frames] = reTimeFP4cam(camtime,timeFP_RS);
figure;plot(timeFP_frames, dfofCorr)
set(gca,'Xtick',0:50:length(timeFP_frames))

savename4 = strcat(savename,'_updatedTimes');
save(savename4, 'timeFP_RSretime', 'timeFP_frames');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% new PSTH
%evTime is vector holding frames of interest
%Assume 100Hz resampling
%use dfofCorr or ZdfofCorr in FPpsth arguments
%timeFP_frames=timeFP_RS; %if using video not encoded by Synapse
    Pre=300;
    Post=400;
    BaseStart=290;%Pre*.9;
    BaseEnd=100;%Pre*.1;
    Skip=400;
    Norm =1; %=0 no normalization to baseline,   =1 normalize to baseline
[PSTHarrNew,markFP,markFPfr]=FPpsth(camtime,timeFP_RS,timeFP_frames,dfofCorr,evTime,Pre,Post,BaseStart,BaseEnd,Skip,Norm); %camtime,FP time, proc FP, events, pre, post, start baseline @ -, end baseline @ -

ylim([-0.14 .55]);

%plot FP vs time with events marked
%figure;plot(timeFP_RS,dfofCorr);hold on; plot(timeFP_RS,markFP);

%plot FP vs frame number with events marked
figure;plot(timeFP_frames,dfofCorr);hold on; plot(timeFP_frames,markFPfr);


%% heatmap, esp for 3CT
% create variable trace(x,y)
% animal tracking can start at arbitrary pt, must continue to end of expt
%MUST FIX discrepancy between frame count in CleverSys and matlab

lowRes = 10; %factor to reduce map density. native trace should be in mm
startFr=21600;
endFr=length();
[mapDec,thismanyhitsDec] = heatmap3ct(trace,ZdfofCorr,camtime,timeFP_frames,startFr,endFr,lowRes);


%% needs a [R,2] matrix of beginning and end frames for each bout
[boutArray,boutInteg,CumBoutInteg] = boutDFF(bouts,dfofCorr);
%%


% plot mean of a subset of PSTHarrNew
bb=1
hold on; plot(mean(PSTHarrNew(:,bb:bb+9),2));



% spectrogram
%figure;
%spectrogram(dfofCorr,kaiser(30000,10),24000,100000,100,'yaxis');ylim([0 1]);caxis([-40 0])
% 5 min window, overlaps by 4min (should be 1div/min), 100K pt freq
% resolution to get lower registers, 100Hz sampling

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API