klinic / MATLAB /get_metrics.m
Tanguyvans's picture
get_metrics
9333b89
raw
history blame contribute delete
No virus
1.97 kB
% Read the CSV file
data = readtable('../MGREL.RRF', Delimiter='|', FileType='text', NumHeaderLines=0, VariableNamingRule='preserve');
data = renamevars(data, '#CUI1', 'CUI1');
ids_1 = data.CUI1;
for k = 1 : length(ids_1)
cellContents = ids_1{k};
% Truncate and stick back into the cell
ids_1{k} = cellContents(2:end);
end
ids_1 = str2double(ids_1);
ids_2 = data.CUI2;
for k = 1 : length(ids_2)
cellContents = ids_2{k};
% Truncate and stick back into the cell
ids_2{k} = cellContents(2:end);
end
ids_2 = str2double(ids_2);
edges = [ids_1, ids_2];
edges = edges(~any(isnan(edges), 2), :);
ids_1 = edges(:, 1);
ids_2 = edges(:, 2);
G = digraph(ids_1, ids_2);
% Compute PageRank centrality
pg_ranks = centrality(G, 'pagerank');
% Assign PageRank to each node
G.Nodes.PageRank = pg_ranks;
for i = 1:numnodes(G)
if pg_ranks(i) > 1.6487e-07
disp(['Node ', num2str(i), ' PageRank: ', num2str(pg_ranks(i))]);
end
end
%idx = G.Nodes.PageRank > 1.6487e-07;
%disp(G.Nodes(idx, :));
% Get the number of unique nodes
%nodes = unique([ids_1; ids_2]);
%num_nodes = length(nodes);
% Initialize sparse adjacency matrix
%A = sparse(ids_1, ids_2, 1, max(ids_2), max(ids_2));
% Display adjacency matrix
%disp(A);
connections = {
'A1', 'B2';
'A1', 'A2'
};
% Extract unique nodes
nodes = unique(connections(:));
% Create a directed graph
num_nodes = length(nodes);
node_indices = containers.Map(nodes, 1:num_nodes);
A = zeros(num_nodes);
for i = 1:size(connections, 1)
from_node = connections{i, 1};
to_node = connections{i, 2};
from_index = node_indices(from_node);
to_index = node_indices(to_node);
A(from_index, to_index) = 1;
end
% Display adjacency matrix
disp(A);
% Create directed graph
G = digraph(A, nodes);
% Compute PageRank centrality
pg_ranks = centrality(G, 'pagerank');
% Display PageRank for each node
for i = 1:num_nodes
disp(['PageRank for ', nodes{i}, ': ', num2str(pg_ranks(i))]);
end