Skip to content

Instantly share code, notes, and snippets.


Vanessasaurus vsoch

View GitHub Profile
vsoch / vcademy_mutual_information.m
Last active Apr 5, 2021
Mutual Information for Image Registration: an example of why maximizing mutual information is preferable over minimizing the least sum of squares for aligning two images from different modality.
View vcademy_mutual_information.m
% Mutual Information
% This shows why mutual information is important for registration, more-so
% than another metric like the least sum of squares.
% VSoch July 2013
% First, let's read in two pickle images that we want to register
% Note - this is a picture I found on google search, and I transformed it in
% photoshop by moving it down and right, and then CONTROL+I to get the inverse
pickle1 = imread('pickle1.png');
pickle2 = imread('pickle2.png');
vsoch / vcademy_mds.m
Created Aug 6, 2013
Multidimensional Scaling: a simple Matlab demonstration
View vcademy_mds.m
% Multidimensional scaling (MDS) Example
% Load matlab cities data
load cities
% This data has cities in rows, and different categories for ratings in
% columns. We will implement MDS to assess city similarity based on
% ratings.
% Step 1: Set up our proximity matrix
vsoch / print_dr_report.m
Last active Dec 21, 2015
visual_dr creates and prints a web report for a dual regression run with FSL. The figures print exactly the size of the open figure 1, so you might want to open and size it to your liking before running the script. visual_dr is the main script to run, and it uses print_dr_report to create a web report, and imoverlay to overlay maps on the backgr…
View print_dr_report.m
function print_dr_report(imgfolder)
% This function takes a folder of images produced by visual_dr
% and prints and html report page
filey = fopen([imgfolder 'index.html' ],'w');
% Print top of html file
fprintf(filey,'%s\n','<html><body><h2>Dual Regression Report</h2>');
% Get all images in folder
vsoch / cytoscapeExport.m
Created Sep 13, 2013
Functions for exporting graph data (a list of connected nodes and corresponding attribute values) for functional neuroimaging data. Currently includes cytoscape and gephi. You must provide a list of anatomical labels (the variable AAL_labels).
View cytoscapeExport.m
function cytoscapeExport(links,weights,threshold,exptype)
% This function will take a list of links and weights, and create a file to
% import into Cytoscape for further graph analysis
% exptype is the export type - 'all' means voxelwise above a threshold,
% 'region' means creating graph of average regional values
% links is an n by 2 list of connections, each a voxel id
% weights is a correlation value corresponding to each link set
vsoch / flattenSphere.m
Last active Dec 23, 2015
flattenSphere.m takes a 3D image with x y z coordinates defined on the circumference of a circle, and flattens it to a 2D representation (with some obvious distortion). unwrapSphere.m estimates a radius and centroid with least squares, and then writes data to a 3D matrix defined by azimuth, elevation, and radius. Since this sphere is hollow, the…
View flattenSphere.m
function flat = flattenSphere(mr)
% First read in sphere files and vox mapping
%vox = spm_read_vols(spm_vol('NDARAK333GZA.lh.vtxvol.nii'));
mr = spm_read_vols(spm_vol(mr));
% First create a random maximum length - we will crop at the end
maxlength = floor(pi*size(mr,1));
% Now go through vox image and save vector of x,y,z coordinates
vsoch / nc_spatial_kurtosis.m
Last active Dec 24, 2015
NoiseCloud Features
View nc_spatial_kurtosis.m
function feature = nc_kurtosis_spatial(spatialMap)
% FEATURE NAME: Kurtosis
% FEATURE TYPE: spatial.gist
% We take a component image, sum the voxel values quadrupled, and divide by the
% number of voxels, subtract 3. We then normalize the value by linear scaling transform of abs(ln(kurtosis))
% This does the same thing as doing kurtosis(curr_network(:))
ICkurt = sum(power(spatialMap,4)) / length(spatialMap(:));
vsoch / plotly.R
Last active Dec 26, 2015
R Functions in the Cloud!
View plotly.R
# This function will use plotly to create an online boxplot!
plotlyBox = function(username,key,datastore) {
# Username is your plotly username
# API key is found via, login --> Access plotly --> settings
# datalist is a list of data
# The number of plots, N, is determined by length(N)
# Eg, put your data into a list
vsoch /
Last active Dec 29, 2015 takes an input file (input.txt) with single keywords on each line, and searches a local database of NDAR behavioral data. Output includes: 1) outfile_vars.txt, with questions containing the search term(s) of interests on single lines, followed by an estimate of the min, max, and variable type 2) outfile_data.txt, with subject …
searchNdar: reads in a set of strings from file, and search behavioral metrics
to find questions / subscales that might be of interest
python --o outfile --i /home
/vanessa/Documents/Work/NDAR/behavioral -w input.txt
--o is the outfile name, without extension
vsoch / exportRWeka.R
Last active Dec 29, 2015
Export a data matrix and associated demographic variables to arff file for import into Weka. All variables are assumed to be numeric, and columns are features (with column names the feature names), and rows data objects (with appropriate rownames). Missing values, currently set as -9999 and NA, are recoded as "?" Change this section (line 28) to…
View exportRWeka.R
exportRWeka = function(data,relation_name,outname) {
# Data is a data matrix, with features in columns, data in rows
# Edit the script to match whatever is the missing value for your data
# Rownames will be exported as well, and should be data labels
# relation_name is the name of the relation in Weka
# outname is the output file
# If you have a nominal outcome variable (eg, you want to color
# your data by a label in Weka) change the variable type as follows:
# @attribute groupVar {1,2}
vsoch /
Last active Dec 31, 2015 connects to a database of clinical data, a data dictionary, searches the data dictionary (all fields) for strings of interest, and then queries the clinical data for all maches, and prints two text files: 1) a text file of data, with questions in columns and items in rows, and 2) a text file of data dictionary fields See script head…
clinPheno: Methods for querying a SQL database of clinical
variables to establish a clinical phenotype. The script will
search a data dictionary (database) for a set of user specified
terms (in some input.txt file), and then extract the matches
from the clinical database, for import into R (see clinPhenoR.R)