How to construct a MetaGraph from a weighted adjacency matrix

Hello,
I am a researcher studying structural brain networks of stroke patients. I have some connectomes which are given as symmetric weighted matrices, e.g. (as a random example)

julia> X = rand(300,300); C = Symmetric((X + transpose(X)) / 2 - Diagonal(X))

I want to create a MetaGraph in which the edges have the weights in the matrix. In addition, I have a list of anatomical names for the 300 brain regions in the connectome, which I would like to serve as labels for the nodes. I can’t find where the documentation tells us how to do this. Any help would be greatly appreciated.
Thanks so much,
Philip

I’m not aware of a function to load a MetaGraph with weights from an Array. You can do something like this to achieve what you are looking for.

function weightedmetagraph(C)
    g=MetaGraph(size(C,1))
    for ind in CartesianIndices(C)
        if ind[1] != ind[2]
             add_edge!(g,ind[1],ind[2],:weight,C[ind])
        end
    end
    g
end

As for labels, you either have to set up a label when the vertex is added with
add_vertex!(g,:label,"Node Label"), or after the fact with
set_prop!(g, vertex, :label, "Node Label").

The :weight label is the only label that has prescribed functionality, but that can also be changed with the weightfield! function.

Thanks, appreciate it!