if not os.path.isdir(track_outdir): os.mkdir(track_outdir) if not os.path.isfile(track_file): deterministic(diffusion_file, bvecs_file, bvals_file, track_outdir, mask_file=mask_file, order=4, nb_seeds_per_voxel=nb_seeds_per_voxel, step=0.5, fmt="%.4f") if use_vtk: tracks = loadtxt(track_file) actor = pvtk.line(tracks, scalar=1) pvtk.add(ren, actor) pvtk.record(ren, qcdir, "fibers", az_ang=45, n_frames=2) pvtk.clear(ren) connect_outdir = os.path.join(outdir, "det_region_connectivity") if not os.path.isdir(connect_outdir): os.mkdir(connect_outdir) if len(os.listdir(connect_outdir)) == 0: if use_t1_space: proba_file, network_file = anatomical_connectivity_matrix( track_file, label_file, t1_file, fa_file, trf_file,
np.array([[0,0.2,0],[1,0.2,0],[2,0.2,0]], dtype=np.single), np.array([[2,0.2,0],[1,0.2,0],[0,0.2,0]], dtype=np.single), np.array([[0,0,0],[0,1,0],[0,2,0]], dtype=np.single)] if key == 0: clusters = agglomerative_clustering( tracks, "single", cutoff=0.5, nb_samples=10, nb_cpu=1, preserve_input=False) ren = pvtk.ren() nb_of_clusters = len(clusters) for cluster_id, tracks_index in clusters.iteritems(): fibers = [] for index in tracks_index: fibers.append(tracks[index]) actor = pvtk.line(fibers, float(cluster_id) / nb_of_clusters) pvtk.add(ren, actor) pvtk.show(ren) elif key==1: tracks *= 1000 print len(tracks) print clustering_metric_resample(np.asarray(tracks), nb_of_threads=24) print clustering_metric(tracks, nb_of_threads=24, zhang_thr=0., distance_metric="max") elif key==2: tracks *= 30 clusters = local_skeleton_clustering(tracks, cutoff=0.7, nb_samples=10, nb_of_threads=1) print clusters
for cnt, cluster in enumerate(clusters_): clusters[str(cnt)] = {"indices": cluster.indices} with open(cluster_file, "w") as open_file: json.dump(clusters, open_file, indent=4) else: with open(cluster_file) as open_file: clusters = json.load(open_file) if 1: #use_vtk: ren = pvtk.ren() colors = numpy.ones((len(fibers),)) nb_clusters = len(clusters) for clusterid, item in clusters.items(): indices = item["indices"] colors[indices] = numpy.random.rand() actor = pvtk.line(fibers, colors.tolist()) actor.RotateX(actor_ang[0]) actor.RotateY(actor_ang[1]) actor.RotateZ(actor_ang[2]) pvtk.add(ren, actor) ren.SetBackground(1, 1, 1) #pvtk.record(ren, qcdir, "clusters", az_ang=45, n_frames=2) pvtk.record(ren, qcdir, "clusters", n_frames=36, az_ang=10, animate=True, delay=25) pvtk.show(ren) pvtk.clear(ren) print(stop) """ Bundle statistic
os.mkdir(track_outdir) if not os.path.isfile(track_file): deterministic( diffusion_file, bvecs_file, bvals_file, track_outdir, mask_file=mask_file, order=4, nb_seeds_per_voxel=nb_seeds_per_voxel, step=0.5, fmt="%.4f") if use_vtk: tracks = loadtxt(track_file) actor = pvtk.line(tracks, scalar=1) pvtk.add(ren, actor) pvtk.record(ren, qcdir, "fibers", az_ang=45, n_frames=2) pvtk.clear(ren) connect_outdir = os.path.join(outdir, "det_region_connectivity") if not os.path.isdir(connect_outdir): os.mkdir(connect_outdir) if len(os.listdir(connect_outdir)) == 0: if use_t1_space: proba_file, network_file = anatomical_connectivity_matrix( track_file, label_file, t1_file, fa_file,