by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    BridgingBot
    @GitterIRCbot
    [slack] <jpfairbanks> I would recommend storing graphs with metadata in a tabular format like CSV, juliadb, SQLite etc. and then using queries to build the graph when you need it.
    [slack] <jpfairbanks> There is no standardized graph+metadata format that I would trust for archival data storage at this point.
    Guillaume Larocque
    @glaroc
    @jpfairbanks Thanks for the info. I tried the GML format which looks quite straightforward for storing attributes. Anyways, I'll build the graph from the basic SimpleGraph functions.
    Sebastian Micluța-Câmpeanu
    @SebastianM-C
    @glaroc Regarding the metadata storage, I am developing a package for data storage in graphs ( https://github.com/SebastianM-C/StorageGraphs.jl ). For storing on disk I use serialization, but this is not something well suited for archival purposes, since it's dependent on the julia version. For small graphs BSON.jl may be an option, but it is limited to files up to ~4GB (I think that you may be able to fit a few million vertices&edges, but it gets really slow after a few hundred thousands).
    BridgingBot
    @GitterIRCbot
    [slack] <miguelraz> Hey gang!
    If I have a map of city roads in a picture, is there an easy way to load it as a graph?
    I thought point and click in another app and then importing to Julia might be feasible.
    BridgingBot
    @GitterIRCbot
    [slack] <sbromberger> that doesn't sound like something that's currently supported by any package I know of
    BridgingBot
    @GitterIRCbot
    [slack] <miguelraz> #GSoC2020
    BridgingBot
    @GitterIRCbot
    [slack] <matbesancon> Looks mostly like an image processing task, the graph-related part is just loading
    BridgingBot
    @GitterIRCbot
    [slack] <miguelraz> I found theres a Gephi online site called rollApp that does it. Thanks!
    ayushpatnaikgit
    @ayushpatnaikgit

    Hi everyone!

    I am using LightGraphs for a project. I have a distance matrix and I want to find the minimum spanning tree. I am running the following code:

    using LightGraphs
    T = CSV.File("samples/distance_matrix.csv")
    df = DataFrame(T)
    df = df[:,2:end] #because the first column has names (same as the top row)
    m = Matrix(df)
    sg = SimpleGraph(m)
    mst = kruskal_mst(sg) ## or prim_mst(sg)

    The MST that I get is incorrect. However, when I write my own kruskal functions, I get the correct the MST.
    Can some tell me if I doing something wrong?

    Thanks!

    BridgingBot
    @GitterIRCbot
    [slack] <oxinabox> @shashikdm has a PR open to support visualisation of LightGraph graphs in TensorBoard wth TensorBoardLogger.jl
    PhilipVinc/TensorBoardLogger.jl#32
    [slack] <oxinabox> Someone who knows LightGraphs should check it out.
    BridgingBot
    @GitterIRCbot
    [slack] <simonschoelly> Interesting
    [slack] <simonschoelly> I have haven't looked at tensorboard in quite some while
    [slack] <simonschoelly> Will tensorboard take care of creating a layout of the graph, or do you have to do that in TensorBoardLogger?
    BridgingBot
    @GitterIRCbot
    [slack] <oxinabox> TensorBoard will do the layout AFAIK
    BridgingBot
    @GitterIRCbot
    [slack] <sbromberger> that's pretty cool
    BridgingBot
    @GitterIRCbot
    [slack] <oxinabox> I suspect for large graphs it is pretty absymal.
    IT doesn’t do great at visualizing large tensorflow models as graphs — and that is its branded purpose.
    [slack] <oxinabox> OTOH I wouldn’t be surprised if actually that is because large tensorflow models are super line-like.
    BridgingBot
    @GitterIRCbot
    [slack] <simonschoelly> automatic creation of good graph layouts seems to be something very complicated
    BridgingBot
    @GitterIRCbot
    [slack] <oxinabox> It is NP-hard
    [slack] <oxinabox> And also hard to define
    BridgingBot
    @GitterIRCbot
    [slack] <shashikdm> tensorboard creates subgraphs based solely on their names. e.g. nodes with name "Dense/W" and "Dense/b" will be plotted as a subgraph named "Dense" containing "W" and "b" which can be collapsed/expanded. so large graphs can be named accordingly for better visualization.
    BridgingBot
    @GitterIRCbot
    [slack] <jpfairbanks> This is the real hard part. We had an expression in my grad school lab for problems like this. NP impossible: when it’s NP hard to get n researchers to agree on a precise definition of the problem.
    [slack] <jpfairbanks> Graph layout and graph clustering are in this complexity class.
    Harsha Nagarajan
    @harshangrjn
    A quick question, which was probably answered before. Does LightGraphs.jl enumerate all the cycles on an undirected graph or is the enumeration only on directed graphs?
    Mathieu Le Provost
    @mleprovost
    Hello, quick question, is the modularity maximization algorithm implemented in LightGraphs.jl ?
    BridgingBot
    @GitterIRCbot
    [slack] <sbromberger> Doesn’t sound familiar.
    [slack] <jpfairbanks> modularity maximization is not in the docs, but would be a good PR.
    Seth Bromberger
    @sbromberger
    ok, so I'm now over in gitter.
    Andreas Peter
    @under-Peter
    Any idea for a graph generator that's likely to have multiple strongly connected components? I'm playing around with the different graph generators but so far I haven't managed to randomly get one with multiple clusters (that are not just some single lost vertices connected to nothing)
    BridgingBot
    @GitterIRCbot
    [slack] <simonschoelly> what do you need such a graph for? is it important, that you can generate multiple random graphs, our could you also take a real world graph that has these characteristics?
    [slack] <simonschoelly> then choose an ordering on these connected components
    [slack] <simonschoelly> and then add random edges between the components, so that this ordering is respected
    Andreas Peter
    @under-Peter
    Just playing around :) I thought one of the named graph generators might be suitable but I'll take real world examples too.
    BridgingBot
    @GitterIRCbot
    [slack] <sbromberger> It seems to me that core_periphery_deg should not be in Community but should be in Connectivity (where period, kcore, etc. are). Thoughts?
    [slack] <sbromberger> perhaps not, but it really doesn't seem to be related to communities.
    [slack] <sbromberger> or maybe Degeneracy
    [slack] <sbromberger> I'll keep it where it is for now
    radium42
    @radium42
    Hi! Im having trouble calculating the edge betweenness of a graph with LighGraphs. Is there a quick way to do this?
    BridgingBot
    @GitterIRCbot
    [slack] <sbromberger> we don't currently have edge betweenness as a method.
    Gordon Erlebacher
    @erlebach
    I would like to merge two graphs. Consider the following scenario. I have N nodes 1:N, and I create a G1=SimpleGraph(100,10) with nodes 1:100, and a G2=SimpleGraph(200,10) with nodes 50:200. I expect some edges to overlap. Obviously, this approach does not work because for G1, the nodes are numbered 1 through 100, while in G2, the nodes are numbered 1 through 150. MetaGraphs seems to be the right way to accomplish my task. Is there a better and perhaps more efficient way? Thanks.
    Mathieu Besançon
    @matbesancon
    I'm not sure it's clear what rule you are using for merging
    Eddie Schoute
    @eddieschoute

    Maybe a silly question but if I do

    for neighbor in neighbors(g, v)
    rem_edge!(g, v, neighbor)
    end

    then I get unexpected behavior. For example, it will not delete the second neighbor of v. I think because the neighborhood is mutated while iterating. Is this expected?

    Mathieu Besançon
    @matbesancon
    If I recall neighbors returns an iterator that is valid while the graph isn't modified
    The iterator returned may depend on the graph type
    Eddie Schoute
    @eddieschoute
    In my case it's a digraph
    Might be good to throw an exception if the iterator is modified while iterating? Like a ConcurrentModificationException in Java
    Eddie Schoute
    @eddieschoute
    Looks like in Julia a copy is made of the underlying datastructure for e.g. Sets so that any modifications on x = Set([1,2,3]) are not reflected in it = iterate(x) if I do delete!(x, 3) after calling iterate