Added source Matlab code for reference
This commit is contained in:
parent
b8af977117
commit
b5d99903d2
186 changed files with 61405 additions and 1 deletions
108
matlab/graph/graphvis2.m
Normal file
108
matlab/graph/graphvis2.m
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
function graphvis2(adj_mat, linkage_file_name, inliers, graphviz_path, npops)
|
||||
% Filename: graphvis2.m
|
||||
% graphvis2(adj_mat, linkage_file_name)
|
||||
%
|
||||
% Description:
|
||||
% Graph visualization given the adjacency matrix.
|
||||
|
||||
% Author: Jing Tang
|
||||
% Modified date: 01/06/2005
|
||||
|
||||
% Input:
|
||||
% adj_mat: The adjacency matrix.
|
||||
% linkage_file_name:
|
||||
|
||||
% Output:
|
||||
%
|
||||
|
||||
% Ensure adj_mat is symmetric and square.
|
||||
|
||||
[n,m] = size(adj_mat);
|
||||
if n ~= m, error ('Adjacency matrix must be square'), end;
|
||||
%if ~all(diag(adj_mat)), error('The diagonal must be nonzero'), end;
|
||||
|
||||
npops_in = length(inliers);
|
||||
groupnames = cell(1,npops_in);
|
||||
nodecolors = cell(npops_in,1);
|
||||
allnode_color = giveColors(npops);
|
||||
arccolors = cell(npops_in);
|
||||
adjmat = adj_mat ~= 0;
|
||||
for i=1:npops_in
|
||||
groupnames{i} = sprintf('Cluster %d',inliers(i));
|
||||
nodecolors{i} = num2str(rgb2hsv(allnode_color(inliers(i),:)));
|
||||
arccolors(i,adjmat(i,:)) = {nodecolors{i}};
|
||||
end
|
||||
nodestyles = cell(npops_in, 1);
|
||||
nodestyles(:) = {'filled'};
|
||||
arcstyles = cell(npops_in);
|
||||
arcstyles(adjmat) = {'filled'};
|
||||
|
||||
handle = plotmodel(adj_mat',[1:npops_in],'graphvizpath', graphviz_path, ...
|
||||
'nodecolors', nodecolors, ...
|
||||
'nodestyles', nodestyles, ...
|
||||
'arccolors',arccolors, ...
|
||||
'arcstyles',arcstyles, ...
|
||||
'varnames', groupnames);
|
||||
|
||||
% set(handle,'menubar','none','numbertitle','off','toolbar','figure');
|
||||
set(handle,'numbertitle','off','toolbar','figure');
|
||||
m = findall(gcf,'type','uimenu');
|
||||
set(m([1:7]),'Visible', 'off');
|
||||
|
||||
h1 = uimenu('Parent',handle, ...
|
||||
'Label','Attributes', ...
|
||||
'Tag','attr_menu');
|
||||
h2 = uimenu('Parent',h1, ...
|
||||
'Label','Rename clusters', ...
|
||||
'callback', 'plotflow rename', ...
|
||||
'Tag','clustername_menu');
|
||||
h3 = uimenu('Parent',h1, ...
|
||||
'Label','Prune edges', ...
|
||||
'callback','plotflow prune', ...
|
||||
'Tag','edge_menu');
|
||||
h4 = uimenu('Parent',handle, ...
|
||||
'Label','Help', ...
|
||||
'callback', 'plotflow help', ...
|
||||
'Tag','help_menu');
|
||||
% h5 = uimenu('Parent',h1, ...
|
||||
% 'Callback','baps4cbf about', ...
|
||||
% 'Enable','on', ...
|
||||
% 'Label','About', ...
|
||||
% 'Tag','about_menu');
|
||||
set(handle,'Name',[' Gene flow - ' linkage_file_name ]);
|
||||
|
||||
% save the parameters
|
||||
g.handle = handle;
|
||||
g.adjmat = adj_mat';
|
||||
g.adjmat2 = g.adjmat;
|
||||
g.k = [1:npops_in];
|
||||
g.graphvizpath = graphviz_path;
|
||||
g.nodecolors = nodecolors;
|
||||
g.nodestyles = nodestyles;
|
||||
g.arccolors = arccolors;
|
||||
g.arcstyles = arcstyles;
|
||||
g.varnames = groupnames;
|
||||
g.type = 'GENEFLOW';
|
||||
set(h1,'Userdata',g); % store in the attribute menu
|
||||
|
||||
|
||||
|
||||
% Old version
|
||||
|
||||
% Decide the coordinate of each node.
|
||||
% [p,p,r] = dmperm(adj_mat);
|
||||
% nnodes = length(adj_mat);
|
||||
% nblocks = length(r)-1;
|
||||
% [B,ix]=sort(p,2);
|
||||
% Coordinates=[[ix'],zeros(nnodes,1)];
|
||||
%
|
||||
% % Plot the graph structure
|
||||
% clf reset
|
||||
% set(gcf, 'color', 'white', 'menubar', 'none', 'numbertitle','off','name', 'Graphical model')
|
||||
% gplot(adj_mat, Coordinates, '-ob');
|
||||
% h=findobj(gca, 'type','line');
|
||||
% set(h,'markersize',10)
|
||||
% xlim([0 nnodes+1]);
|
||||
% axis off
|
||||
% text(Coordinates(:,1),Coordinates(:,2)-0.1, int2str(B(:)));
|
||||
%drawnow
|
||||
Loading…
Add table
Add a link
Reference in a new issue