#%% compute spatial components via NMF initTime=time.time() space_spcomps,time_comps=(m-np.min(m)).NonnegativeMatrixFactorization(n_components=20,beta=1,tol=5e-7); print 'elapsed time:' + str(time.time()-initTime) cb.matrixMontage(np.asarray(space_spcomps),cmap=pl.cm.gray) # visualize components #%% compute spatial components via ICA PCA from scipy.stats import mode initTime=time.time() spcomps=m.IPCA_stICA(components=40,mu=.5,batch=100000); print 'elapsed time:' + str(time.time()-initTime) #cb.matrixMontage(spcomps,cmap=pl.cm.gray) # visualize components #%% extract ROIs from spatial components #_masks,masks_grouped=m.extractROIsFromPCAICA(spcomps, numSTD=6, gaussiansigmax=2 , gaussiansigmay=2) _masks,_=cb.extractROIsFromPCAICA(spcomps, numSTD=20.0, gaussiansigmax=1 , gaussiansigmay=1,thresh=.005) #cb.matrixMontage(np.asarray(_masks),cmap=pl.cm.gray) #%% extract single ROIs from each mask minPixels=8; maxPixels=200; masks_tmp=[]; for mask in _masks: numPixels=np.sum(np.array(mask)); if (numPixels>minPixels and numPixels<maxPixels): print numPixels masks_tmp.append(mask>0) masks_tmp=np.asarray(masks_tmp,dtype=np.float16) all_masksForPlot_tmp=[kk*(ii+1)*1.0 for ii,kk in enumerate(masks_tmp)] len(all_masksForPlot_tmp)
if False: loc_corrs=m.local_correlations(eight_neighbours=True) m=m.IPCA_denoise(components = 100, batch = 100000) m=m*loc_corrs #%% compute spatial components via ICA PCA print 'Computing PCA + ICA...' initTime=time.time() spcomps=m.IPCA_stICA(componentsPCA=70,componentsICA = 50, mu=1, batch=1000000, algorithm='parallel', whiten=True, ICAfun='logcosh', fun_args=None, max_iter=2000, tol=1e-8, w_init=None, random_state=None); print 'elapsed time:' + str(time.time()-initTime) cb.matrixMontage(spcomps,cmap=pl.cm.gray) # visualize components #%% extract ROIs from spatial components #_masks,masks_grouped=m.extractROIsFromPCAICA(spcomps, numSTD=6, gaussiansigmax=2 , gaussiansigmay=2) _masks,_=cb.extractROIsFromPCAICA(spcomps, numSTD=4.0, gaussiansigmax=.1 , gaussiansigmay=.2) #cb.matrixMontage(np.asarray(_masks),cmap=pl.cm.gray) #%% extract single ROIs from each mask minPixels=30; maxPixels=4000; masks_tmp=[]; for mask in _masks: numPixels=np.sum(np.array(mask)); if (numPixels>minPixels and numPixels<maxPixels): # print numPixels masks_tmp.append(mask>0) masks_tmp=np.asarray(masks_tmp,dtype=np.float16) all_masksForPlot_tmp=[kk*(ii+1)*1.0 for ii,kk in enumerate(masks_tmp)] len(all_masksForPlot_tmp)