Skip to content

Instantly share code, notes, and snippets.

View wanirepo's full-sized avatar

Choong-Wan Woo wanirepo

View GitHub Profile
@wanirepo
wanirepo / replication_simulation.m
Last active January 11, 2019 09:03
A code for a simulation in Hong et al., in prep
% In this simulation we examined how reliable peak distance and pattern correlation
% by comparing two simulated data with the same ground truth patterns of signal.
% define SNR levels
snr_all = [.1 .3 .5 .7 .9 1.1];
% create ground truth pattern
pattern = [0.4 1.7 0.5 0.7 0.2
@wanirepo
wanirepo / surface_example.m
Last active July 31, 2016 23:56
surface mapping example
poscm = colormap_tor([0.96 0.41 0], [1 1 0]); % warm
negcm = colormap_tor([0.11 0.46 1], [.23 1 1]); % cools
cluster_surf(cl ,which('surf_BrainMesh_ICBM152Right_smoothed.mat'), 2, 'heatmap', 'colormaps', poscm, negcm)
axis vis3d;
@wanirepo
wanirepo / wani_robustPCA_testing.m
Last active August 29, 2015 14:19
Applying robust PCA on an example dataset (to download this dataset, see https://github.com/wanirepo/SAS2015_PatRec)
cd('/Users/clinpsywoo/github/fastRPCA');
setup_fastRPCA;
% load an example data
load('/Users/clinpsywoo/github/SAS2015_PatRec/data.mat');
X = dat.dat;
SS = svd(X, 'econ'); % can decompose x or x', but faster when rows >> cols
% 3 solvers (5 variants)
% 1) constrained
@wanirepo
wanirepo / KL_heuristic_k2.m
Last active August 29, 2015 14:07
Uses the Kernighan-Lin (KL) heuristic to optimize any partition score function.
function [bestL, bestP, info] = KL_heuristic_k2(A, varargin)
% usage: [bestL, bestP, info] = KL_heuristic_k2(A, varargin)
%
% feature: use the Kernighan-Lin (KL) heuristic to optimize any partition
% score function, e.g., modularity Q or stochastic block model's
% likelihood function. This works only for 2 partitioning problem.
%
% input: A adjacency matrix
%
@wanirepo
wanirepo / SBM_likelihood.m
Created October 21, 2014 16:31
log-likelihood estimation for simple Stochastic Block Model (SBM) (undirected, unweighted) based on Maximum Likelihood estimation.
function L = SBM_likelihood(A, z, varargin)
% usage: L = SBM_likelihood(A, z)
%
% feature: log-likelihood estimation for simple Stochastic Block Model (SBM)
% (undirected, unweighted) based on Maximum Likelihood estimation.
%
% input: A adjacency matrix (simple graph)
% z group membership
%
@wanirepo
wanirepo / PS03_Woo_facebook.m
Created October 5, 2014 04:11
Network modeling, Problem Set #03-4.
% Data info:
% Each of the school .mat files has an A matrix (sparse) and a
% "local_info" variable, one row per node: a student/faculty status
% flag, gender, major, second major/minor (if applicable), dorm/house,
% year, and high school. Missing data is coded 0.
% datdir = '/Users/clinpsywoo/Documents/2011-2016yr/2014_2015_4th_GS/Network_modeling/Problem_sets/facebook100';
datdir = '/Volumes/engram/Users/wani/Documents/Network_modeling/Problem_sets/facebook100';
fnames = filenames(fullfile(datdir, '*mat'));
@wanirepo
wanirepo / norm_mutual_info.m
Created October 3, 2014 22:48
This function calculates the normalized mutual information. Reference: Danon et al. (2005), Karrer et al. (2008)
function nmi = norm_mutual_info(za, zb)
% function nmi = norm_mutual_info(za, zb)
%
% feature: This function calculates the normalized mutual information,
% which tells us how much information we learn about Community
% structure A (or B) if we know B (or A). If A and B are
% identical, we learn everything about A from B (or B from A).
% In this case, nmi returns 1. If they are entirely uncorrelated,
% we learn nothing. In this case, nmi returns 0.
@wanirepo
wanirepo / community_modularity.m
Last active August 29, 2015 14:07
This function conduct the greedy agglomerative algorithm to find community structure that maximizes the network's modularity (Q)
function [max_z, max_q, outinfo] = community_modularity(A, varargin)
% function [z, q, outinfo] = community_modularity(A, optional_inputs)
%
% feature: This function conduct the greedy agglomerative algorithm to find
% community structure that maximizes the network's modularity (Q).
%
% input: A adjacency matrix
%
% output: max_z a vector of community membership that maximize Q
@wanirepo
wanirepo / modularity_wani.m
Last active March 4, 2019 21:08
calculate modularity Q
function q = modularity_wani(A,z,varargin)
% function q = modularity_wani(A,z, [optional 'scalar' or 'degree'])
%
% feature: This function calculates the modularity (same with
% assortativity), q. It works for categorical and continuous
% (needs optional input, 'scalar') attributes.
%
% input: z attributes or category membership
% A adjacency matrix
@wanirepo
wanirepo / build_adjacency_from_list.m
Last active August 29, 2015 14:07
matlab function to build a adjacency matrix from a xy list
function A = build_adjacency_from_list(ij)
% function A = build_adjacency_from_list(ij)
%
% ij: row, column
A = zeros(max(max(ij)),max(max(ij)));
for i = 1:length(ij)
A(ij(i,1), ij(i,2)) = 1;