def test_clustering(self): # Test standard coactivation-based clustering roi_mask = os.path.join(get_test_data_path(), 'sgacc_mask.nii.gz') clusters = cluster.magic(self.real_dataset, roi_mask=roi_mask, reduce_reference='pca', n_components=5, min_studies_per_voxel=1, n_clusters=3) n_unique = len(np.unique(clusters.get_data())) self.assertEqual(n_unique, 4) # Test study-based clustering d = tempfile.mkdtemp() from sklearn.decomposition import PCA from sklearn.cluster import KMeans pca = PCA(20, svd_solver='randomized') clust = KMeans(3) cluster.magic( self.real_dataset, method='studies', roi_mask=roi_mask, features=['emotion', 'pain'], feature_threshold=0.0, reduce_reference=pca, clustering_algorithm=clust, distance_metric='jaccard', output_dir=d, filename='test.nii.gz') img = nb.load(os.path.join(d, 'test.nii.gz')) self.assertEqual(len(np.unique(img.get_data())), 4) # Test feature-based clustering clusters = cluster.magic(self.real_dataset, method='features', n_clusters=3) n_unique = len(np.unique(clusters.get_data())) self.assertEqual(n_unique, 4) shutil.rmtree(d)
def test_clustering(self): # Test standard coactivation-based clustering roi_mask = os.path.join(get_test_data_path(), 'sgacc_mask.nii.gz') clusters = cluster.magic(self.real_dataset, roi_mask=roi_mask, reduce_reference='pca', n_components=5, min_studies_per_voxel=1, n_clusters=3) n_unique = len(np.unique(clusters.get_data())) self.assertEqual(n_unique, 4) # Test study-based clustering d = tempfile.mkdtemp() from sklearn.decomposition import RandomizedPCA from sklearn.cluster import KMeans pca = RandomizedPCA(20) clust = KMeans(3) cluster.magic(self.real_dataset, method='studies', roi_mask=roi_mask, features=['emotion', 'pain'], feature_threshold=0.0, reduce_reference=pca, clustering_algorithm=clust, distance_metric='jaccard', output_dir=d, filename='test.nii.gz') img = nb.load(os.path.join(d, 'test.nii.gz')) self.assertEqual(len(np.unique(img.get_data())), 4) # Test feature-based clustering clusters = cluster.magic(self.real_dataset, method='features', n_clusters=3) n_unique = len(np.unique(clusters.get_data())) self.assertEqual(n_unique, 4) shutil.rmtree(d)
from neurosynth.analysis.cluster import magic from neurosynth.base.dataset import Dataset # mydir = "/home/delavega/projects/permutation_clustering/" mydir = "../data/" dataset = Dataset.load(mydir + '/datasets/abs_60topics_filt_jul.pkl') roi_mask = mydir + '../masks/new_medial_fc_30.nii.gz' global_mask = mydir + "../masks/MNI152_T1_2mm_brain.nii.gz" magic(dataset, 10, method='coactivation', features=['topic57', 'topic32', 'topic39', 'topic44'], output_dir='../results/ef_cluster/all_cluster/', min_studies_per_voxel=100, filename='okay')